So Google (Nasdaq: GOOG) recently announced the creation of a new computer language called Go. Most would ask the question, "Do we really need ANOTHER programming language?"
Google's short answer is "yes." Understanding the reason for the new language provides a good insight into what drives the Google machine -- an incessant passion to make everything they do go faster.
Go has a very well defined set of design goals including concurrency, garbage collection, and fast compilation and execution time. The creators of the language come with pretty weighty resumés. While at Bell Labs , Ken Thompson was the coauthor of the "C" programming language and the original Unix operating system along with Dennis Ritchie. Rob Pike is another Bell Labs alum and has "Plan 9 operating system architect" on his curriculum vitae.
Concurrency is a big deal when you're trying to do lots of things at the same time. Go provides a way to write modules, which they call "goroutines," and have them execute on multiple application threads automatically. Garbage collection is the process whereby computer memory is allocated and de-allocated on the fly. Many modern computer languages support this concept.
The Google Go team describes the language on their blog as follows: "Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C."
Leaning on languages like Python and C/C++ makes a lot of sense when you look at what Google does. With experienced folk on staff, including the inventor of the Python language, Guido van Rossum, they can leverage the productivity and wealth of applications written in Python. Google's App Engine uses Python for its primary language and could benefit from the speed and concurrency features of Go.
The C/C++ heritage brings static typing and a whole generation of systems-level programmers schooled in writing complex software in those languages. While Go borrows from these languages, it also introduces new concepts and shortcuts to make building things like a Web server faster and more efficient. At the end of the day, as a programmer you should be able to pick up the language pretty quickly regardless of your background.
You'll need either a Linux or Mac machine if you want to play around with Go. Supported CPU architectures include amd64 (listed as the most mature), 386 (basically all Intel 32-bit processors), and ARM (Android phones and others). Go is definitely in the infant stage although some of the demonstration programs seem to work quite well.
Google has posted a good amount of information on the main Go site including a tutorial, a video presentation by Rob Pike along with a PDF of his slides, instructions on how to get the compiler installed, and some examples. Go has garnered a lot of attention in the short amount of time since it went public and will obviously get more in the days to come.
I see nothing in Go that is not in C#/.NET, and C#/.NET is available in a non MS context if you want it. And Java with OSGi and so forth is far from out of the picture either.
I think we see where Google wants to Go. They have a simple business model- not B2B or P2P. Google wants G2everything. In a G2E world, there will be very limited space for partners and innovation.
I'm sure there are hundreds of unknown programming languages and each one has it's advantage over the know ones... it happens with everything. Basically all the standards I know are worse than the other option.
If you look at the Go FAQ it answers a number of the questions that you've posed. Probably the biggest single reason from the FAQ is:
"The Go project was conceived to make it easier to write the kind of servers and other software Google uses internally, but the implementation isn't quite mature enough yet for large-scale production use."
Simple is ultimately in the eye of the beholder. If you think about the problems that Go is out to solve - namely concurrent systems-level programs, you narrow the list of potential users. Having gone through the tutorials it looks like it would be most appealing to a Python programmer looking for a compiled language to make things run fast.
As to GUI IDEs there aren't any at the moment. It's a pretty safe bet to assume that there will be some kind of support in Eclipse but that's pure speculation on my part. For now your pretty much stuck with the old fashioned way of edit, compile and run.
I'm not a computer scientist nor a programmer, but I think we should welcome any inovation with open arm. Google guys might have good reasons to develop this new language. I don't think that they will just spend their money and time on something that will not be useful.
Hounhosp I cant agree with you more on that. Google is fast becoming anarchy, an empire where anything non google is bad and useless. The available programming languages are working fine, the new language is a mere old wine in a new “google” labeled bottle
"Go has garnered a lot of attention in the short amount of time since it went public and will obviously get more in the days to come."
This is the first time I hear about it and I'm sure it is the same thing with many persons. Is it a scripting lanaguage like python or a general purpose language like C++? I hope the reason behind the development of such language is not just a way for Google guys to "boost" their ego. I would like to know for example what GO can do and other languages such as C++, Java, C#, Python ... cannot do?
With the combined features of reliable languages like Python and C, Go does seem very powerful. However, I am concerned about syntax issues and whether it will be easy to learn it. I feel Google should aim to keep the syntax as minimal and as easy as possible. This is very important if they want programmers to start using it. From a simple "hello world" example of Go that I saw, it does not seem that simple.
Secondly, will google also provide a GUI based development environment for it? If Google plans to compete with existing established development platforms such as Java and Visual Studio, it should also focus on having an integrated development environment.
The ThinkerNet does not reflect the views of TechWeb. The ThinkerNet is an informal means of communication to members and visitors of the Internet Evolution site. Individual authors are chosen by Internet Evolution to blog. Neither Internet Evolution nor TechWeb assume responsibility for comments, claims, or opinions made by authors and ThinkerNet bloggers. They are no substitute for your own research and should not be relied upon for trading or any other purpose.
If you stop and think about it for a minute, there really hasn’t been any significant change in the way most of the traffic on the Internet travels in more than 10 years.
Smarter Collaboration: How to Thrive in a Challenging Business Environment Market conditions are changing faster than ever, and organizations need to improve their agility and adaptability in order to provide better service and improve processes. The ability to work with customers, business partners, and employees as effectively as possible - while at the same time holding down costs - is a key to success. READ THIS eBOOK
your weekly update of news, analysis, and
opinion from Internet Evolution - FREE! REGISTER HERE
Wanted! Site Moderators Internet Evolution is looking for a handful of readers to help moderate the message boards on our site as well as engaging in high-IQ conversation with the industry mavens on our thinkerNet blogosphere. The job comes with various perks, bags of kudos, and GIANT bragging rights. Interested?
To save this item to your list of favorite Internet Evolution content so you can find it later in your Profile page, click the "Save It" button next to the item.
In the final episode of this series about the death of Internet anonymity, Saunders describes how the Internet of the future will start to attain a level of intelligence that requires no human intervention. Scary.
What can users today do to protect their online privacy? The simplest and most obvious option is to not use the Internet – at all. However, once all digital information is consolidated over the Internet, trying to protect digital identity by simply unplugging from the Internet becomes impossible – a fact that has manifest implications for civil liberties, Saunders says.
Now that Bing has struck a deal with Twitter, its search service will have to process a tsunami of Tweets, many of which are worthless junk. Stefan Weitz, director with Bing Search, explains to Michael Singer how his service will make sense of the Twitter mayhem to provide relevant results to end users and enterprises.
By 2011 the number of Internet-connected sensors will exceed 1 trillion, making your chances of doing anything or going anywhere unnoticed pretty much zero. Saunders talks about how the 'sensortization' of the Internet is eliminating the traditional divide between online and offline populations.
Bing, Microsoft’s search service, has struck a deal with Twitter. Here Stefan Weitz, director with Bing Search, talks through how the deal will work from a technical perspective, and what’s in it for users.
The 20th Century Internet was characterized by the ability to interact with other people and information on the Internet largely without anyone knowing who you were. The Internet of this century, conversely, will be defined by identity. Saunders explains how Internet users are unwittingly contributing to the demise of the anonymous Internet.
Steve Saunders talks about the risks inherent in uncontrolled, widespread profiling of Internet users, and how one day this practice could form the basis of a new industry, the Outernet, which in economic terms will have outgrown the commercial value of the Internet itself.
Search companies and social networks are collecting incredibly detailed information about their users, says Steve Saunders, who predicts that these 'profiles' could one day become commodities to be bought and sold by companies on 'profile markets' or 'identity exchanges’ – the digital DNA equivalents of the financial and commodities exchanges on which stocks, oil, and gold are traded.
Research shows that the youth of today like Facebook – but not blogging or Twitter. Does that mean Facebook has won, or just that it's not yet out of favor? Will all the services we see today fade into Ovaltine-or-Wheaties status in just a few years?
What kinds of companies are doing the most innovation in the data center? Turns out it's midtier enterprises that are taking the "Just Right" approach.