www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: Go: A new system programing language

reply HOSOKAWA Kenchi <hskwk inter7.jp> writes:
Walter Bright Wrote:

 Bill Baxter wrote:
 It's harder to find those when you're skimming through trying to get
 the highlights with a 5 minute limit.  :-) What are some things is it
 missing?

Off the top of my head, some major ones: . exception handling . generic programming . metaprogramming . inline assembler . interface to C . RAII . immutability for anything but strings . vector operations . operator overloading . purity . CTFE . unit testing . documentation generation . ability to write systems code like implement a GC . conditional compilation . contracts . 80 bit floating point . introspection (runtime or compile time) . delegates . reference parameters Not sure if it has closures or not. And of course a lot of minor ones, . no _ in integer literals . no nesting comments . no entities etc.

These features give great power for numeric uses. Probably Go's developers would have never imagined to do numerical operations with their language. Only middlewares are in their sights. I'm impressed by Go's selector expressions and anonymous fields. They are what D's overload sets and opDot/alias this aimed to. But I love implicit casts with alias this at the same time. I withhold to say which is better, Go's interfaced pointers or D's value-struct/reference-class. On this point, both Go and D would have pros and cons. p.s. If both D and Go come to be major language, There will be many disputes like fray between users of Python / Ruby / Perl.
Nov 12 2009
next sibling parent reply Daniel de Kok <me nowhere.nospam> writes:
On 2009-11-12 22:50:20 +0100, HOSOKAWA Kenchi <hskwk inter7.jp> said:
 These features give great power for numeric uses.
 Probably Go's developers would have never imagined to do numerical 
 operations with their language.
 Only middlewares are in their sights.

I am a bit surprised that they'd still prefer Java Complex-like ugliness rather than supporting operator overloading or an infix function or method notation. Go is clearly coming from a C/Java background, making it refreshingly uncomplex, but life's hard for number crunching or building performant containers. But hey, there is a compiler for 64-bit binaries :). Of course, I should swallow that, and help with the LDC efforts... Take care, Daniel
Nov 14 2009
parent reply grauzone <none example.net> writes:
Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I should 
 swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.
Nov 14 2009
next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
grauzone wrote:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Yeah, but that's something that can be fixed. What is more difficult to fix is that Go is all-over an unremarkable and unoriginal language (something that would become obvious if one thinks for a second what would have happened if Go wasn't associated with Google's brand name). On the other hand, it is associated with Google's brand name. :o) It will be interesting to see how things turn out. Andrei
Nov 14 2009
next sibling parent reply grauzone <none example.net> writes:
Andrei Alexandrescu wrote:
 grauzone wrote:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Yeah, but that's something that can be fixed. What is more difficult to

Don't underestimate the negative effects of a bad toolchain. D has the same problem, but (apparently) not as bad.
 fix is that Go is all-over an unremarkable and unoriginal language 
 (something that would become obvious if one thinks for a second what 
 would have happened if Go wasn't associated with Google's brand name). 
 On the other hand, it is associated with Google's brand name. :o) It 
 will be interesting to see how things turn out.

I agree, the brand name is probably the best what Go got. (But it's not that Go doesn't contain some good ideas.)
 Andrei

Nov 14 2009
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
grauzone wrote:
 Andrei Alexandrescu wrote:
 grauzone wrote:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Yeah, but that's something that can be fixed. What is more difficult to

Don't underestimate the negative effects of a bad toolchain. D has the same problem, but (apparently) not as bad.
 fix is that Go is all-over an unremarkable and unoriginal language 
 (something that would become obvious if one thinks for a second what 
 would have happened if Go wasn't associated with Google's brand name). 
 On the other hand, it is associated with Google's brand name. :o) It 
 will be interesting to see how things turn out.

I agree, the brand name is probably the best what Go got. (But it's not that Go doesn't contain some good ideas.)

Well I'm not sure. I haven't seen anything original in Go, just regurgitations of prior approaches. Of course, there may be value in finding the right mix of herbs, but right now the soup is rather long*. Andrei * "long soup" = Romanian phrase for a soup rich in water but lacking in all other ingredients.
Nov 14 2009
next sibling parent Justin Johansson <no spam.com> writes:
Bill Baxter Wrote:

 On Sat, Nov 14, 2009 at 7:19 PM, Andrei Alexandrescu
 <SeeWebsiteForEmail erdani.org> wrote:
 
 * "long soup" = Romanian phrase for a soup rich in water but lacking in all
 other ingredients.

