Monday, May 10, 2010

Not two but five

We in the industry often partition vendors into two camps. It doesn't matter what the camps are; two is the number that we often pick. So we have the Microsoft-Apple division, the Microsoft-Open Source division, or perhaps the Microsoft-Google division.

It seems to me that there are five major clusters of technology: Microsoft, Oracle/Sun/Java, Apple, Google, and Open Source. Minor clusters include Amazon.com and Yahoo.

Microsoft has by far the most complete collection of technologies for its cluster: C# as the primary language (with C++ and Visual Basic as secondaries), .NET and CLR for its framework and run-time, Visual Studio as the IDE, SQL Server for the database, Internet Explorer as the browser, ASP (sorry -- ASP.NET) and Silverlight for web applications, Azure for the cloud, IIS for a web server, and Office for word processing and spreadsheets, and Xbox for games. The holes in its technology set include a scripting language (VBscript is not strong enough to fill this slot) and a retail store for books and music.

Oracle has a less complete set. It has Java for the language, the JVM and multiple class libraries for run-time support, Eclipse as an IDE, the Oracle and MySQL databases, JSP for web apps, and StarOffice for word processing and spreadsheets.

Apple is a strong competitor for Microsoft. It has Objective-C for language (with C and C++ as secondaries), the Carbon and Cocoa run-times, the Safari browser, Microsoft Office, and iTunes for books and music. It lacks a database (although the Unix/Linux databases work) but doesn't seem to miss it, since it focusses on retail applications.

Google has web search, Google Docs (which offer collaboration), the App Engine for cloud apps, online books, and Chrome. It lacks an IDE, and SQL database, and a web server.

Open source has multiple languages (C++, Perl, Python, Ruby, and several others), the Eclipse IDE, the MySQL and Postgres SQL databases, the CouchDB NoSQL database, Open Office for word processing and spreadsheets, and the Apache web server.

The corporate entities have their markets, too. Microsoft and Oracle are vying for the large-scale enterprise customers. Apple is fighting (successfully) for the individual consumer. Google seems to be looking at the small business. Open source is not looking to acquire customers but contributors, which makes comparisons to vendors difficult.

Where will they be in a few years? My guess is not very far from where they are today. The fragmentation of the market seems a stable configuration. I expect that Large companies will continue to purchase Microsoft and Oracle solutions. Here I think the bifurcation of the market into Microsoft and Oracle will continue, with companies using one or the other and sometimes both.

I expect Apple to keep its lead in the retail market (despite its alienation of hackers). The current set of individual developers will be replaced by development shops. As companies enter the Apple iPhone and iPad market, look to see an increase in the complexity (and price) of development tools.

I expect that the development of large-scale applications will become more complex, with Microsoft and Oracle offering more expensive solutions for development. I also expect individuals to leave this market, driven out by the high cost of the development tools and the complexity of the toolsets and run-time packages. As it is, an individual is hard-pressed to understand all of the technology necessary to build and deploy a Windows-compliant application. (Even considering the "drag and drop" deployment that Microsoft offers.)

The only place for an individual will be in open source. Open source provides opportunities for individuals, small groups, and large groups. Right now, there are opportunities for individuals, either working alone or working with existing projects. A few open source projects have figured out how to monetize their work; if more projects can do this, the demand for individuals will increase, to the detriment of the proprietary projects.

So I don't see the development world in two groups. I don't see it as "Microsoft vs. Apple", or "Microsoft vs. Google". I see it as a set: Microsoft, Oracle, Apple, Google, or open source.

No comments: