Go

Programming, for all ages and all languages.
Post Reply
User avatar
Alboin
Member
Member
Posts: 1466
Joined: Thu Jan 04, 2007 3:29 pm
Location: Noricum and Pannonia

Go

Post 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?
Last edited by Alboin on Thu Nov 12, 2009 5:15 pm, edited 1 time in total.
C8H10N4O2 | #446691 | Trust the nodes.
Hangin10
Member
Member
Posts: 162
Joined: Wed Feb 27, 2008 12:40 am

Re: Go

Post 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.
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: Go

Post 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.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: Go

Post 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.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
Hangin10
Member
Member
Posts: 162
Joined: Wed Feb 27, 2008 12:40 am

Re: Go

Post 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)
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Issue 9

Post by Combuster »

"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: Go

Post 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.
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
Creature
Member
Member
Posts: 548
Joined: Sat Dec 27, 2008 2:34 pm
Location: Belgium

Re: Go

Post 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.
When the chance of succeeding is 99%, there is still a 50% chance of that success happening.
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: Go

Post by Colonel Kernel »

So apparently you make fields private to a package in Go by starting them with a lower-case letter. :shock:
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
User avatar
NickJohnson
Member
Member
Posts: 1249
Joined: Tue Mar 24, 2009 8:11 pm
Location: Sunnyvale, California

Re: Go

Post 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
Post Reply