A.k.a. "thin soup" in English. :-) --bb

Also known as "all sizzle and no sausage" (Australian BBQ).
Nov 15 2009
prev sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Bill Baxter wrote:
 On Sat, Nov 14, 2009 at 7:19 PM, Andrei Alexandrescu
 <SeeWebsiteForEmail erdani.org> wrote:
 
 * "long soup" = Romanian phrase for a soup rich in water but lacking in all
 other ingredients.

A.k.a. "thin soup" in English. :-)

Thank you! This kind of stuff is difficult to find with a dictionary. Andrei
Nov 15 2009
prev sibling next sibling parent Daniel de Kok <me nowhere.nospam> writes:
On 2009-11-14 16:19:00 +0100, Andrei Alexandrescu 
<SeeWebsiteForEmail erdani.org> said:
 grauzone wrote:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Yeah, but that's something that can be fixed. What is more difficult to fix is that Go is all-over an unremarkable and unoriginal language (something that would become obvious if one thinks for a second what would have happened if Go wasn't associated with Google's brand name). On the other hand, it is associated with Google's brand name. :o) It will be interesting to see how things turn out.

Unremarkable, but to be fair it will appeal to a large number of people who want a more modern C without the complexity of C++ (or D). It resembles the approach of Objective-C quite much, but I think Google is better able to push it beyond their own products. That is if Google is actually interested in Go, other than it being a 20% project. -- Daniel
Nov 14 2009
prev sibling parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Leandro Lucarella wrote:
 Andrei Alexandrescu, el 14 de noviembre a las 09:19 me escribiste:
 grauzone wrote:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course,
 I should swallow that, and help with the LDC efforts...

no Windows compiler, which is an _absolute_ show stopper.

to fix is that Go is all-over an unremarkable and unoriginal language (something that would become obvious if one thinks for a second what would have happened if Go wasn't associated with Google's brand name). On the other hand, it is associated with Google's brand name. :o) It will be interesting to see how things turn out.

Don't forget it's designed by Rob Pike and Ken Thompson. That's *not* irrelevant, it's not just a Google language.

I have a huge amount of respect for both, but I think Rob Pike is not quite a language designer. Ken Thompson is a brilliant designer, but I don't know what recent work he has done in language design prior to Go. Honest, I'd be much more worried about Go if Craig Chambers were involved. Andrei
Nov 14 2009
prev sibling parent reply Daniel de Kok <me nowhere.nospam> writes:
On 2009-11-14 13:35:08 +0100, grauzone <none example.net> said:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Sorry, D2 with Phobos is absolutely the only option for me. I use STL in C++ all the time, and I want something nearly equivalent. Of course, there are older gdc versions that work with D2, but it seems kind of pointless to go so far back in time considering the recent great work... -- Daniel
Nov 14 2009
parent grauzone <none example.net> writes:
Daniel de Kok wrote:
 On 2009-11-14 13:35:08 +0100, grauzone <none example.net> said:
 Daniel de Kok wrote:
 But hey, there is a compiler for 64-bit binaries :). Of course, I 
 should swallow that, and help with the LDC efforts...

As far as I know, ldc+Tango already works on 64 bit. Also, Go has no Windows compiler, which is an _absolute_ show stopper.

Sorry, D2 with Phobos is absolutely the only option for me. I use STL in C++ all the time, and I want something nearly equivalent.

If there's one thing I don't miss from C++, then it's the STL.
 Of course, there are older gdc versions that work with D2, but it seems 
 kind of pointless to go so far back in time considering the recent great 
 work...
 
 -- Daniel
 

Nov 14 2009
prev sibling parent Bill Baxter <wbaxter gmail.com> writes:
On Sat, Nov 14, 2009 at 7:19 PM, Andrei Alexandrescu
<SeeWebsiteForEmail erdani.org> wrote:

 * "long soup" = Romanian phrase for a soup rich in water but lacking in all
 other ingredients.

A.k.a. "thin soup" in English. :-) --bb
Nov 15 2009