30 June, 2005

Anonymous Posting

Various commenters have asked, some more politely than others, why I post anonymously.

There are 6 billion people in the world, all of them infuriated by something different, all of whom are potential employers/clients. It is not within my numerical abilities to enumerate the number of possible post subjects, but I will take it as given that it is extremely easy to inadvertently infuriate the future source of my livelihood.

29 June, 2005

Visual Basic 6

I have been forced to work on a VB6 project. I want to die.

(Before anyone asks, it crashed the VB.NET upgrade wizard. The original author, who happens to be my head of IT, reckons it isn't worth manually porting to .NET. He's probably right. The entire project would feel very comfortable on WTF.)

08 June, 2005

Borland: Stupidity Endures

Microsoft have got where they are by, amongst other things, perfecting the art of software development. Their secret is (I hope that they don't sue me for revealing this):

1) Determine what the market wants.
2) Develop it.
3) Market it.
4) GOTO 1.

All companies claim to follow this formula, but they rarely do. Corporate arrogance, PHBs, and aloofness from the customer base often derail a product at stage 1. If you have a lot of time to kill, browse borland.public.delphi.non-technical. You'll find numerous instances of Borlanders responding to legitimate and often constructive criticism with the aloof and arrogant attitude of we know our business best. The history of Borland's stock price amply demonstrates how well they know their business. Customers, of course, have nothing useful to contribute. Borland is infamously inept at 3.

Where other companies really go wrong, though, is 4. Microsoft almost never gives up. A couple of illustrative examples:
  • Windows 1 was pathetic. Microsoft took customers' feedback, continued to plough money into Windows development, and produced version 2. This too was pathetic. GOTO 1 again. Version 3 struck gold.
  • Their first attempt at entering the mobile devices market was the infamous WinCE. GOTO 1. GOTO 1. GOTO 1. Now it's PalmSource's turn to wince.

Granted, Microsoft can outspend the rest of the industry, but money isn't the real issue here. Open source projects and small start-ups have shown themselves more than competent at doing what Borland cannot.

Delphi 6 was released along with Kylix, an Object Pascal IDE for Linux. If you used the cross-platform libraries (CLX), the same code would compile for both Linux and Windows. This is native code we're talking about, no virtual machines, interpreters or intermediate language. Kylix had the same pricing structure as Delphi. Naturally, Linux hackers flocked to pay $1000 for Kylix pro. Unfortunately, so many were killed in the stampede that very few actually made it to the checkout. Those that did soon discovered that the product was so buggy that it was effectively unusable. Kylix is now abandonware. Lazarus, an open source Object Pascal RAD environment, is in an advanced stage of development and runs on multiple platforms.

RemObjects, a small start-up, have developed Chrome; an Object Pascal plug-in for Visual Studio and Mono. This is more than just a Kylix which works and at a sensible price; not being withstrained by backwards compatibility and Pascal purism, they've thrown in all the features which a .NET language needs to make contemporary programming a pleasant experience.

Another Borland misinvestment was WebSnap, a clunky and awkward web application framework available only in the sky-highly priced editions. Recognising quality when they see it, users paid for Developer Express's EWF or Atozed's intraweb instead. Out of the box Delphi web programming is now done with ASP.NET.

While Borland was investing its R&D resources in researching and developing that which customers didn't want or couldn't use, Microsoft was hatching a new plan to fortify its lucrative proprietary platform business against the open source hordes of Linux and MySql (amongst others). The plan was called .NET. Hopefully the head of whichever marketing whiz thought that one up is now on a pike outside the department's offices, but I fear that he yet lives. The technical aspect of the plan was simple; create an API to unify all Microsoft platforms (e.g. Windows and SQL Server). Make that API so fully featured and easy to use that the cost of developing against an all-Microsoft stack will be drastically lower than on any other platform. The realisation of this plan was three-pronged; lots of daft marketing, the .NET platform (libraries and CLR), and Visual Studio. The sole purpose of Visual Studio is to attract developers to the .NET platform and keep them there. Not a company to do things by halves, Microsoft ploughed unprecedented resources into two iterations of their winning formula (with a third iteration, Longhorn, well under way and well delayed). Borland suddenly found themselves barking up a dead tree as Microsoft harvested the orchard. Borland responded with C# Builder, an IDE for C#. The IDE had little to offer above VS, missed a lot of VS's features, and was unsusably buggy. The next Borland .NET product was Delphi 8 for .NET. Ditto. Now we have Delphi 2005, which after 3 service packs has nearly caught up with Visual Studio 2003 (it does C# as well), although still significantly less stable and of atrocious quality. Unfortunately, nearly caught up is not a winning strategy.

Borland clearly cannot keep up with Visual Studio as far as the IDE, language and framework are concerned. They have other plans, though. The "enterprise". As we all know from Star Trek, the enterprise is prepared to spend hideous amounts of money ($3000) for top-of-the range technology. So they abandon the IDE to code monkeys (i.e. it has to be just good enough to stop them revolting against their managers and demanding VS). The focus will now be on software engineering and project management features. The more expensive editions of Delphi 2005 support refactoring, round-trip modelling and unit-testing, and come with a StarTeam (Borland's source control and auditing software) license. This is marketed as "Application Lifecycle Management". They also announced "Core SDP", integrated project management tools under development. Unfortunately for Borland, Microsoft also know that customers want tools which support good engineering practices and project management. Visual Studio 2005 supports refactoring, round-trip modelling and unit-testing, and the Team Suite integrates project management. Not only that, but unlike Borland's Together, the modelling and refactoring are fast enough to actually be useful. Borland still have one up on Microsoft though. The $3000 Enterprise Architect edition of Delphi comes with Enterprise Core Objects, an object persistence framework. Guess what? .NET 3, when it arrives, should finally include Microsoft ObjectSpaces, an object persistence framework.

Borland should have stuck to what they do best, and continued the tradition of producing brilliant development tools for native windows development. But they have chronic ADD; Linux, .NET, anything but what they should be doing. So what does the future hold? Unless Borland change their direction (or rather stick to their direction), Visual Studio will pull far ahead of Delphi for the basic IDE/libraries/language/editor/compiler/debugger, while Borland will keep on finding shiny new enterprise features, which Microsoft will do a better implementation of in the next version. Students, hobbyists and small shops which cannot afford "enterprise" will have every reason to buy VS professional (or express) instead of Delphi professional. The Object Pascal language will become ever more obscure, and without any grassroots support the whole enterprise pyramid will collapse.

Alas, poor Borland, I knew thee well.