Sunday, November 15, 2009

12 Things to Know About Google's Go Programming Language


Google's new programming language, called Go, took the application development world by storm when the search giant released it Nov. 10. The ambitious technology's pedigree features programming experts from the Unix world, including Ken Thompson, who teamed with Dennis Ritchie to create Unix. Created as a systems programming language to help speed up development of systems inside Google, Go is now viewed as a general-purpose language for Web development, mobile development, addressing parallelism and a lot more.
Google's new programming language, called Go, took the application development world by storm when the search giant released it Nov. 10.
The ambitious technology comes with a pedigree featuring programming experts from the Unix world, including Ken Thompson, who teamed with Dennis Ritchie to create Unix. Created as a systems programming language to help speed up development of systems inside Google, Go is now viewed as a general-purpose language for Web development, mobile development, addressing parallelism and a lot more.
Ironically, Google launched Go just a week before Microsoft's Professional Developers Conference, which typically dominates the software development landscape while it is running. This time there might be a little Go buzz at the event.
Go is an experimental language that is still in the process of being tweaked and maturing, but it holds huge potential. The Google Go team blogged about Go, saying, "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."
1. Where did the idea for Go come from?
Pike, Thompson and Robert Griesemer of Java HotSpot virtual machine and V8 JavaScript engine fame, decided to make a go of developing a new language out of frustration with the pace of building software. Said Pike:
"In Google we have very large software systems and we spent so long literally waiting for compilations, even though we have distributed compilation and parallelism in all of these tools to help, it can take a very long time to build a program. Even incremental builds can be slow. And we looked at this and realized many of the reasons for that are just fundamental in working in languages like C and C++, and we needed a different approach. We also decided the tools that everybody used were also slow. So we wanted to start from scratch to write the kind of programs we need to write here at Google in a way that the tools could be really efficient and the build cycles could be very short."
2. Go is a multipurpose language
Pike said Go is appropriate for a broad spectrum of uses, including Web programming, mobile programming and systems programming. "We based it on our ideas of what we think systems programming should be like," he said.
Then a Google engineer told the team he wanted to do a port to ARM processors for the Go language because he wanted to do some work in robotics. With the ARM support, "We can now run Go code in Android phones, which is a pretty exciting possibility," Pike said. "Of course, ARMs also run inside a lot of the other phones out there, so maybe it's a mobile language."
He added, "I think people, once they absorb it a little bit more, will see the advantage of having a modern language in some ways that actually runs really fast. And it's an interesting candidate to think of as an alternative for JavaScript in the browser.
"Although getting Go supported inside browsers is going to be a seriously challenging undertaking ... but it is an interesting thing to think about because it has a lot of the advantages of JavaScript as a lightweight, fun language to play with. But it's enormously more efficient. So some of the big, heavy, client-oriented applications out there like Google Wave would be much zippier if they were written in Go, but of course they can't be written in Go because it doesn't run in a browser yet. But I'd like to see some stuff in that direction, too, although how that's going to happen I don't know."
http://www.eweek.com/c/a/Application-Development/12-Things-to-Know-About-Googles-Go-Programming-Language-859839/

Google Chrome OS: A Nice Place to Visit, But?



Google's Chrome operating system could mark a turning point in computing, but many questions remain. Today's rumor is the OS will be released to developers next week, answering some questions but probably raising even more. Google had previously promised Chrome OS, in some form, before the end of this year.
Chrome OS strikes me as being just enough Linux to allow an underpowered computer to run Chrome browser and connect to cloud-based applications. How exciting can that really be?

On a netbook, Chrome OS may be enough to provide mobile functionality. On a desktop, Chrome OS may turn a PC into a glorified terminal, relying on the Internet for nearly everything the user does.

There are many questions about Chrome OS, some of which may be answered when Google releases whatever it decides to make available to make good its promise to release the OS, in some form, before the end of this year.

Among those questions:

Just how limited will Chrome OS be? What will and won't it do?
Will it natively run third-party applications on the hardware where it resides? Or just to connect to applications in the Internet cloud?
Will cloud apps need to be written specifically for Chrome?
Will Chrome create a standard for the look-and-feel for cloud application?
Might Chrome only run applications that Google hosts?
Will Chrome require--or even use--a hard drive? Might Chrome OS netbooks have a small silicon drive and nothing else?
When Google promises an end to security hassles, such a viruses, malware, or updates, what trade-offs are required?
Google has previously said Chrome is intended to be lightweight and get users connected to cloud applications quickly. The company seems to believe that cloud apps will become pervasive and will not require a very powerful machine to run them.

Thus, Google is creating a very lightweight browser (Chrome) to run atop what amounts to an embedded operating system (Chrome OS) running on netbooks (to be released next year).

