Skip to main content
GameDev.net gamedev.net
🔒 Locked

Google Go!

Started by soitsthateasy Jan 5, 2010 at 7:47 AM 59 replies 12.9k views
Original Post
soitsthateasy
soitsthateasy
The new programming language brought to us by google!!! Any thoughts on it?
_the_phantom_
_the_phantom_
Quote:
Original post by soitsthateasy
The new programming language brought to us by google!!!
Any thoughts on it?


How about providing us with YOUR thoughts on it?
soitsthateasy
soitsthateasy
Right so!
I think it'll be a success simply because it's from google (Which I think will control the world someday :p) The syntax is very simaler to c++ from what I can see and I think I might go and learn it... Not so sure if it'll be suitable for game programming but they might bring in a new library for it or something.

Now, anyone elses view?
SamLowry
SamLowry
I don't like the language one bit. Keep in mind that I'm certainly no expert, and didn't look at the language very thoroughly (mainly because it failed to intrigue me enough to spend any more time with it).



  • No exceptions or anything that makes error-reporting easy. Multiple return values won't do, sorry, they just add even more imperativeness to the language as you can't call those functions inside expressions. (I'm a fan of functional programming BTW). AFAIK, you need to call "multireturn-functions" in a separate statement in order to be able to assign the return values to variables. Multiple return values don't seem to be just tuples, so you can't define a function which unpacks it.


  • No generics (for us at least, the language designers were able to define generic channel and map types). If you're going to have to cast all the time, then just make the language dynamically typed.


  • It "supports" multi-threaded programming by providing support for the CSP model (channels with messages), but not much more. Messages need to be read-only, yet the language does not even allow you to define read-only fields in structures. I'd like to have the language enforce some basic rules.


  • The pointer-system is just plain weird. They complicate things by again mixing things like by-value and by-reference. Also, you can call methods defined for type T on variables of type T, and also on type T* (no need for dereferencing), but not on type T** or more. I really don't like it when languages try to be smart.


  • Ugly, ugly syntax. Type notation can be confusing.


  • The way the interfaces work is interesting, but in the end it feels clumsy to me. Sometimes nominal subtyping is exactly what you need. I would have far preferred type classes (Haskell), which give you better control over what you want to express.


  • The fact that functions need to end with a return statement (you can't just have an if-statement whose branches end in return, that's not clear enough for the compiler) makes it look so primitive.


  • I'm not convinced that using lower versus uppercase identifiers is a particularly good idea to declare visibility. If you need to change it, you also need to update the entire file in which it appears.


  • The language is far too low level for my tastes. I felt it coming when I read how they felt they had to motivate the inclusion of garbage collection.


  • I don't understand their design goals. Do they want it to look familiar or not? Do they want the language to enforce rules or not? They provide some things that feel like you know them, but then suddenly twist around so that it surprises you and bites you in the posterior. The language feels very crooked that way. Sometimes it feels C-like, sometimes Perl-like, etc. That shouldn't happen.

  • Some more things which I forgot about since I last used it.



Also, Go does not provide anything new, it's been pointed out many times it's just Algol 68's younger brother.

I think it'll fail miserably. There already exist far better and more interesting languages than Go.
Mithrandir
Mithrandir
Google No!
This is my signature. There are many like it, but this one is mine. My signature is my best friend. It is my life. I must master it as I must master my life. My signature, without me, is useless. Without my signature, I am useless.
ChurchSkiz
ChurchSkiz
Will it come with an EULA that says any source code will be viewable by Google and any programs created with Go will become property of Google?

My take on it is that its popularity depends on how strictly Google forces it internally. If they make it THE only language for google's platforms then people will learn it. Otherwise, it will die a horrible death very quickly.
Codeka
Codeka
I don't know what's going on at Google, but they seems to have forgotten that - as a business - they need to make, you know, money. All of their latest stuff seems to be totally devoid of a business plan! How do they make money from Chome? From Android? From Google OS? From Gears? And now from Go?

They seem to be suffering the same disease as Microsoft: putting their fingers into far too many pies. But at least Microsoft can argue that much of their work can help to sell copies of Windows. What's Google's excuse?

Personally, I don't think the world needs yet another programming language. But then again, I thought the same thing when C# was released and look what happened there...
owl
owl
Quote:
Original post by Codeka
They seem to be suffering the same disease as Microsoft: putting their fingers into far too many pies. But at least Microsoft can argue that much of their work can help to sell copies of Windows. What's Google's excuse?


My guess is that they are positioning themselves (or at least trying) into as much markets as they can. (They could also be inventing excuses to squeeze money out of their stock/share holders who knows!)

From a glance this "new" language looks more oriented to fast development on portable devices and/or scripting. It's clear that it doesn't pretend to be a feature rich language at all, probably it's designed just around the problems google wants to address and nothing more.
[size="2"]I like the Walrus best.
ChaosEngine
ChaosEngine
Quote:
Original post by Codeka
I don't know what's going on at Google, but they seems to have forgotten that - as a business - they need to make, you know, money. All of their latest stuff seems to be totally devoid of a business plan! How do they make money from Chome? From Android? From Google OS? From Gears? And now from Go?

They seem to be suffering the same disease as Microsoft: putting their fingers into far too many pies. But at least Microsoft can argue that much of their work can help to sell copies of Windows. What's Google's excuse?


I thought the same thing. But a while ago I read this
Quote:
from a slashdot discussion of wave
What you're not seeing is Google's strategic intent (I work for Google, but this stuff is public).

Google's goal is to commodify (reduce the marginal profit to zero) of everything that they don't make money on. The hardware is pretty much commodified already. Plenty of competitors and the profit margins are razor thin. Next levels are the OS and the applications. These are not yet commodified due to Microsoft's aggressively maintained monopoly. Contrary to common knowledge, Microsoft's real monopoly is in the Office file formats. From that, they've levered a monopoly into basic individual productivity applications and then (with Apple's cooperation) the operating system. They are also a serious player in second-generation collaboration tools (extensions to basic email).

