[GSoC 2014] Port of the Go programming language: introduction

Blog post by zhuowei on Tue, 2014-04-29 03:00
I have chosen to take up Bruno Albuquerque's suggestion of porting the reference compiler and runtime of the Go programming language to Haiku.
Go is a simple language designed for ease of development, concurrency, and cross platform support, and because of these attributes, a Haiku port will be helpful both for porting existing Go applications to Haiku and for development of new programs.
The short term goal of the project is to be able to write simple command line programs using the Go language. The long term goal for the port is to have a base to bootstrap ports of future versions of Go (which will have parts written in Go itself and would require an existing Go runtime).
During community bonding period (April 21), I will build and test Bruno Albuquerque's toolchain from the mailing list, research Haiku's syscall interface and conventions, and examine the Golang port to Solaris as a reference point.

Comments

Re: [GSoC 2014] Port of the Go programming language: ...

Hello!

Maybe introducing yourself wouldn't hurt ;)

Wishing you good luck with the project, and looking forward to seeing your progress!

-- louisdem

Re: [GSoC 2014] Port of the Go programming language: ...

Programming in C and C++ for CLI programs is fine, but GUIs are a pain in the %^&.

With the additional tools make it easy to do GUI programs?

I has seen some interesting GUI work in YAB, but have not committed to learning it. GO looks like it would be nicer(more powerful) for writting multi-threaded GUI programs.

So how easy/soon do you think the GO port will take?

Re: [GSoC 2014] Port of the Go programming language: ...

More options on Haiku is a good thing. Having said that, we have a lot of options available to write CLI apps. That's not where Haiku's problems lie. Still, if that's your interest, more power to you.

For those of us unfamiliar with the language, maybe you could just write up a brief description of why GO is a good language to use, why we should start using it once you are done instead of C, C++, Python, Ruby, Perl, yab ... perhaps with a few code snippets to give people the feel of the language. Nothing extensive, just some basic ideas on the variable types and looping structures available, what sort of utilities the language is most suited for, that sort of thing. After all, I assume you would want to see your efforts crowned with a flourishing Go4Haiku community rather than having us say "thank you very much" and putting your work in a drawer. So you will have to evangelise the language a little.

The technical part is often the easy bit. It's that people part that sucks. ;-)

Good luck.

Re: [GSoC 2014] Port of the Go programming language: ...

I think Go would be a good addition to the Haiku toolbox primarily because Go has a heavy focus on making multithreading easy, and since good support for multiple CPUs [nowadays, cores] was one of the primary foci [plural of “focus”] of the BeOS, IMO it should be so for Haiku as well.

I`ll try to put some relevant links here.

http://www.goinggo.net/2013/05/thread-pooling-in-go-programming.html

http://en.wikipedia.org/wiki/Go_(programming_language)#Goroutines.2C_channels.2C_and_select

http://programmers.stackexchange.com/questions/222642/are-go-langs-gorou...
[short answer to the question: no, Go threads are either native or very close]

http://stackoverflow.com/questions/1739614/what-is-the-difference-betwee...