November 10, 2009 3:00 PM PST

Google hopes to remake programming with Go

by Stephen Shankland
  • Font size
  • Print
  • 68 comments

Google software luminaries such as Unix co-creator Ken Thompson believe that they can help boost both computing power and programmers' abilities with an experimental programming language project called Go.

And on Tuesday, they're taking the veil of secrecy off Go, releasing what they've built so far and inviting others to join the newly open-source project.

The computing industry is in constant tension between making a fresh start and evolving the current technology. The limits of today's hardware designs and programming technology led the Go team to take the former approach.

Gordon, the Go gopher mascot.

Gordon, the Go gopher mascot, drawn by Rob Pike's wife and illustrator Renee French.

(Credit: Google)

"We found some of those problems to be frustrating and decided that the only way to address them was linguistically," said Rob Pike, a principal software engineer working on Go. "We're systems software people ourselves. We wanted a language to make our lives better."

So far, Google's Go project consists of the programming language, compilers to convert what programmers write into software that computers can run, and a runtime package that endows Go programs with a number of built-in features. It's most similar to C and C++, but, Pike said, it employs modern features and has enough versatility that it could even be used within Web browsers.

Go's assets
There's a huge step between creating a new programming language and building into a major force in the industry. Sun Microsystems, which succeeded with Java, has had less success with a would-be Fortran successor called Fortress.

But Go has some assets most languages don't.

First, the project is at Google, which has a powerful incentive to make something useful in order to get more out of its hundreds of thousands of servers and its countless in-house programmers. An experiment at Google could have more commercial relevance than many other company's actual products, and Go is already graduated from a 20 percent time project to one with formal support.

"We don't intend it to be experimental forever," Pike said. "We really want to build stuff for real with this."

Second, there's the Go team's pedigree. Among them:

Thompson, the winner of the 1983 Turing Award and 1998 National Medal of Technology, who, along with Dennis Ritchie, was an original creator of Unix. Thompson also came up with the B programming language that led to the widely used C from Ritchie.

Pike, a principal software engineer who was a member of Bell Labs' Unix team and a later operating-system project called Plan 9. He's worked with Thompson for years and with him created the widely used UTF-8 character-encoding scheme.

Robert Griesemer, who helped write Java's HotSpot compiler and V8, the Chrome browser's JavaScript engine; Russ Cox, a Plan 9 developer; and Ian Taylor, who has worked on improving the widely used open-source GCC compiler.

The name Go itself stems from the challenging board game, a reference to Google itself and, of course, the idea of going somewhere, Pike said.

What's Go for?
Google has high hopes for Go.

It's designed to address some issues in getting software to take advantage of multicore processors that can perform multiple tasks in parallel. It has an approach to ease some of the pains of object-oriented programming. It has modern language features such as "garbage collection," which helps programmers deal with mundane but important memory management issues. And it's designed to be fast--nearly as fast as programs written in C or C++--and enable fast creation of programs in the first place.

"It seems it's getting much harder to build software than it used to be," even though computers are vastly faster than in the past, Pike said. "The process of software development doesn't feel any better than it did a generation ago. We deliberately tried to make a language that focused in part on rapid development, that compiles really efficiently, and that expresses dependencies efficiently and precisely so the compilation process can be controlled well. I find it much more productive to work in."

When it comes to the speed programs at which programs run, "Our target was to get as close as we could to C or C++," Pike said. They're reasonably close--programs run about 20 percent to 30 percent slower right now, he said.

The Go Web site itself is built with Go, but Google has broader ambitions. The software is designed to build server software--Google's Gmail is one example of what it's suited for. Google thinks that it could be good for other cases, including running software in a Web browser, a task JavaScript handles today.

"It's at least an order of magnitude better than JavaScript," Pike said. Note that Google built its own browser, Chrome, in part to speed JavaScript and Web performance, and that Google already is incorporating its technology such as Native Client and Gears.

Another nice Web-related feature in Go: tasks can be shared by servers and client devices such as PCs or mobile phones that use those services. That makes a service more easily adapted to different amounts of processing power for those clients, Pike said.

Making the most of multicore
Go also is designed to tackle one of today's big challenges, multicore processors. Programs often work sequentially, moving through a task one step at a time, but multicore processors are better at handling many tasks in parallel.

Go is no magic bullet for the problem, but Pike is optimistic that it will help. "We think we have support sufficient to take a crack at it," he said.

Specifically, Go uses a technology dating back to the 1960s called CSP, or communicating sequential processes, that handles interactions among a set of cooperating programs, Pike said. The technology made an appearance in programming languages such as Occom and Erlang, but it generally hasn't been applied in systems programming.