In order to reduce Microsoft's war chest and eliminate their competitiveness, Google seeks to lower the profit margin on everything Microsoft currently produces at a profit (Windows and Office). So they produce a cheaper operating system, cheaper productivity applications, and cheaper collaboration tools (ideally free to the typical user). Google doesn't need to make money (though breaking even would be nice), Google just needs to apply pressure to Microsoft to cut their revenues/profits and the strategic goals are being met.

Writing apps that run on Windows? Doesn't help Google very much (though SketchUp and Picasa and a few other things are native apps).
Writing protocols that run on any machine? Helps Google a lot.
Writing web applications that use those protocols and run on any machine? Helps Google a lot.

Look at the bigger picture. Google is acting extremely rationally here.


I can't verify this, but it's an interesting pov.

Quote:
Original post by Codeka
Personally, I don't think the world needs yet another programming language. But then again, I thought the same thing when C# was released and look what happened there...

I'd argue that the gain in C# is not so much from the language itself (which is nice) but from the framework, which is something that seems to have eluded the C++ committee.

As for Go, how does it make my programming easier/better/more productive than C#?
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
zedz
zedz
Quote:
I don't know what's going on at Google, but they seems to have forgotten that - as a business - they need to make, you know, money. All of their latest stuff seems to be totally devoid of a business plan! How do they make money from Chome? From Android? From Google OS? From Gears? And now from Go?

:) ask and you shall receive (im asked for oz to score a lot more runs btw, so god if youre listening be a mate)
news just to hand (but rumoured for ages)

google have just released their first phone, no doubt using android,chrome etc
http://en.wikipedia.org/wiki/Nexus_One

800x480 screen nice, no keyboard not nice

If this is only half as successful as the iphone, then android etc are gonna pay off in spades.
Im in two minds about jumping in WRT nexus development, Has anyone here considered it seriously? Or are actively doing it?

Codeka
Codeka
Quote:
Original post by ChaosEngine
I thought the same thing. But a while ago I read this
Quote:
from a slashdot discussion of wave
What you're not seeing is Google's strategic intent (I work for Google, but this stuff is public).

Google's goal is to commodify (reduce the marginal profit to zero) of everything that they don't make money on. The hardware is pretty much commodified already. Plenty of competitors and the profit margins are razor thin. Next levels are the OS and the applications. These are not yet commodified due to Microsoft's aggressively maintained monopoly. Contrary to common knowledge, Microsoft's real monopoly is in the Office file formats. From that, they've levered a monopoly into basic individual productivity applications and then (with Apple's cooperation) the operating system. They are also a serious player in second-generation collaboration tools (extensions to basic email).
Well I mean that's usually the reason corporations release things for free. That's why Microsoft released IE for free originally - to commodify the browser and reduce Netscape's market.

But in this case, to what end? What's the point of reducing Microsoft's profit share? Just because Google doesn't make anything from Operating Systems and office productivity tools? That just seems mean-spirited to me... I mean, Microsoft making a profit doesn't hurt the profit that Google makes, does it? They may as well start releasing petrolum-based products for free to reduce Exxon-Mobil's profit share for all the different it would make to Google's bottom line.

