Page 1 of 1

Go

Posted: Thu Nov 12, 2009 4:39 pm
by Alboin
Hi,

So I'm watching Rob Pike introduce Go, and I'm watching and watching and watching, and it seems to me that it's an ugly language. I mean, if Perl and C++ had a love child ugly. I really wanted to be impressed with it. but when he suddenly busted out all of these features, it seems as though they're just "features". There isn't any coherent thought throughout the language, as there is, for example, in C. Not that it has to "be" C, but just because one can implement a series of features doesn't mean one should. Looking at C, all of the pieces meld together under a very unsafe memory pointer system that, while terribly bad in practice, is single thought. A pointer is a pointer, is a variable, is a function. In Go, however, it would seem that Pike and friends just threw together a bunch of things they wanted and the result is a language with much too many things.

Regardless, I am disappointed....

What are the opinions around here?

Re: Go

Posted: Thu Nov 12, 2009 4:56 pm
by Hangin10
I stopped reading the second I saw an example that had ":=".
I'm cool with just about everything else.

That said, I'd also settle for C++ without header files.

Re: Go

Posted: Thu Nov 12, 2009 5:46 pm
by NickJohnson
Just from looking at [urlhttp://mashable.com/2009/11/10/go-google-language/]this article[/url], containing part of the FAQ, even the goals of the language seem mixed up. They want faster development, dynamic typing and garbage collection, and point out that computers are fast (implying that they don't care about speed); yet, they say the language will make the web "two times faster". :roll:

The syntax is not *that* bad, but it's really just C++ with a bit of something that looks like Pascal or maybe even BASIC mixed in, plus some Python features like slices. And I don't see dynamic typing, although I haven't looked very hard. And there is a lot of inconsistency regarding what is a bitwise copy and what is a reference when doing assignments.

It's ugly, derivative, fills no real niche (beyond Java programmers who can almost handle C++), and appears to have a few false cognates with C++ syntax. Still, it's endorsed by Google, so I'd still bet money on its eventual success.

Also, I don't understand why they don't like the C header file system - I think it is a great way to both represent and document the interface to a file, application, or library, and isn't that unwieldy even in installing libraries into special system directories. It's kind of redundant when everything is OO, but still useful for macros and stuff.

Re: Go

Posted: Fri Nov 13, 2009 12:16 am
by Colonel Kernel
Go doesn't use dynamic typing, it uses a form of static typing called structural sub-typing. Basically, a type implements an interface if it has all the same method signatures defined in that interface -- there is no need to declare that it implements the interface explicitly.

I just started looking at the language FAQ... Although structural sub-typing is cool, I see the lack of classes as a big step backward. I'm not sure how you're supposed to encapsulate data without private fields or the old C way of defining opaque handle types.

Re: Go

Posted: Fri Nov 13, 2009 12:44 am
by Hangin10
Colonel Kernel wrote:I just started looking at the language FAQ... Although structural sub-typing is cool, I see the lack of classes as a big step backward. I'm not sure how you're supposed to encapsulate data without private fields or the old C way of defining opaque handle types.
Wow. I'd agree, other than that I typically leave everything public because, well, nobody but me is typically going to use my lame hobbyist code :) , and anyone who knows anything about OO will avoid touching the data and use OO accessors/etc. Maybe they've just decided that encapsulation is by either merely leaving data definitions out of the documentation or allowing the docs to specify assumptions of external use, and let the user decide how they want to use everything?
By far not perfect, but you really can't argue against the flexibility of such a method.

(or maybe you can, but I'm wquite durnk.) 8)

Re: Issue 9

Posted: Fri Nov 13, 2009 1:35 am
by Combuster

Re: Go

Posted: Fri Nov 13, 2009 8:45 am
by Colonel Kernel
Hangin10 wrote:By far not perfect, but you really can't argue against the flexibility of such a method.

(or maybe you can, but I'm wquite durnk.) 8)
Goto is flexible too. That doesn't make it suitable for large-scale software development.

Re: Go

Posted: Fri Nov 13, 2009 9:26 am
by Creature
When I read about Go I didn't really know what to think of it; I usually see things made by Google as 'good', but here I had the urge to think "what has Google gotten themselves into this time?". I know Google does a lot of stuff, but it seems to me as they're taking a little bit too much of everything. Google Chrome was nice, Google Chrome OS was... I didn't really know what to think of it, it could be good for all I knew. But now, Google Go? First a browser, then an OS, now a programming language? IMHO they're going a little bit too far with it all.

Re: Go

Posted: Sat Nov 14, 2009 12:44 pm
by Colonel Kernel
So apparently you make fields private to a package in Go by starting them with a lower-case letter. :shock:

Re: Go

Posted: Sat Nov 14, 2009 2:04 pm
by NickJohnson
Colonel Kernel wrote:So apparently you make fields private to a package in Go by starting them with a lower-case letter. :shock:
I could see doing this for identifying classes or typedefs or something, but seriously? #-o