"We don't believe we've solved the multicore-programming problem," Pike said. "But we think we've built an environment in which a certain class of problems can take advantage of the multicore architecture."

The design also can apply, to some extent, to spreading tasks among multiple servers connected over a network, he added.

Lending a hand
The Go team is looking for help. One big area is in improving the runtime library from which Go programs can draw.

Such libraries speed up programming by providing many tools and functions so programmers don't have to create those ingredients on their own, and Go's library includes many elements crucial to Go's design. Go's libraries supply resources for handling concurrency, garbage collection, and other "low-level gunk you don't want to expose to programmers," Pike said.

The Go team also is looking for compiler help. Thompson has written some compiler support for 32-bit and 64-bit x86 processors, and for ARM processors, and Taylor has written a Go front end for the GCC compiler.

ARM processors are dominant in the mobile-phone market that Google is trying to spur into greater activity with the Android operating system, and Go software will be able to run on mobile phones, he said. "We're looking at interesting applications on things like Android phones. We're not sure where that's going to lead, but it's too intriguing to let it go," Pike said.

Google has released many products as open-source software over the years, in part to give something back to the pool from which it's drawn and in part because it stands to gain from the collective-development philosophy. Go fits with those motives.

"We did this to help Google first, but we decided (that) we need to open-source it," Pike said. "It's interesting, but it needs help from the community."

For all Google's ambitions for Go, the company doesn't expect it to erase today's technology.

"I don't think we'll replace anything," Pike said. "We're just putting another player into the arena."

Stephen Shankland writes about a wide range of technology and products, but has a particular focus on browsers and digital photography. He joined CNET News in 1998 and since then also has covered Google, Yahoo, servers, supercomputing, Linux and open-source software, and science. E-mail Stephen, or follow him on Twitter at http://www.twitter.com/stshank.
Recent posts from Deep Tech
Photographers bless improved Canon autofocus
Long-awaited Bibble 5 raw photo editor arrives
Garmin adds new wilderness GPS models
'Don't-be-evil' Google spurns no-evil software
Mozilla pushes back Firefox 3.6, 4.0 deadlines
TweetDeck deal brings a Sherlock Holmes look
Mozilla hopes to finish Thunderbird 3.1 in April
Adobe adds raw support for newer cameras
Add a Comment (Log in or register) Showing 1 of 2 pages (68 Comments)
by redmarine November 10, 2009 3:26 PM PST
What's next? Google Toilet Papers with Ads?

Damn, they're taking over. :D
Reply to this comment
by FF2009 November 10, 2009 4:22 PM PST
I see nothing wrong with it. As long as it's Open Source.

World belongs to Open Source. as it should always been.

Good luck Google. I hope it takes off.
by JessicaInPink November 10, 2009 6:19 PM PST
@redmarine
You are 100% right!

@FF2009

Yeah.. "You see nothing wrong with it". Well, take the blinders off!

Google owns it. Google is going to control every damn thing. Have you ever heard the term "power corrupts and absolute power..."

Google controls our privacy, email, Internet, etc. Do you see what is happening?

Just like we do not have a REAL say about what Google does with our private information in Google's search results, we will also not have a say in whatever else Google decides to screw us over with.

Do not be blinded by Google's "free services" approach to taking over. Once they get in deep, there is no going back!
by kojacked November 10, 2009 6:54 PM PST
"World belongs to Open Source. as it should always been." -- LOL! Good luck with that!
1 person likes this comment
by rdupuy11 November 10, 2009 8:41 PM PST
In my opinion, there is very much room for another language that 'gets it right'

Google, and this team have my respect, enough that I watched the whole hour presentation on Go.

I'm not sure they came up with the answer. Frankly I still love C. This looks a little like C in places, but updated for modern tasks, like messaging and multithreading and so on and so forth.

But this language wouldn't make me more productive. They may think its great for web pages, but its a monster.

Javascript lacks a lot, but what it doesn't lack, is simplicity. There is no reason a langauge can't be both simple, and have modern features....but these guys are maybe just too smart. For them things don't need any explanation, that, in fact, do require explanation, and because they require extensive explanation...it will never be considered a simple language, and therefore will never make the average pogrammer productive.

I think they missed the mark...but in the halls of Google, this thing is going to rock, and for a certain group, this is a great advancement.
1 person likes this comment
by blusky08 November 11, 2009 5:08 PM PST
No. Just no. IMO, Google is far too intrusive already.
For those so eager to turn over their lives to Google, please do yourself a favor and go to Google Watch and other websites that discuss many VERY disturbing issues concerning Google.
1 person likes this comment
by AlanK3000 November 12, 2009 4:02 PM PST
@blusky08
You do realize that that website is nothing but unsupported fear mongering, right?
1 person likes this comment
by SteveMcQwark November 18, 2009 4:28 PM PST
Umm... once Google open sources something, there is no threat of malicious misuse... they simply cannot have anything in there that could in any way be seen as controlling. And if Google decides to take it somewhere bad, then people can just fork it. There's really nothing bad that can come of this.

