lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

So, I've also dabbled in Go; and would be interested in hearing others' impressions of it.

My own sense is that it's a truly excellent language for writing servers -- mostly because it has a well thought out collection of concurrency and exception handling features.  Speaking as a hobbyist, I'd certainly recommend it to other hobbyists interested in rolling simple but efficient servers.  

But while the semantics are lovely, Go's syntax has some warts. The variable definition shorthand makes it easy to write scoping bugs, and the syntax restrictions on newlines seem fairly terrible.  A few months back we had a long thread on lua-l about the changes in lua's newline handling between 5.2 and 5.1 -- and working with Go has left me with a renewed confidence that sensible newline sensitivity is important.  As best as I can tell; Go's parser will throw an error anytime you do something with newlines that makes it vaguely nervousness -- effectively a much more aggressive version of the "Ambiguous syntax" error from 5.1.  And this ends up being a perpetual source of small annoyances.

I still think Roberto et al. went too far in dropping all newline checks from 5.2 -- but Go stands as an excellent example of the problems inherent in the opposite extreme.


On Mon, Aug 5, 2013 at 9:57 AM, Lorenzo Donati <> wrote:
Hi All!

First of all sorry in advance for posting something only mildly related
to Lua.

I've had this curiosity for the last couple of months, after reading
some articles on the current state of Go language and its usage at
Google. According to Google, it seems that Go is helping solve an
increasing number of problems in Google's codebase efficiently and
cleanly. According to their vision (as I get it) Go is *the* next
generation system programming language (and sometimes it seems to me
they would want it to be the next C).

What's the relation with Lua? Since I subscribed to lua-l I've read tons
of posts of experienced high-level developers describing what
language(s) (beside Lua) they use in their projects. Most are C/C++ or
even assembly, but lots of other more "esoteric" languages have been
mentioned as being used in *production* of non-toy projects.

I've never seen on lua-l such statements about Go. Only casual mentions
for more or less toy or proof-of-concepts projects. Neither have I seen
mentions to Go in those PLs "shootouts" that occasionally pop-up in lua-l.

I myself have spent some time playing with it, after reading some posts
of Steve Donovan, but I cannot really say I've become a Go expert! Since
Go is packed with lots of cross-platform "batteries" and a tightly
integrated C-compiler (CGO) it seems to me that it would make an
excellent platform for developing in Lua, too, but it doesn't seem it
has caught Lua developers' attention.

Therefore, I'd really like what's the stance of Lua community regarding
Go: is it too young? Pros vs. Cons? Is it really considered a good
language for SW production by expert, seasoned developers? Is it too
much hype? What's wrong with Go? Do you think is it a language worth of
investing your time on for serious programming?

TIA for all the explanations and opinions any of you will have the
kindness to share!


-- Lorenzo

()  ascii ribbon campaign - against html e-mail
/\   - against proprietary attachments