Google hopes to remake programming with Go
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, 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. 





Damn, they're taking over. :D
World belongs to Open Source. as it should always been.
Good luck Google. I hope it takes off.
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!
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.
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.
You do realize that that website is nothing but unsupported fear mongering, right?
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.
Maybe they should first use Go to write a program for Go :P
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.
C languages haven't yet outlived their usefullness and probably won't.
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.
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.
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.
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.
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.
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.
Thank you. I needed a good laugh...
MSVS getting their act together... LMFAO.
"Microsoft still got the best tool."
Are you referring to Steve Ballmer here?
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.
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.
Please redesign the mascot/logo.
Java is hardly any success. Bugged with performance and usability issues.
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!!
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.
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
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/
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.
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.
<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.
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.
Go is about as useful as "of" or "the" as a keyword.
All those brainy scientists and no one thinks of stuff like this?
As if it really matters. Try "go programming language" in quotes, or likewise for any of the above....
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.
- 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.
- Like this Reply to this comment
-
-
- by HamSammy November 12, 2009 8:42 PM PST
- cool story bro
- Like this
-
Showing 1 of 2 pages (68 Comments)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.