Its not like this is some sort of plot. It was some engineer's 20% time, essentially personal, project that got a promotion in backing. Google is simply a software engineering playground, which is why there is such a vast array of different types of projects, of varying degrees of success.
1 person likes this comment
by EdCenter November 10, 2009 3:43 PM PST
Oh... Thought Google was building the game of Go with improved AI.
Reply to this comment
by wshun0 November 10, 2009 7:26 PM PST
Me too!

Maybe they should first use Go to write a program for Go :P
by JohnFurrier November 10, 2009 3:46 PM PST
Great story Steve. Interesting to see them build in their own IP while open sourcing it.
Reply to this comment
by dargon19888 November 10, 2009 3:54 PM PST
Yet another programming language.

Wouldn't it be easier to take an existing language like Objective-C and extend it to handle parallelism?
Naw. Everyone wants to develop their own thing and mark their own territory.
Reply to this comment
by dungfilter November 10, 2009 4:19 PM PST
Agreed.
C languages haven't yet outlived their usefullness and probably won't.
by mjconver November 10, 2009 4:25 PM PST
Thanks, Dargon, motion seconded. Yet Another Farking Programming Language.

I've been programming since the 70's, code in a dozen languages, and still make all my money at it. My son is a college senior CS major, and after he learned his 4th language or so (including assembler), we had a wonderful father-son talk that boiled down to "Yep, all computer languages are just variations of If-Then-Else, For-Next, and Go-To".

Nerds who fight over whether Perl is "better" then C# have too much time on their hands.
by hattrix November 10, 2009 4:44 PM PST
I'm amused that you decry the proliferation of boutique languages and offer Objective-C instead.
by tphm November 10, 2009 5:45 PM PST
You guys know nothing about it yet; Don't show disrespect. Ken Thompson and Dennis Ritchie are very well-known in C world. They are not some wet-nose guys who want to write another lame language.
by rmullen0 November 10, 2009 7:04 PM PST
Seems like a case of been there done that. I wonder what it has to offer over Java or .NET. I would have rather seen them contribute to and improve Java instead of creating yet another language.
by Shonumi_Ikuzumo November 10, 2009 7:09 PM PST
I'm generally of the same sentiment. Another computer language... Google, at least in my eyes, seems to think that just because it's simple and easy, it'll immediately take off (i.e. like Chrome... lol) dazzle us all, win our hearts, and take over as some sort of de facto lingua franca (well, maybe that's just a suspicion against Google). All I can say is that it's been tried, but people use what they naturally feel will help them with the job, whatever that may be, and what they feel most comfortable with.