I also expect the OS to include Gears, Google's technology for offline access to its cloud-based applications.

What will Chrome do beyond that? Maybe nothing. If Google really believes its cloud rhetoric and is really serious that Chrome OS will be virus-free, maybe the new OS won't run applications, just the browser and Gears?

Add a robust security mechanism, to make certain the cloud-based applications and Web sites haven't been tampered with, and Chrome could be a more secure operating system than we're used to. If only by keeping the computer from doing anything besides interacting with Web sites and web-based applications.

I find that idea strangely attractive, though it will certainly result in devices with limited functionality, just like today's netbooks. However, performance may actually be better since netbooks could be freed from laboring to run Windows and heavy Windows applications.

Google Chrome OS introduces a new computing model and may even change how we think about operating systems. Its importance hinges upon how widely and quickly cloud applications take center stage, what trade-offs customers are willing to make, and most importantly, what Chrome OS actually turns out to be.
http://www.pcworld.com/businesscenter/article/182152/google_chrome_os_a_nice_place_to_visit_but.html

Sunday, October 11, 2009

Will Google's Wave Replace E-Mail—and Facebook?


Google has big plans for Google Wave, its new online communication service—and they won't all come from Google.

The Web search giant is hoping that software developers far and wide will create tools that work in conjunction with Wave, making an already multifaceted service even more useful. Google (GOOG) is even likely to let programmers sell their applications through an online bazaar akin to Apple's App Store, the online marketplace for games and other applications designed for the iPhone. "We'll almost certainly build a store," Lars Rasmussen, the Google software engineering manager who directs the 60-person team in Sydney, Australia, that created Wave, told BusinessWeek.com. "So many developers have asked us to build a marketplace—and we might do a revenue-sharing arrangement."

Combining instant messaging, e-mail, and real-time collaboration, Wave is an early form of so-called real-time communication designed to make it easier for people to work together or interact socially over the Internet. Google started letting
developers tinker with Wave at midyear and then introduced the tool on a trial basis to about 100,000 invited users starting on Sept. 30. Invitations were such a hot commodity that they were being sold on eBay (EBAY). For Google the hope is that Wave, once it's more widely available, will replace competing communications services such as e-mail, instant messaging, and possibly even social networks such as Facebook.
http://www.businessweek.com/technology/content/oct2009/tc2009104_703934.htm

Thursday, October 8, 2009

Google Wave first Invitees


Google Wave is about to open to new users. Starting today, Google will send 100,000 invites to some of those who were eager to use an early version of the service. Google's blog lists three categories of users that will receive invites: Google Wave Sandbox users, those who signed up and offered to give feedback on Google Wave and some Google Apps users. When you receive an invitation to Google Wave, you'll be able to invite other people so you can use Google Wave together.

"Google received more than 1 million requests to participate in the preview, said Lars Rasmussen, engineering manager for Google Wave, and while it won't be able to accommodate all those requests on Wednesday it is at least ready to begin the next phase of the project," writes CNet.

Like Gmail's early version released in April 2004, Google Wave lacks many basic features: you can't remove someone from a wave, you can't configure permissions or write drafts. The interface is not very polished and some of the options are difficult to find, but it's important to keep in mind that Google Wave is just one of the ways to implement an open protocol. Gmail revolutionized email with an interface inspired by discussion boards: messages are grouped in conversations and it's easy to handle a large amount of messages. Google Wave wants to revolutionize real-time communication by extending a protocol mostly used for instant messaging, XMPP.

Combining email, instant messaging and wikis seems like a recipe for confusion, but Google Wave pioneers a new generation of web applications, where everything is instantaneous. As Google explains, each wave is a hosted conversation and users can edit the conversation in real-time.
http://googlesystem.blogspot.com/2009/09/new-batch-of-google-wave-invites.html

Thursday, August 20, 2009

Personalized YouTube Homepage


YouTube tests a new homepage that is customizable and centered on your activities. Instead of displaying the same content for all YouTube users, the new homepage looks different, depending on your preferences and your activities. Here's what's new:

* recommended videos, a feature that relies on your previous activity: favorite videos, subscribed channels
* latest from your subscriptions: 12 videos from 3 of your subscribed channels
* friend activity: a list of videos uploaded, favorited or rated by your YouTube contacts. This information is displayed only if your contacts added it to their public profiles.
* inbox: messages, friend invites, received videos.
* statistics about your videos (total views, subscribers) and your activity (subscriptions, comments).
"The goal with all of this is to gauge people's interest in having a YouTube that's tailored to the individual. Ultimately, we want to get you one step closer to the videos you'll enjoy most every time you come to the site," explains YouTube.

http://googlesystem.blogspot.com/2008/03/personalized-youtube-homepage.html

