As you may or may not have heard, some monkeysÂ at Google have been working on a “new” language called Go. Several features of the language interested me, and as such I’ve spent around 200 hours writing and debugging in it this year. The main draw for me was its intrinsic concurrency model- a lot of the large systems I write have many components, all of which need to talk to each other, all of which need to share data, all of which need to do this very fast. Go channels and goroutines are embedded mechanisms for IPC and are interesting to me. Also, the fact that Go is dynamically-typed yet still compilable (unlike Perl) and readable (unlike Python) was intriguing.
A lot is missing that I consider critical for any modern programming language. One of the largest omissions thus far is regular expressions. There are a LOT of nice features for text processing, and once a good regular expression library is built in, hopefully PCRE (pleasepleasepleasepleasepleasepleaseplease) that will really enhance the value.
But a lot of really nice features are there including parallelization, ridiculously flexible and powerful interfaces, and a super-clean syntax that is quite pleasurable once you get your head around it and stop programming the long way.
I’m certainly not moving to Go for any real coding, but it is coming along very well, and I encourage programmers- hobbyist or professional- to give it a once-over. It’s refreshing when a development team seems to be very interested in making a clean language without preconceptions, something that hasn’t been done [well] in probably 20 years or so.