This sort of reminds me of spoken languages. No one single language rules all the world, no not even English, Chinese, or Spanish despite their proliferation. Language arises from necessity and a genuine want of its abilities. Fabricating ones just to make "the best" or a "better" language (I'm looking at you, Esperanto) usually don't work out too well. You don't go out of your way to construct it, better language happens through a sort of evolution. The thing about spoken languages is that if something isn't necessary, it rarely gets included. This analogy doesn't really transcend well to programming languages in the sense that there are quite a few features in some languages that may be deemed as excessive, but I'm taking about the language itself as a whole rather than its individual parts. If Go isn't deemed necessary by the intended audience, then its not going anywhere.

I admit, I'm a relatively young programmer (20) but I've been dealing with C++ as my main language for almost six years now, and I've been involved with an open source project as well, so I'm not absent of experience in these things. I disagree that C++ is a "cumbersome" language to develop in nor is it a "slow" one, just because you need to compile things prior to testing them. When I'm developing a new program (usually under Linux first before porting to other platforms) I have a terminal session open along with my given text editor. As soon as I change the project's files, I merely run a script that compiles the program using g++ and automatically launches the static binary and boom, its up and running in two seconds at most. Better yet, I'm using Konsole, so it remembers my previous command, any time I want to do it again, no typing, just gotta press the Up key and away it runs.

I've programmed in all sorts of languages (7 to be exact) and I've gone to Python too and have done tons of JavaScript over the years. The dynamically typed nature is a boon, no doubt, but still it seems like kid developers these days are way too impatient to wait for the two or -nay and heaven forbid- three seconds it takes for the C, C++ or Java compiler to do its rather short work. Yes, getting up a working chat application in 100 lines or less of code is fantastic in Python, and no, I wouldn't want us all to go back to making programs in pure machine language, but still it seems to me like a certain number of programmers are too concerned with development speed where its largely irrelevant (program initiation and such). I know larger projects, having compiled many Linux programs by hand from source, indeed take a while. Perhaps then its time to cut the cruft or ask the compiler makers to step up the game and get innovative. Also, most people seem to forget the not so distant past, JavaScript wasn't nearly as fast as it is today not even two years ago. It's because of all the plumbing that browser makers have reworked into the engines of their interpreters. Are the likes of C, C++ and Java not able to take advantage of a similar restructuring with their compilers? I know, in this comment I've gone on about speed and none of the other points Google gives for making Go, but the speed issue is the one and only I take issue with the most.
by Shankland November 10, 2009 10:29 PM PST
I'm not trying trying to argue Google is right or wrong but I'd recommend a look at the Go FAQ: http://golang.org/doc/go_faq.html

What is the purpose of the project?
No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:

Computers are enormously quicker but software development is not faster.
Dependency management is a big part of software development today but the ?header files? of languages in the C tradition are antithetical to clean dependency analysis?and fast compilation.
There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
The emergence of multicore computers has generated worry and confusion.
We believe it's worth trying again with a new language, a concurrent, garbage-collected language with fast compilation. Regarding the points above:

It is possible to compile a large Go program in a few seconds on a single computer.
Go provides a model for software construction that makes dependency analysis easy and avoids much of the overhead of C-style include files and libraries.
Go's type system has no hierarchy, so no time is spent defining the relationships between types. Also, although Go has static types the language attempts to make types feel lighter weight than in typical OO languages.
Go is fully garbage-collected and provides fundamental support for concurrent execution and communication.
By its design, Go proposes an approach for the construction of system software on multicore machines.


And this point:

Why not just write some libraries for C++ to do communication?
We considered doing that, but too many of the problems?lack of garbage collection, long dependency chains, nested include files, lack of concurrency awareness?are rooted in the design of the C and C++ languages themselves. We felt a viable solution required a more complete approach.
by ghaff November 11, 2009 6:54 AM PST
That option already exists by using something like Threaded Building Blocks. There are both advantages and limitations to that approach.
by zyxxy November 11, 2009 7:14 AM PST
Concurrent C was already done back in the 80s. It didn't go anywhere. I still have the book at home.
by cougar888 November 11, 2009 8:39 AM PST
@ Shonumi_Ikuzumo

I can see your point, but I think the "cumbersome" nature of C++ and C is not in the compiler speed. There are tools like make that improve that. The cumbersome nature of the C languages comes from it's stupid header file setup. In C++ if I write a class and then I need to change a method, I have to change it in the implementation, the prototype and the header. In Java, C# and Go, I just have to change it in one place. It just comes down to the fact that for most projects, it is just too expensive to go the C route. C languages have their forte and that is their endless libraries (legacy code) and their raw speed. Computers are cheap and for a small amount you can get the speed you need from a Java or Python program with hardware. I cost way more as a developer than a faster CPU. So if I'm a smart manager, I'll go with the language that speeds up development time in any way shape or form.

@rmullen0
Just looking at Go, it has advantages in the parallel processing paradigm. I would love to be able to start a function in a new thread with a simple keyword instead of inheriting a class (Java), using a delegate system(C#) or starting a p_thread(C).

As a final personal rant, I am glad that they fixed the switch statement. Breaks should be implicit. 99% of the time I write a switch statement, I break after every case. I'm curious to see in raw numbers how Go stacks up to C++ in performance.
See more comment replies
by Mr. Dee November 10, 2009 4:33 PM PST
Sorry, but the Mascot is not that well done, I could do that in Paint!
Reply to this comment
by JuggerNaut November 10, 2009 4:57 PM PST
He certainly looks better than Clippy (who was done in Paint)!
by Shankland November 10, 2009 10:41 PM PST
I kind of like the Mascot, but then I liked Glenda from Plan 9, which is by the same artist (Renee French, Rob Pike's wife): http://plan9.bell-labs.com/plan9/glenda.html

I'm intrigued by this move to cuddly mascots. There was a day when people chose jaguars, wildcats, wolverines, pumas, bears, timberwolves, and various other dangerous, aggressive animals. Now we have penguins, geckos, bunnies, and gophers in the tech world. I have no idea what the GIMP's Wilbur is, but he looks jolly.
by pretenderkc November 10, 2009 5:43 PM PST
i wouldn't worry about it.
Microsoft still got the best tool.
now, i would say Go will have a chance if it got something similar to MS Visual Studio with a lot of pre-made components.

was just reading the GO FAQ.
one word for Google....C#.
there's no comparison in GO with C#.
only compares to C++.
C++ is soooooooo old; although, it has its place even for today applications.
it's like comparing the Prius to Model-T!!!
why doesn't Google compare apple to apple?
GO vs. C#.

as for the speed, MS VS C# gives you the ability to write less code and can create a video/text chat application and compile less than 3 seconds.
not sure what to complain about that?

20 years ago, i would agree that Go FAQ.
but now with modern computer?
i have zero complain with MS VS 2008.
can't wait for VS 2010!! :-)

MSVS Pro is not free, but you can get the MS VS Expression for free!!
now, what so bad about FREE vs. open-source?
i rather have a closed-source.
cannot imagine having 1000 variations of stuff.
standardize something is not that bad.

nonetheless, i praise Google, Sun Microsystem, etc. for trying.
without them, MSVS wouldn't get their act together.
Reply to this comment
by whclevelandjr November 10, 2009 9:26 PM PST
@pretenderkc

Thank you. I needed a good laugh...

MSVS getting their act together... LMFAO.
by rwm72 November 10, 2009 10:45 PM PST
@pretenderkc

"Microsoft still got the best tool."

Are you referring to Steve Ballmer here?
by bananaphonerules November 11, 2009 3:05 AM PST
I do agree that standardization is good for a language. but i assume that just because its "open source" does mean Google doesn't control its direction. Whether that be legally or through manpower.

I do like C#; more than C personally. And Visual Studio is an awesome IDE. But remember Visual Studio isn't C#, but Visual Basic as well as other languages through third-parties. Even COBOL. URGGG.
by Ebraheem November 11, 2009 3:38 AM PST
@pretenderkc
I believe you're missing the point here. Go is supposed to be a "system software" programming language above all, not application software. That field has been dominated by C/C++ for a very long time. C/C++ are pretty much the best languages you can write drivers/operating systems/virtual machines (without mentioning assembly languages). Even your beloved .NET virtual machine (Microsoft calls it Common Language Runtime or something similar) which all C# programs run in is written in assembly, C, and C++. Windows is written in assembly, C, and C++ as well. Admittably, Microsoft has a project called Midori that aims to create an operating system written mostly in managed code (some parts just can't be done with managed code, the bootloader for example), but until we see some results, C/C++ is the best tool for systems software, period.
From what I understood, the main goal of Go is to be used as a systems software. It will be used for applications software too, of course. But consider C (not C++). C was meant to be a systems software programming languages to write UNIX in when it first started, but now, you can find C used for any application type: IM clients, games, word processors, you name it.
Now, I don't believe C#, Java, Perl, Python, Ruby, Scala, etc.. are "bad" languages. They are great for applications programming. But they simply are not systems software programming languages, these languages run in a virtual machine. While Go, C, and C++ are compiled into machine language. Go against C# is not 100% apples-to-apples. Go against C++ is closer (although not 100%, some programmers will *always* complain about how garbage collection is "less efficient" and "doesn't give enough control" than manual memory de-allocation).
But my greatest hope is to see Go being used instead of C/C++. C/C++ programs, despite being efficient and all that, occasionally suffer from buffer overflow, memory leaks and similar bugs. Even very experienced programmers make such mistakes, the languages simply gives them too much freedom and little checking.

@rwm72
Haha. Good one. Thanks for the good laugh.
by opiapr November 10, 2009 6:34 PM PST
Like I do with every programming language I will test it and if i like it and have potential I will master it. I won't make assumptions until then.
Reply to this comment
by luke_marsh November 10, 2009 6:40 PM PST
Ahh so its the David Haye of the programming world.
Reply to this comment
by TechSlap November 10, 2009 6:51 PM PST
Open source? How can a programming language be open source? Unless the tools that are needed in order to create the language are readily available for the community to use and see. I didn't find anything in this article about security. Last thing we need is a language that's as secure as C.
Reply to this comment
by Shankland November 10, 2009 10:26 PM PST
As I mentioned in the story, the release includes compilers (one GCC-based) and the runtime code. Good question on security--I didn't have time to get into the matter.
by Vegaman_Dan November 10, 2009 8:25 PM PST
I'm sorry, but Gordon has to... *ahem* Go.

Please redesign the mascot/logo.
Reply to this comment
by TheJae November 10, 2009 8:30 PM PST
"Sun Microsystems, which succeeded with Java, has had less success with a would-be Fortran successor called Fortress."

Java is hardly any success. Bugged with performance and usability issues.
Reply to this comment
by Shankland November 10, 2009 10:07 PM PST
Oh, I'm not trying to argue that it's perfect, but it is widely used, supported by many vendors, commercially relevant, and taught in a lot of schools. By many measures that's successful.
by lixpaulian November 10, 2009 11:48 PM PST
@TheJae: you have no idea what you are speaking about. Java is a mature environment and its performance reached mission critical level, just look at most server-based applications (banks, e-commerce, services, etc. etc). I participated in many Java-based medium and large scale projects and I should know what I am speaking about. Java let us never down, what we wanted to, we did, including database based large client/server applications.
by pretenderkc November 11, 2009 12:56 AM PST
i have to agree with TheJae here.

my story?
started programming back in 1986 with Q-BASIC.
then, Pascal.
then C in engineering school.
then, C++ on my own.
then VC++.
started to play with Java around 2000.
doesn't like the performance, support or the available tools.
2001....began to play with C#.
truly the best modern language, in my opinion.
write less code.
get more things done.
less errors.
3rd parties widely support MSVS.

@Shankland:
as for the widely taught at school, i wouldn't say it's a success.
i think the only reason the school chose Java over C/C++ b/c of pointers.
as one dude put it, "never so simple idea confuses so many people."
and so, the school chose Java to make the student's life easy!!!
i think it's the same stupid reason for grading the class on a curve.
just b/c the average test score 40%, should the student who got 50% consider "A-student" in the class eventhough he couldn't answer half of the test questions?

the sad part?
an interview at Motorola, Intel, Honeywell or Boeing without the knowledge of C/C++, you're gonna have to learn a new language fast!!!

having said that....i would say this again.
i praise Google, MicroSystem, etc. for trying.
being the number one guy like Microsoft, you know it's like being America.
there'll always some new kids on the block want to take you down!!
by cougar888 November 11, 2009 8:55 AM PST
@TheJae

If you think Java wasn't a success, look at this.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

It's funny how you say that and yet the majority of open programming jobs require Enterprise Java.

I'll give you the slower performance, but that isn't necessarily buggy. Some things don't need to be fast. Who cares if your application is slower than C when your broadband connection is the real bottleneck? 1.5 seconds vs 1.8 seconds. After you cross the 1 second barrier, time isn't as critical. It is all tied to the user's attention span. That said, it does have a given time and place. Systems programming isn't meant for Java.

What usability issues are you talking about?
Usability for the programmer? I'd have to say that Java is way more usable than many languages out there (hence its popularity)
Usability for the user? Depends if you are using Java in the right way. Don't write a mouse driver in Java. For a web based linear programming applet, Java is probably the best choice.
by as2319 November 10, 2009 10:10 PM PST
can someone explain why Google is too retarded to realize their designs actually incite puking?
Simple... sure, fine, but do it with style. Making these absolutely retarded finger painting quality iconic representatives for their products is just plain stupid marketing.

Droid. (*** is DROID... why even call it that...but that green stupid logo.. looks like something out of an mIRC chat window)

Go.. a gopher? it looks like cyber-poo
Reply to this comment
by as2319 November 10, 2009 10:11 PM PST
oh.. now W T F aka ***/*** is blocked? the censorship in this country is ridiculous.
Reply to this comment
by therealgeeves November 11, 2009 2:35 AM PST
Use this language, Rob Pike, you should have followed a language for your names sake.

Pike is a dynamic programming language with a syntax similar to Java and C. It is simple to learn, does not require long compilation passes and has powerful built-in data types allowing simple and really fast data manipulation.

http://pike.ida.liu.se/
Reply to this comment
by esperanto1941 November 11, 2009 6:17 AM PST
Replying to Shonumi_Ikuzumo above: Esperanto is not intended as a "better" or "best" language, but as an easy-to-learn SECOND language for everyone in the world, enabling people to communicate on an equal footing, no matter what their mother tongue is. See Wikipedia, and http://lernu.net
Reply to this comment
by rdupuy11 November 11, 2009 7:07 AM PST
@esperanto1941

Noone can stop parents who are bilingual in esperanto from raising their children on esperanto, and thus creating native esperanto speakers in the world - and some have done exactly that.

If esperanto were to become relevant, it would within a generation not have the 'equal footing' argument in its favor.

But its not relevant, so the point is academic anyway. English is the new lingua franca in the world.

Allthough I would caution people, bilingualism is still important...even if you make the unlikely choice of learning Esperanto, thats far better than being monolingual. Monolingual speakers just lack the ability to understand that meaning can be encapsulated in varying ways, and as such, tend to think they've made points when they haven't made a point at all, but are merely playing with a word's definition...they tend to be concrete thinkers. They lack some reasoning skills, it's not an advantage, ever, to be monolingual.
by Shonumi_Ikuzumo November 11, 2009 2:37 PM PST
@esperanto1941

True enough, Esperanto never was meant to be a "better" language, just easy enough to learn as a world-wide secondary language. But even then, I've met a few advocates that have pushed the view that it should globally become the language of choice, because somehow or another its deemed as "better" on account of how it can be learned. However, the fact I was moreover trying to illustrate was that the language itself was fabricated, i.e. made by a scholar. It didn't naturally evolve from how people orally communicated, it was developed and produced through precise linguistic methods. That's almost the reverse way languages come about. Adoption is often hampered not helped in cases like these.

I kind of feel Google has done that as well with Go. Sure they are taking a base from other languages, but the question I see in it is, are they making something new because of a natural necessity, or are they coming up with it for that sake alone? In other words, how justified is its creation at all? It feels unnatural in a way to me. The best way I would describe Go would be a solution looking for a problem. Time will tell if that's otherwise or not.
by Shonumi_Ikuzumo November 11, 2009 2:39 PM PST
By the way, I have nothing against Esperanto (except that I don't think languages should be created in that fashion) or multilingual people (I myself am trilingual).
by Michjo November 11, 2009 6:30 PM PST
@rdupuy11:

<i>Noone can stop parents who are bilingual in esperanto from raising their children on esperanto... If esperanto were to become relevant, it would within a generation not have the 'equal footing' argument in its favor. But its not relevant, so the point is academic anyway. English is the new lingua franca in the world.</i>

This argument implies that if Esperanto became relevant, it would necessarily also be the native language of a large part of its speakership. Esperanto can, and indeed has, become relevant without being anyone's (or almost anyone's) first language. Of the couple of million people who speak it, only about 2000 are natives, so the "equal footing" feature definitely still holds.

Even though the circle of speakers is small, within that circle, it is very relevant, as witnessed by its constant usage around the world. Relevance is subjective; what is not relevant for one person may very well be so for the next. The real issues are these: relevant for how many people, and how long until it is relevant for a large number? Two million may not seem like much, but consider that it started only 122 years ago, with almost no official help. It pushes forward, not by leaps and bounds, but faster than the world's population. As long as that continues, it will become relevant for more and an increasing percentage people. Some day, it could reach a critical mass and take off.

About English as lingua franca: Yes, it is used by many people in many situations, but even with 25% of the world's population knowing at least some English, that leaves at least 75% with knowing none at all. Of those who do speak it, most do so poorly. Can anyone get anywhere easily with English? Not most people, and not easily for most of those who do speak it. I'm not sure I'd call that a good lingua franca.

@Shonumi_Ikuzumo:

<i>True enough, Esperanto never was meant to be a "better" language, just easy enough to learn as a world-wide secondary language. But even then, I've met a few advocates that have pushed the view that it should globally become the language of choice, because somehow or another its deemed as "better" on account of how it can be learned.</i>

A few Esperanto speakers think the world would be better off with just one language, Esperanto, but they are a tiny minority. Most who push Esperanto the way you describe do so to have it be a second language. Whether or not a given Esperantist feels it should be the interlanguage of choice, or just an available choice, Esperanto has several features that recommend it for such a role, such as its extreme regularity and flexibility. These and other features make Esperanto very easy to learn and use as a non-native language, which vastly reduces the cost (money, time, opportunity) of acquisition over that of an ethnic language, and places mastery within reach of everyone - all without compromising expressiveness. In those respects, it is "better"; however, once mastery of Esperanto is achieved, expressiveness, comprehension and communication are no better nor worse than in a native language.

<i>However, the fact I was moreover trying to illustrate was that the language itself was fabricated, i.e. made by a scholar. It didn't naturally evolve from how people orally communicated, it was developed and produced through precise linguistic methods.</i>

That's actually not true about Esperanto. When published in 1887, it was a drawing-board project. However, shortly after, its inventor decided the only way his language would gain traction and a life would be to set it free, which he did. From then on, the Esperanto community, not its inventor, shaped Esperanto into what it has become today: a complete, living, natural world-wide language. It achieved that through a natural evolutionary process comprised of the millions of mostly unconscious decisions made by its community through constant usage in every situation imaginable, exactly like any other language. Esperanto has a small, unchangeable core to assure stability, but even that was only suggested by its inventor, then accepted by the entire community. There is an Esperanto academy today, but it has no more power - in fact, with no government behind it, less power - than, say, the French or Spanish language academies. It may have started out artificial, but it ceased to be long ago. And it's not alone in this regard: modern Hebrew, Nynorsk and Bahasa Indonesia are all examples of languages that, like Esperanto, started out planned - "artificial", if you like - and based on elements drawn from existing languages and/or dialects, but were then turned over to the community, thereby infusing them with a life and a soul.
by Shonumi_Ikuzumo November 12, 2009 3:35 PM PST
@Michjo

To clarify, when I said it didn't naturally evolve, I meant its initial coming to be, not the present state that it is in. It was indeed a man-made language in the sense that it was designed before people spoke it or even learned it. It's coming to be in the first place was not a natural phenomenon made by the people who used it as a necessary means for communication. It may have come to that now because of the fact that it has been circulated into use, but going back and back to where it originally came from, it was artificially contrived as opposed to the rest of so many languages in the world. Esperanto is very different in the fact that it even had a creator from the beginning.

Again the only reason I'm even mentioning Esperanto in these comments is that even though it as a language offers so much for the world and has some really great potential, like Google's Go programming language, there's the question of necessity. It's great that Esperanto exists, the same is said for Go, but are they going to be necessary to us, or at least the majority of us? If not then adoption and implementation are both either hampered, or never really reach their true and intended goals. It's very questionable whenever someone just up and creates something whether or not it will be relevant and needed by society, especially when there is at least some degree of artificiality in its making. In the case of Esperanto, it's a language, we'd have to wait a couple hundred years to even see the greater effects, it's just that I myself have some serious questions pertaining to it. But the world of programming and computers moves a bit faster than that. Go feels in a sense artificial in that, as I said before, its a solution looking for a problem to fix.
by catbutt5 November 11, 2009 7:02 AM PST
It's kinda funny that a company whose business is built upon searching for stuff would name a product with an unsearchable name.
Go is about as useful as "of" or "the" as a keyword.
All those brainy scientists and no one thinks of stuff like this?
Reply to this comment
by zyxxy November 11, 2009 7:09 AM PST
Yeah, like trying to sort on 'C', 'Java', 'Python', 'Ruby', or 'Shell'

As if it really matters. Try "go programming language" in quotes, or likewise for any of the above....
by zyxxy November 11, 2009 7:07 AM PST
Gordon looks a lot like Glenda, the Plan 9 bunny....
Reply to this comment
by Shankland November 11, 2009 7:53 AM PST
Yup, same artist drew both: Renee French. http://reneefrench.blogspot.com/
by weegg November 11, 2009 7:26 AM PST
Sigh, Lisp had them all beat for code prototyping and speed of development. In fact you can get lisp code to run within 20% of C if you take the time to set it up right.

Incremental compiling, dynamic multiple inheritance, meta-classes and a small core set (only 4MB compared to replicating it in C++ was over 10MB). Such an easy language to program with very little syntax requirements too. Too bad it was never embraced.
Reply to this comment
by ssfrmria November 11, 2009 9:30 AM PST
When I saw this article I was hoping that google would be moving away from text based programming. Kind of like LabVIEW but geared more for the web. If you haven't heard of LabVIEW I encourage all of you to look into it. It is designed for hardware control but they are starting to do beta testing on web thin-client applications. LabVIEW is also natively multi-core by simply drawing unconnected for loops. Maybe a more well known use of LabVIEW is LEGO Mindstorms. That programming environment is based off of LabVIEW.
Reply to this comment
by hmdz105 November 11, 2009 10:28 AM PST
The hot topic over programming languages never ends any where. But from my own views of dealing with 6-7 programming languages over the years, i can say that NO LANGUAGE can have it all ! and NO COMPANY can ever say mine is better.

I think there are variations because there are different development demands, needs and restrictions. No high level language (like c# / Java) can be as refined for fast execution in embedded hardware as c/asm is, and no low level language (like c/c++) can bring the RAD capabilities of a Just-in-Time compiled language as C# does.

A one, almost have-it-all (or be-them-all) language is c++ which in my opinion needs a perfect replacement to refine its complex nature. (May be D language can do that.
Google ,here is trying to push its own brand into the programming world, just because it is Google! And I am pretty sure, Google's programming language is not going to be next big thing, as it is so soon to have the next best thing in the programming world right now.
Reply to this comment
by HamSammy November 12, 2009 8:42 PM PST
cool story bro
Showing 1 of 2 pages (68 Comments)
advertisement

15 sites that went kaput in 2009

Web sites launch all the time, but they also shut their doors. We highlight 15 that bit the dust this year.

Top 10 news stories of the decade

Let the debate begin: Was the iPhone more important than iTunes? Was anything bigger than Google finding a great business model? CNET offers its list of the 10 most important stories of the '00s.

About Deep Tech

Stephen Shankland, who's covered the computing industry since 1998 and was a science reporter before that, here delves into a wide range of technology trends and offers hands-on tests. His particular interests include Web browsers, cameras, standards, research, science, and start-ups.

Add this feed to your online news reader

Deep Tech topics

advertisement
advertisement

Inside CNET News

Scroll Left Scroll Right