Dr. Dobb's Journal September 2006
Michael is DDJ's editor-at-large. He can be contacted at mike@swaine.com.
IN THE LITTLE TOWN OF THE DALLES on the northern border of Oregon, something big is happening. Up to now, the main claim to fame of this sleepy hamlet on the Columbia River was being, at least prior to 1846, the western terminus of the Oregon Trail. But now it's attracting national media attention because of a development described by one city official as "like a UFO landing in Mayberry."
The Dalles is getting Googled.
Google is building in a giant industrial park in The Dalles what may be the world's largest server farm. The town's appeal as a server farm site seems to include cheap land, cheap housing, cheap labor, natural beauty, accomodating government officials, and a curiously good communication infrastructure (big-time high-speed fiber). But those virtues can be found elsewhere. Why The Dalles specifically? Chiefly, it's about the price of power.
CNET's Daniel Terdiman read about Google's The Dalles server farm in the New York Times and immediately tried to get into the place. He wasn't allowed in the secretive site, but the main impression he gleaned from his unproductive visit was one of power consumptionmassive cooling systems visible from miles away and deafeningly loud up close. And the facility wasn't even finished yet. As Sun CEO Jonathan Schwartz has pointed out on his blog, power demands of servers are becoming a huge issue. Google likes to roll its own servers, but if Sun gets an RFQ from Google tomorrow for a bunch of servers, it would probably be the power consumption issue that tipped the balance.
Computer users may worry about gigabytes and megaHertz, but Google is increasingly focused on kilowatts. The Dalles sits next to a 1.8 gigawatt dam on the largest hydroelectric power-producing river in the United States. As a result, the price of power in The Dalles is something like a quarter of what it is in Mountain View.
Google is not the only company capitalizing on the cheap power from Columbia River dams: Microsoft and Yahoo are building server farms in Quincy, Washington, farther upriver near Grand Coulee.
That they are all doing this gives some clue to how these three companies see their future. And it's nice to have some clues, because whether you're working in a three-person startup building an e-commerce app for some vertical market or tapping into open-source tools on the Web to aid your in-house programming at a Fortune 500 company, where these three companies are headed will affect you.
Other companies besides Microsoft, Google, and Yahoo are important players in the increasingly web-oriented world of software development and deployment. Some, like Amazon and eBay, have staked out their turf and seem predictable.
These three established powerhouses were once easily definable, too. You could almost do it in a single word. Google: search. Microsoft: software. Yahoo: er, portal? Directory maybe.
Anyway, they are now all radically redefining themselves and their positions in the market, and in doing so are threatening to invade one another's presumed turf. Google has the cash, brand identity, and in-house expertise to branch out into other markets, and many of the experiments in Google Labs look like potential incursions into what Microsoft considers its territory. Microsoft has been retooling to make everything it does more web-centric, moving into Yahoo's and Google's space. And while Yahoo gets less attention than Google and Microsoft, it has also been quietly but deeply redefining its role, using words like "ecosystem."
The changes they make will affect you, through the web development tools that these companies offer, the web platforms they build, or the products and services they deploy. And although they will share some of their plans with you and the rest of the world, they're not going to reveal all their plans, because these three companies are engaged in a battle.
That battle is taking place in cyberspace. It's commonplace to say that it's all about the Web now, but this means something specific to these titans. Take those servers.
You don't invest billions of dollars in server farms to write software. You do it because you expect to take in billions of dollars from hosting. But hosting what?
Hosting software is the easy answer: When software becomes a service, it has to run somewhere other than on your computer. But don't expect these companies to create services and compete on an equal footing with every other developer of web services, including open source and free. They're looking for a way not to get a piece of this new thing, but to own it.
The millions of people who use their products or services are their greatest asset. These companies are intensely focused on how to hold onto those people, how to leverage them, and how to get more of them. How do they do that?
The magazine model of selling advertising on your space is one way, but you've got to have a space. The world of web development is inherently distributed and acentric. Once the space was the desktop, and Microsoft used to get really brutal about what icons could appear on the Windows desktop. Google's restraint in selling spaceor putting much of anything at allon its search page is, ironically, part of its success. Yahoo has intense in-house battles for locations on its front page, and you can tell to look at it.
The search result page is a powerful space for reaching people. All three companies do search, and they all see the temptation to use control over search results for other purposes, but they all see how bad a strategy that would be.
Stickiness is all, but what is there to stick to? Of the three, Yahoo probably has the stickiest front page, but can it keep people coming there in the first place?
The point is, you can logically work out how the web-based app market ought to develop, but it won't play out exactly that way, because Microsoft, Google, and Yahoo need to warp it to serve their purposes, and they have the money and talent to figure out how to deform the geometry of that world.
So you need to ask yourself some questions: What can you determine about where the titans are headed? What are they advising developers to do? What are they enabling you to do? What are they doing that you don't have to? What technologies and standards are they pushing that you need to deal with? What doors are closing and what new ones are opening? Where can you safely ignore them? What are some skills or insights that will serve you well no matter how the clash of the titans plays out?
Two enduring theories that you can find worked out in rich detail on the Web are (1) that Google is planning to come out with a competitor to Microsoft Office, and (2) that it is developing an operating system. Neither is likely, but both are understandable, because Google is clearly pursuing something like each of these scenarios.
The office-like applications are mostly in place now with the release of Google Spreadsheet. Along with the Writely word processor and other components, Google has what looks superficially like an Office suite.
But a closer look shows that they must have something else in mind with these tools. Google doesn't even seem to be embracing the idea of a conventional app, let alone a suite of them. The spreadsheet lacks many capabilities of a serious spreadsheet app, but it extends an existing desktop spreasheet app in interesting ways. It supports Excel file read and save and extends Excel's capabilities to allow collaboration on the Web. And Google execs are pretty clear, too, in how dismissive they are of the whole desktop shrinkwrap app model. Their thinking seems to be, "Why would we target last generation's platform and application model?" Just as developing countries are not building landline phone networks but are leapfrogging right to cellular, it looks like Google will leapfrog the shrinkwrap desktop app model in which they have no sunk cost.
Where they're jumping to is the question.
Google is developing these apps or app services or widgets, but is not viewing them in the same way as Microsoft views its desktop apps. They will not follow the same financial model, same distribution model, or have similar features or target audience.
Where these apps evolve may in fact be decided by third-party developers who figure out how to tweak or extend or exploit them cleverly. To work with Google, you can visit Google Code and tap into the APIs for Google Maps, Search, Gadgets, Toolbar, Adwords, Data, or Blogger. There are SDKs, and for Google Desktop, free or open-source projects you can participate in. The Calendar app has an API that Python programmers seem to enjoy.
Readers of this publication will understand that Google is not literally going to go into the operating-systems business, challenging Microsoft on its own turf by sellinghow, exactly?a competitor to Windows. But taking over some of the more visible functions of a desktop operating system is something else again. The existence of Google Desktop pretty much indicates that Google doesn't think there's anything crazy about that idea.
But the desktop is simply not Google's turf, the Web is. Anything Google invests time and money in is going to be tied to the Web. And so we see developments like the rumored Gdrive, Google's Oregon server farm, and its purchase of massive amounts of dot-com-era dark fiber. Whatever else these developments mean, they show that Google is looking at all the different ways it can be involved in computer users' connection with the Internet.
So, again, how do you ensure that you're up on what it takes to play smart with Google? Along with the aforementioned tools, consider looking at Google Web Toolkit, which lets you build AJAX apps in Java.
Microsoft is a programmer's company. They will give you the APIs, the software roadmap, the hands-on workshops, they'll work hard to get you to work with them and develop with their tools and for their platforms. They may not tell you everything, but Microsoft gets it that they must communicate with developers.
But they have to know what the message is. When a company gets to a certain size, it can be totally sincere and open about pushing in two diametrically opposed directions at the same time. Look at IBM up until a few years ago.
And then there's the little matter of Gates stepping down.
Without taking anything away from the Myhrvolds and Simonyis and other technological visionaries Microsoft has employed, there is no doubt that Microsoft has looked to Bill Gates for its technological vision for 30 years. And the very fact of the care with which he's making his departure leaves little doubt that Gates is really removing himself from that role. This will have consequences.
There is already evidence that things are not all sweetness and light inside Microsoft: One Ballmer protégé recently left the company in a manner that revealed cracks in the usually smooth wall of corporate imagery. And while Steve Ballmer is a strong and effective executive, this is a technology company, and the departure of the technology leader creates a power vacuum. Ray Ozzie will have two years to establish himself and fill that vacuum, and he will presumably have Bill's support legitimizing him during all that time, so it won't be as chaotic as it could be.
Also, Gates has been doing everything he can to turn this ocean liner before leaving the bridge. The movement to the Web is happening. Some things are clearly established. Microsoft will continue to be a desktop operating system company, will continue to be a tools company, will continue to be an application software company, and will continue to be a web destination. Beyond that? Well, for web services you might want to make sure you're up to speed on WS enhancements, the .NET Framework 2.0 SDK, Windows Communication Foundation (Indigo), Visual Web Developer...But you already knew that. The more challenging task, and just as important to many developers' futures, is observing Microsoft to see if it will hold onto its power position in the industry.
It's easy, in comparison with Microsoft and Google, to dismiss Yahoo. After all, the original idea of the company, a handcrafted directory of the Web, seems quaint today.
But the directory is only one aspect of Yahoo today. Yahoo is big in social bookmarking with del.icio.us, is in the blog space with Blo.gs, has major weight in the photo-sharing world with Flickr, and has a finger in just about every other web service, including maps, mail, messaging, music, movies, and mobile services, to sample just one letter of the alphabet. Particularly important for developers is Yahoo Developer Network, launched with the acquisition of Konfabulator, now known as "Yahoo's Widget Engine."
And they have hired Larry Tesler. Tesler was one of the people responsible for the revolutionary work on user interface at Xerox PARC in the '70s, and went on to refine his vision of user-experience design at Apple and Amazon. So far his efforts seem to be focused on giving the home page a facelift, but he's come to Yahoo to do more than that. Designing the user experiencerather than merely the user interfacegets beneath the skin and right down to the muscle of the software. It'll be interesting to see what Tesler does for Yahoo once he really rolls up his sleeves.
Also interestingly, Yahoo seems to have decided that to meet the challenge of Google, it has to open up to developers more than Google is willing to do. At Yahoo Developer Network you can learn about the Messenger Plug-ins SDK, Search APIs, Maps AJAX and Flash APIs, a Design Patterns Library, and user interface tools. There's the PHP Developer Center for working with Yahoo Web Services, Yahoo Widgets, and plug-ins for Flickr and Yahoo Music Engine.
Staying afloat in the world that Microsoft, Google, and Yahoo are trying to create isn't that tricky. Study the published APIs, read about their plans and take them with a grain of salt, and don't lose sight of your own goals and strengths. That's pretty much all you can do.
Or, in defiance of everything said here, you can simply ignore these titans. That's a strategy, too. Design crowd-sourced software at Cambrian House, for example. Despite the defensive tone of this article, the world of software development is more open today than it has been for years. Inform yourself about the risks, yes, but then go forth and create.
DDJ