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

Reply via email to