As many readers of my blog have come to know, for the past couple of years, I’ve been extremely impressed by Apple, both in hardware and software. They simply make the best hardware on the planet and while everybody seems to think their hardware is “overpriced” nobody comes remotely close to Apple’s prices when they attempt to make similar quality products. Likewise, Apple’s software has been top notch. After being a Windows user for more than 17 years, I made the switch to OS X about 18 months ago. Since then, I’ve been floored by how smoothly OS X handles everything. Things run noticeably better than XP or Vista. Everything from simple animations, to switching between programs, to connecting a projector or 2nd monitor, to managing 20 open windows and playing audio/video files. When it comes to home-productivity software, such as Photo and Movie management, nothing comes remotely close to iLife, which is included free with every Mac.
But there is an area where Apple falls short in a significant way. With Axosoft now having experience developing for Windows, Web and iPhone, I can authoritatively say that Apple’s developer platfrom has some major shortcomings. While X-Code and Objective-C provide a reasonable environment for creating OS X and iPhone apps, Apple has virtually no tools for web development and largely relies on the open source (LAMP) world for web-based apps on its platform. That is a big surprise considering NeXT’s WebObjects was considered one of the premier web development tools when Apple purchased NeXT. In fact, back in 1996 when Apple bought NeXT, Dell operated it’s ecommerce site, Dell.com, using Apple’s WebObjects development platform, something Apple seems to have abandoned. But it gets even worse. Objective-C is an extremely verbose language which forces software developers to worry about a lot more things that modern languages, such as Java and C#, automatically take care of for developers. Memory management is tedious and frustrating, especially for those who come from a modern language background. And if you want to develop a database driven application, fo-get ’bout it! Apple’s Core Data APIs are designed for single-user local data storage. There is no Apple-based APIs for interacting with any client-server database systems like MySQL, SQL Server or Oracle.
Right now, Microsoft’s exceptional development tools is the best thing it has going for it. From top-notch integrated development environment (Visual Studio) to modern development languages (C#), to a great Web development story (ASP.NET, web services, IIS) and database development (SQL Server & APIs to access other systems). Microsoft is still the only company with the complete development package. Using Visual Studio and .NET APIs you can build desktop apps, web apps, database driven apps (regardless of which DB system you connect to) and web services. This development advantage is the biggest thing that is keeping Microsoft very relavent and in the game at a time when most of the product innovations are coming from Apple and Google.
With Windows 7 addressing much of the minor usability problems that plagued XP and Vista, Microsoft is still in a pretty good position. Unfortunately, the same can’t be said about Dell, HP or other WinPC hardware makers, as it still makes more sense to buy a Mac, even if you plan to run Windows. And while Microsoft is in a pretty good position for now, they still have to remain paranoid, because you never know if somebody in one of those super-secret rooms at 1 Infinite Loop might be working to complete Apple’s development story. After all, the iPhone caught everybody by surprise!
It’s exciting to see the tech industry dominated by 3 major players now, each giving the others lots of reasons to stay on their toes. If it wasn’t for OS X, we’d all be stuck with Vista for another 5 years.
Stay on the cutting edge of software development by getting innovative tips, trends and stories delivered to your inbox every month!