I don't know, I must be missing something...
owl
owl
Quote:
Original post by Codeka
But in this case, to what end? What's the point of reducing Microsoft's profit share? Just because Google doesn't make anything from Operating Systems and office productivity tools? That just seems mean-spirited to me... I mean, Microsoft making a profit doesn't hurt the profit that Google makes, does it? They may as well start releasing petrolum-based products for free to reduce Exxon-Mobil's profit share for all the different it would make to Google's bottom line.

I don't know, I must be missing something...


Sometimes when a BAR opens the first day, they use to give drinks for free to incentivate people to know the place. That kind of strategy can be called anything excepting generosity.

Also, one thing Microsoft has proven is that if you can make people depend on a product at home, they will demand it at work. And work very likely will have to pay for it, or for the support, training, etc. Bussines opportunities.

[size="2"]I like the Walrus best.
GroZZleR
GroZZleR
Ugliest language I've ever seen. I mean, Printf(), really?
Hodgman
Hodgman
I don't see anything about Go! that would drag me away from my day-to-day languages, or inspire me to learn it instead of other "interesting" languages.

Quote:
Original post by Codeka
I don't know what's going on at Google, but they seems to have forgotten that - as a business - they need to make, you know, money. All of their latest stuff seems to be totally devoid of a business plan! How do they make money from Chome? From Android? From Google OS? From Gears? And now from Go?
Heh, go visit their Sydney office and you'll notice they've got as many salesmen in there as developers. The point is that they do make a truck-load of money, they basically have a license to print the stuff! They're long-term business plan is grounded in reality, because they admit that one day someone might disrupt their current (very profitable) business model, which is why they spend so much of their spare cash doing stuff like Go!, Chrome, their OSs, etc... They might make 1000 interesting experiments just to see 1 turn into another thing their salesmen can actually leverage.
Quote:
Original post by Codeka
But in this case, to what end? What's the point of reducing Microsoft's profit share? Just because Google doesn't make anything from Operating Systems and office productivity tools? That just seems mean-spirited to me... I mean, Microsoft making a profit doesn't hurt the profit that Google makes, does it? They may as well start releasing petrolum-based products for free to reduce Exxon-Mobil's profit share for all the different it would make to Google's bottom line.
"Mean spirited" means nothing to a sociopath corporation. Microsoft is a direct competitor in their main business (which is advertising), Exxon-Mobil aren't. Harming the ability for their competitors to compete with them is a way of protecting their profits. Microsoft making a profit does harm Google, indirectly, and vice versa.
zedz
zedz
Quote:
(im asked for oz to score a lot more runs btw, so god if youre listening be a mate)

the bastard god came through
(yes I know oz were $10 at one stage but hey wrong time to take it)

now the big man, theres this match tonight do me right + Ill do right by you, ;)
comeon its a 4 figure payout

Quote:
Exxon-Mobil aren't
FWIW they recently gave a nz company 10million for an energy idea trial, thus are in competition they are (perhaps not directly like MS), personally the idea is a no go (to complicated) using kites to surf for energy, pfffft

Quote:
I don't know, I must be missing something...
why does MS release IE, MSVC etc for free, by the same criteria that is also a bad business idea
btw that was irony (now if u want a good money making web idea) patent someway that ppl can portray a sentence as ironic or a joke etc. cause its impossible to do on the internet, hell its nearly impossible to do in real life (me being someone with a very dark humour that often does a borat and talks the piss out of things without ppl realizing)
Fiddler
Fiddler
Quote:
Original post by phresnel
Quote:
Original post by GroZZleR
Ugliest language I've ever seen. I mean, Printf(), really?


What rant you about a classy Printf()?


printf("Die %d %s\n", "horribly", 0777);
[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]
NickGravelyn
NickGravelyn
I might tinker with the language but it looks like a step back from C# to me. C# simplified a lot with what I disliked with C, C++, and Java, but it seems like Go is going back towards those three. Fast compilation times? I've never had an issue with C# compile times and I've had some fairly large projects.

But admittedly I might not be the target developer case. They might be targetting low level mobile device developers: people who want the fast compilation you can get from something like C# but with the low level performance of C or C++... mixed in with some ugly Java looking stuff and strange naming convention rules.

I'm also confused why they would support three different ways of initializing a variable. One of their examples:

var s string = ""
var s = ""
s := ""

Why not just pick one? Sure it might be a case of "it was easy so we did it", but it just seems to muddle the language to have three different ways of doing the one thing, when you could have just settled on one of them.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.