On Wed, 17 Nov 2010 02:56:09 -0500, Jay Byrd <jayb...@rebels.com> wrote:
On Wed, 17 Nov 2010 00:58:28 -0500, Steven Schveighoffer wrote:
On Wed, 17 Nov 2010 00:24:50 -0500, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
On 11/16/10 9:21 PM, Steven Schveighoffer wrote:
On Wed, 17 Nov 2010 00:10:54 -0500, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
http://news.ycombinator.com/item?id=1912728
Andrei
"I like go because every single feature go has is the best ever!"
yawn...
-Steve
I'm curious what the response to my example will be. So far I got one
that doesn't even address it.
It's possible that you left your point as an exercise for the reader, so
it may be lost.
But it's not important. It's unlikely that you will convince goers that
the language deficiencies are not worth the advantages. Only time will
tell how popular/useful it will be. That one point you made would be a
deal-killer for me (not that I'm close to using Go or anything, but no
need to invest any more time on it after that).
The problem pointed out can readily be fixed by requiring statements to
have at least one token.
Yes, but instead of that, they decided to point it out in the tutorial and
documentation, it's on you to not make the mistake, not them. Makes you
feel like they said "yes, we noticed that you can have that problem, but
we don't think it's a big deal, just remember to be careful."
Being someone who likes the "brace-on-its-own-line" style, I can't really
see myself getting past that part. And I don't really have any other
complaints about Go, I've never used it. This one issue needs to be fixed
for Go to be considered a serious language. Hopefully they realize this.
When a language has an error-prone issue, one that allows you to write
valid code that is never desired, but looks completely correct, it results
in buggy code, period.
An instance of this in D was the precedence for logic operators and
comparison operators. x | y == 5 was interpreted as x | (y == 5). This
was thankfully fixed, and it's a very similar issue to Go's mistake. With
all the experience people have with designing languages and code analysis
by compilers, there are no excuses to have something like this get into a
new language.
The best thing to teach Go's creators about how bad this is is to make the
change you suggest and see how their standard library fares. This has
been instrumental in having such changes made to D (for example, the logic
operator thing found about 6 cases in phobos where the code was incorrect).
go has much more severe problems than that. And
there are plenty of bugs and mistakes in D, harder to fix, that could be
deemed "deal-killers" by someone with an axe to grind. It's not an
intellectually honest approach.
I agree that D has hard to fix mistakes. The glaring one IMO is lack of
tail-const for classes. It's a huge hole in the const feature set and I
can see people being turned off by it. Another is lack of runtime
introspection, or the conservative GC.
That doesn't mean D is worse or better than Go. It's just that Go is a
non-starter (at least for me) without fixing that mistake. If they fixed
it, would I start using Go? Probably not, I have too much other things to
do. But if Go was around when I was looking for a language to switch to
from C++ 4 years ago, that one issue makes the decision a no-brainer.
(cue retard's comment about D zealots not having any open mindedness)
-Steve
No zealots are open minded. That's why I'm a supporter of various things
but not a zealot about anything.
I consider myself not to be a zealot either (but definitely biased). The
comment was a friendly dig at retard, that's all ;)
-Steve