26 September 2005

"Those who do not understand Unix...

...are condemned to reinvent it, poorly.” — so spake Henry Spencer’s sig, in 1987. And here we are, eighteen years later, and everybody’s favourite blame-server finally gets around to beginning the process. And I quote from Page 2:

A newcomer to the Windows group, [Corporate Vice President, Windows Core Operating System Development] Mr. [Amitabh] Srivastava had his team draw up a map of how Windows’ pieces fit together. It was 8 feet tall and 11 feet wide and looked like a haphazard train map with hundreds of tracks crisscrossing each other.

That was just the opposite of how Microsoft’s new rivals worked. Google and others developed test versions of software and shipped them over the Internet. The best of the programs from rivals were like Lego[®] blocks — they had a single function and were designed to be connected onto a larger whole. Google and even Microsoft’s own MSN online unit could quickly respond to changes in the way people used their PCs and the Web by adding incremental improvements.

What I suspect that they haven’t begun to really come to terms with is just how very deeply so very many applications reach into that non-Flying Spaghetti Monster of code.

I’m sure that the WINE and Win4Lin people will be having a good chuckle to themselves over this one. Seeing Microsoft’s efforts to chain customers to their codebase come back to bite them on the butt must be quietly satisfying, and now Microsoft faces de-engineering much of the spaghetti out of their own code.

Which means...

Since people are going to be rewriting applications for Vista now, Linux and BSD advocates have yet another fabulous opportunity to say “Well, why not make it portable this time, so you don’t have to go through the same drama again next time Microsoft changes stuff? And in the process grab yourself some access to emerging markets — the Linux which Microsoft so rightfully fears will eat their corporate lunch, and the revitalised Macintoshes?“

I already know of an Australian application developer eagerly porting to Kylix and PostgreSQL from Delphi and MS-SQL-Server, ready to join others who develop on Linux for cross-platform targets (through Free Pascal, they can target x86, PPC, AMD64, 68k, Arm and Sparc on a variety of platforms, specifically including Linux, Win32, Mac OS <=9, Mac OS X and FreeBSD).

They and their customers have started noticing how much “seats” cost and how much Microsoft’s software limits their other hardware, software and support choices.

The next major release of their premier application will run end-to-end natively on Linux (their current release runs under WINE but for .xls export, however is still tied to the database). This vertical-market application is an expensive lump sum to swallow, but rolling it out on Linux, OpenOffice and PostgreSQL across a fifty-seat business roughly halves the overall cost to the customer without the slightest loss of profit to the developer, and the customer still has the option of running it on MS-Windows workstations and/or servers and/or application base if they want to.

If you know a developer, talk to them about it. Tell them that other developers are going portable, and why. Even if they don’t jump on the idea right away, a seed might be planted.


Alpha said...

As I understand your point Open Office is a dead product by the same means. It has a huge number of years with little increments of code done by various people. The best thing to move it forward is to start from scratch. This isn't just a Microsoft problem but typically how developers work, just keep adding "stuff" without looking at the bigger picture

Leon Brooks said...

True, alpha, true. And I look forward to OpenOffice’s coming revolution.

Quite a few projects have bitten the bullet and done an extensive rewrite (PostgreSQL’s been through a few, so has KDE in a piecemeal fashion), usually with excellent results.

However, even after David Cutler revitalised MS SQL Server, I never thought I’d see the day that MS’d do the same with MS Windows.

Alpha said...

I think one of the things that Microsoft has done which I always found strange (but maybe not so strange now after what you wrote) is they have parrallel development teams i.e. one team writing office 12 and there will be another team commencing work on Office 13. They may not necessarily share code. But then again Office standard and professional are different code bases which makes no sense to me