Google switches on Apps Script

Google officially rolled out its Apps Script functionality for enterprise users on Wednesday, following a limited pilot release earlier this year.
Google Apps Script works mainly within the Spreadsheets app to automate various processes. For example, you can automate the sending of e-mails messages based on data held in a spreadsheet, or create scripts that communicate with other Web services.
"Back in May, we announced a pilot release of Google Apps Script, and after thousands of hours of use, and lots of valuable feedback, we're excited to launch Google Apps Script to all Google Apps Premier and Education Edition customers today," Google Apps products manager Evin Levey on Wednesday.
Giving an example of how Apps Script can be used, Levey described an expense approval scenario, where the script automatically converts foreign currency to local currency, pulls historical exchange rates from external Web services, picks up on missing data and flags certain expense categories for review.
"Even more useful, the script can figure out whose approvals are needed and automatically request approval from those people," Levey wrote. "And once approved, the script sends a note to the finance department for payment--all without writing a single e-mail."
Google Apps Premier and Education Edition customers can locate the scripts functionality through the Tools menu in the Spreadsheets app. Levey wrote that the Apps team is seeking feedback on what customers come up with in their use of the tool.
Also on Wednesday, Google's enterprise team announced another tool called Side-by-Side search. The tool allows users to compare the results of two separate searches based on the same body of data, which the team said would allow the evaluation of the Google Search Appliance (GSA) against a company's existing enterprise search product.
The team also announced an upgraded suite of GSA Connectors, including an Enterprise Labs release of a connector for the Salesforce CRM system.

http://www.zdnetasia.com/news/internet/0,39044908,62057072,00.htm?scid=rss_z_nw

Sunday, August 9, 2009

Google reveals plans for Chrome cloud synchronization



Google has revealed plans for a Chrome cloud service that will allow users to synchronize browser data with their Google accounts. The synchronization framework, which is still at an early stage of development, will arrive in Google's open source Chromium project later this week. Google says that a Chrome build with the sync feature enabled could be made available through a dev-channel update this month.

In a message posted to the Chromium developer group, Google engineer Tim Steele described the process through which the feature will be integrated into the browser. Google has also published a design document that provides a high-level overview of the synchronization architecture.

"A bunch of us have been working on a feature to sync user data in Chromium with a Google account," Steele wrote. "We have built a library that implements the client side of our sync protocol as well as the Google server-side infrastructure to serve Google Chrome users and synchronize data to their Google Account."

The Chrome synchronization framework will initially handle bookmarks, but it is designed to support other kinds of browser data in the future. It uses a push messaging model to propagate change notifications, which means that activity in one instance of the browser will be reflected immediately in other instances. This will make it more seamless than other bookmark synchronization services like Weave and XMarks that rely on polling to determine when data needs to be synchronized. Google also plans to provide a Web interface so that users can remotely access their bookmarks from any browser by logging into their Google accounts.

The synchronization framework will use a persistent XMPP connection for change notifications. The Google Talk servers will provide the backend infrastructure for that part of the synchronization process. The actual bookmark data will be transmitted in Google's Protocol Buffer format. The design document suggests that XMPP was adopted instead of a polling model for scalability reasons and to make synchronization more seamless.

Steele says that the sync code represents a major change to the browser's code base and that it will be landing in the Chromium tree incrementally so that it can be properly reviewed. The client-side sync code currently works on Windows and Linux but doesn't work yet on Mac OS X. To enable broader testing, the developers plan to make available an experimental Chrome build for Windows with the synchronization feature enabled; it will be deployed through the developer update channel later this month.

"We're planning to use the syncapi DLL to produce a sync-enabled Google Chrome build for dev-channel users in a week or so, to get the feature into experimentally inclined hands," Steele wrote. "We have a great deal of infrastructure, both in the browser and in the form of production Google services, that needs to start seeing real user traffic and usage. It takes a great deal of testing and confidence inspired by real usage statistics before any complex system like this can be deemed adequate for use by a large user base."

Browser sync will boost the value of Google's browser and advance Google's strategy of converging the desktop with the cloud. It's a particularly intriguing development in light of Google's upcoming Chrome OS. Seamless synchronization of browser data between a desktop and netbook could be a very compelling feature. It's not clear yet if Google will also bring this feature to its Android mobile browser, but it seems like an obvious move.

Google intends to document the protocols and make the client-side source code available under an open license, which means that it could be possible for third-party developers to bring Google synchronization support to other browsers. This will be a welcome development for users who still mourn the loss of Google's Firefox browser sync, which was discontinued last year.
http://arstechnica.com/open-source/news/2009/08/google-reveals-plans-for-chrome-cloud-synchronization.ars