Earlier quoted context omitted.
"I'm not sure one really needs exceptions if you have goroutines, channels, and multiple return values. On the other hand, there are very compelling reasons for not having exceptions, given goroutines and channels." I continually find exception handling to be a huge source of frustration; especially Java's checked exceptions. If I explicitly test for something in my method before calling another method, should I stil…
"there are very compelling reasons for not having exceptions, given goroutines and channels" This confuses me I would have thought the opposite would be true. The goroutine/channel concept seems Erlang like to me. Erlang uses exceptions, if a process crashes an exception is thrown to its parent which can then act appropriately. How does Go handle this, i.e. if a goroutine crashes who gets informed and how?
Why I'm not very excited about Go
21–30 of 37 posts
Re: Why I'm not very excited about Go
#22The first major mistake was using a C derived syntax Personally, I'm not that interested in the particulars of indentation/block delimiting. I'm much more interested in what one can do with blocks. This has much more bearing on the power of a programming language. If this is the 1st issue discussed, it's a poor portent for the rest of the article. The next mistake is having a separate declaration and assignment opera…
"It's my understanding that one can use "goroutines" to implement your own rather powerful control structures. I'm not sure one really needs exceptions if you have goroutines, channels, and multiple return values. On the other hand, there are very compelling reasons for not having exceptions, given goroutines and channels." The "goroutines" are just threads. They're not useful for building control structures. Unless…
(For a good analysis of the overlap of co-routines and continuations, see "Revisiting Coroutines" by de Moura et. al. - http://www.inf.puc-rio.br/~roberto/docs/MCC15-04.pdf)
Re: Why I'm not very excited about Go
#23Earlier quoted context omitted.
"I'm not sure one really needs exceptions if you have goroutines, channels, and multiple return values. On the other hand, there are very compelling reasons for not having exceptions, given goroutines and channels." I continually find exception handling to be a huge source of frustration; especially Java's checked exceptions. If I explicitly test for something in my method before calling another method, should I stil…
"there are very compelling reasons for not having exceptions, given goroutines and channels" This confuses me I would have thought the opposite would be true. The goroutine/channel concept seems Erlang like to me. Erlang uses exceptions, if a process crashes an exception is thrown to its parent which can then act appropriately. How does Go handle this, i.e. if a goroutine crashes who gets informed and how?
The fact that Go is in early development here and I'd say this both could and will be improved in the future.
Re: Why I'm not very excited about Go
#24He seems to be criticizing Go for not being Python. My understanding is that Go is designed with an obsessive need for speed and concurrency in mind. It's a little silly to compare it to Python without accounting for that.
designed with ... speed and concurrency in mind I won't argue with the speed part, but I feel the concurrency support is a bit weak. Go routines, locks and channels don't seem enough to me for a language that was designed with concurrency in mind . Hell, if thats all it takes, I would argue that Python 2.6, with its multiprocessing module, is designed for concurrency. Now, I do think that these features are an improv…
Re: Why I'm not very excited about Go
#25I honestly don't get what the point of Go is. Why not D? Why not Modula3? There is nothing at all compelling in the feature set. Just look at the crap they put in for the built-in concurrency primitives: http://golang.org/doc/go_mem.html So we're back to CSP. Welcome to the 1960s.
Re: Why I'm not very excited about Go
#26Constructs like concurrency should not be granted their own syntax, especially when they can be cleanly implemented using the other constructs of a language, look at the C library libtask as an example. See the paper by Hans Boehm from PLDI 2005, "Threads Cannot Be Implemented as a Library": http://www.hpl.hp.com/techreports/2004/HPL-2004-209.pdf The abstract explains the argument: In many environments, multi-threade…
I'm not a big fan of Java, but one of its good points is that threads are part of the language and their behaviour is predicatable across implementations.
Re: Why I'm not very excited about Go
#27Earlier quoted context omitted.
designed with ... speed and concurrency in mind I won't argue with the speed part, but I feel the concurrency support is a bit weak. Go routines, locks and channels don't seem enough to me for a language that was designed with concurrency in mind . Hell, if thats all it takes, I would argue that Python 2.6, with its multiprocessing module, is designed for concurrency. Now, I do think that these features are an improv…
You should really try it. Erlang (or Scala with Actors) might be a better place to start to get a feel, but that's just me.
Regarding concurrency, I've been playing a lot with Clojure recently, whose agents are similar to actors.
Re: Why I'm not very excited about Go
#28When I read arguments that include syntax complaints, I really have a hard time taking anything else the author says seriously. It's like a car buyer critiquing in detail crash safety ratings, gas mileage, steering control, and then for no particular reason going on a rant about the optimal arrangement of cup-holders.
If I spent 50%+ of my day reading cup-holders I'd agree with you. I may have over extended that metaphor.
Re: Why I'm not very excited about Go
#29Earlier quoted context omitted.
You should really try it. Erlang (or Scala with Actors) might be a better place to start to get a feel, but that's just me.
I should try what? Go? Regarding concurrency, I've been playing a lot with Clojure recently, whose agents are similar to actors.
Re: Why I'm not very excited about Go
#30When I read arguments that include syntax complaints, I really have a hard time taking anything else the author says seriously. It's like a car buyer critiquing in detail crash safety ratings, gas mileage, steering control, and then for no particular reason going on a rant about the optimal arrangement of cup-holders.