“It’s better to have known bugs rather than unknown fixes”. It’s a motto that’s served me well over the years, and it applies particularly to software ‘fix packs’ or ‘service packs’. Well, I broke the rule yesterday and installed Visual Studio SP1. And I’m now re-installing Visual Studio from scratch as I write this. It’s nobody’s fault but mine, and, yes, Microsoft’s.
The problem I’ve got is that the debugger no longer functions as it once did. I used to be able to hover over a variable and ‘drill down’ into it. Now I get the message “Function evaluation disabled because a previous function evaluation timed out” all over the place and once I step with F10, Visual Studio disappears into a black hole, from which I can’t recover. Whatever the cause (these are pretty complicated variables: generic lists of dictionaries of sorted lists – that sort of thing), this did NOT happen with the original Visual Studio installation. Unfortunately, this is vital for my debugging and I can’t really live without it. So bye-bye SP1.
That’s not the only problem with SP1. I started installing it at lunchtime yesterday. I was still at it in the evening. Not only is SP1 vast – over 440MB – its installation is primitive. I was asked three times if I wanted to install a particular product at different stages in the installation. Of course, I’d gone out for a walk, painted the house, watched the paint dry in the meantime and not realised that SP1 was waiting for an answer. I’d have thought that it might have been an idea to present a summary screen at the start of the process and go from there. Apparently not. Even so, each stage seems to count the bits on your hard disk and then cross-checks the result. What on earth was it doing? Beats me.
Further, the SP1 installation process lies. It has a cheery little progress bar giving the expected time to complete the installation. I happily sat and watched it report zero minutes to completion. For over half-an-hour. More than once, more fool me.
I’m reluctant to throw rocks at Microsoft’s Visual Studio developers. I’ll be in a similar situation shortly – we’re releasing a Ruby IDE Ruby In Steel soon and I’m pretty sure I’ll have let some bloopers out of the door in the process. It’s just the nature of software.
Still, it doesn’t stop me feeling annoyed with Microsoft. At the end of this little saga, I’ll have wasted the best part of a day from my precious release schedule with nothing to show for it.
But the person I’m most annoyed with is myself. For breaking the golden rule: “if it ain’t broke – don’t fix it”.
Bah. Humbug. Merry Christmas to one and all.
There’s an interesting take on Google from long time Microsoft watcher Mary Jo Foley. Google seems to be in the process of heading from being everyone’s favourite software company to a basket case.
Google has 45-46 separate products at the last count - but only one of them makes any money. The rest of them are way under water - fairly characteristic of a company with too much money to spend. Google Earth might be a fine and wonderful thing. But does it add a cent to the bottom line? I think not.
I’m not in favour of large hierarchical corporations - I worked in a couple and I don’t want to do it again, thanks. But beyond a certain size, you just have to have management. Sooner or later, Google is going to understand that. The only variable is how much shareholders’ cash they will blow before realising it.
Smarter cats are not the answer.
Well, the pigs have started to fly. Microsoft has introduced a tool that makes it easier for the poor, ignorant, un-enlightened VB 6 user to use .NET forms – in a VB6 application. Woo-hoo!!
Let’s see now: VB6 was released about eight years ago, and .NET about 5 years ago. And it’s taken this long for Microsoft to twig that there is a whole raft of VB 6 users out there who are perfectly content to sit on their wallets and not fork out good cash for VB .Net.
The tool in question is the Interop Forms Toolkit 1.0 and it looks to be part of what the doctor ordered for VB6 users beached by Microsoft’s insane decision to dump VB6 in favour of VB .NET. Not to put too fine a point on it, the market has rejected VB.NET in its current form. I’m not going to go over the arguments as to why the last language you should chose to upgrade to from VB6 is VB .NET: to my mind it’s a no-brainer choice to go with C#. If you’re going to have to re-write your application, you might as well write it in something that’s certainly going to stay around.
I’ve some experience here having previously written a reasonably sized application in VB .NET and one I’m now working on in C#. You can write perfectly good applications in both, but I have absolutely no regrets whatsoever in switching to C#. It’s better supported, with far more examples of how to do things out there on the web and its obviously Microsoft’s favoured language child. Put it another way, where do you think Microsoft’s language A Team (headed up by Anders Hejlsberg) work? It’s not VB .NET, I can tell you that.
There’s a saying in the music industry: “where there’s a hit there’s a writ”. Meaning, if you have a nice tune and make some nice money from it, someone, somewhere will try to get a slice. The usual claim in the music industry is that the whole or part of the tune was ‘borrowed’ from an existing piece of music, which, naturally, the party to the writ claims to have written, so to speak.
Normally, if you have a great idea, you can try to prevent others from cashing in on your invention by patenting it. The pharmaceuticals industry is the major one these days. Drugs take such a long time to get to market and have to go through so many tests and regulatory hurdles that the standard 20 or 25 year patent really doesn’t seem to give the pharma companies long enough time, even with a patent monopoly, to get their money back. Still, they don’t seem to be going bust.
But what about software? Can you patent a software program? Should you be able to? Now this is a legal minefield, and I have to say I’m not a lawyer (if I was, I’d be a good deal richer than I am now). But it seems to me that, in most cases, software copyright should be sufficient to protect the author of a program: you don’t need to go to further. There are some cases where an algorithm is sufficiently original to be patentable – the RSA one that encrypts transactions over the internet for example, or the Unisys LZW patent covering the GIF format (both expired now, incidentally). That seems ok to me, but the Amazon ‘One Click Shopping’ patent is just ludicrous.
The outcome of companies like Amazon and the like patenting everything under the sun is the emergence of ‘patent trolls’ – companies and individuals who exist solely to patent software (or purchase existing patents) and then attempt to extract money from users of the patents. If you don’t patent your ‘Little Pinkie Typing’ technique, then someone else will – and then proceed to charge you for the privilege. It’s sort of like an escalating patent ‘pre-emption’ war, with everyone patenting even the most obvious ideas before a rival gets there and does the same.
On the other hand, software patents do serve to put the brakes on the more outlandish activities of companies like Microsoft, who seem to think that if they haven’t invented it, it’s theirs anyway. Microsoft has settled a $60m suit with Burst over some media player software and is currently appealing a $525m suit with the University of California.
But the most famous recent case is the one with the mighty eBay pitted against the tiny MercExchange over the patents that MercExchange holds over internet trading. This one went all the way to the Supreme Court, with the final decision being that MercExchange could not shut down eBay even though it did hold a valid patent. I don’t know the merits or otherwise of MercExchange’s patent claims, but I do know that MercExchange didn’t build an eBay out of them. Why then should MercExchange be entitled to shut down eBay – effectively holding it to an unlimited ransom – over a fairly trivial (to my mind at any rate) ‘invention’?
This is getting crazy. If everything is patented then it really will put a brake on innovation. Why build an IDE for Ruby - to take an example close at hand - if some parasite who hasn’t done any of the work comes along after the event and demands a slice of the action (can someone really patent the very idea of doing a Ruby IDE? - stranger things have happened)? Personally, I take a robust capitalist viewpoint over this: if you want some of the Ruby IDE market, do the hard (very hard, btw – it really is not easy) work and build a better one.
And may the best IDE, not the best lawyers, win.
So Bill is going. Well, not until 2008. OK, he’ll still be chairman. For life, of course. It reminds me of the Cheshire Cat, except that Bill doesn’t smile, he has a Vision. I suppose this ‘retirement’ is as good a point as any to look at Bill’s ‘vision’ and see where it’s got us. Before Bill and his Vision, the only people that had visions were old testament prophets and those wired to the moon. Unfortunately for Microsoft’s competitors, Bill was (and is) neither.
Bill’s Vision can be roughly translated as cheap processing power everywhere (running Windows, naturally). The Vision has changed a little over time as technology has moved forward; I wouldn’t have thought that the original Vision included the XBox, but still, Bill has kept Microsoft moving forward, brushing aside every competitor from Netscape to the mighty US Department of Justice itself. Where are Marc Andersson and Judge Thomas Penfield Jackson now? Who cares and judging parking offences, respectively. But Bill? Bill is moving towards replacing Mother Teresa. Amazing.
For better or worse, Microsoft has transformed the way we live and work. There have been a few assistants, of course. Moore’s Law doubling the power of a chip every 18 months was essential. The incompetence of IBM was pretty important too. As was Apple. While Steve Jobs didn’t invent the graphical user interface (he stole it from Xerox), Apple popularised the idea but then failed to follow through. I still don’t really understand how Apple managed to screw up. I do remember in 1986 designing software on a tiny (a 9-inch screen – I had better eyesight then!) Mac while typing the design documents on Windows 2. I can tell you which was the better experience, and it wasn’t Bill’s Vision.
The Great Extinction
Microsoft really took off in 1990 with Windows 3. I still remember the ‘wow!’ feeling when I first saw it. But the practical effect was more interesting. For example, before Windows 3, there were little things called ‘printer drivers’. A word processing program had to interface to a printer using one of these. WordPerfect had a collection, as did WordStar. They were all different and all had different bugs. But after Windows 3.0, they were as dead as the dodo. As WordPerfect and WordStar were soon to become.
The point is that Windows 3 standardised the PC world. It defined the size of the rail tracks that the software rolling stock moved on. Even IBM with all its money and resources couldn’t stand against that and after a few years of pouring money down a bottomless pit of OS/2, it gave up.
But Bill’s Vision kept moving forward. Bill not only had the Vision, he had the smarts to hire really good people to implement it. One of the best of these was Dave Cutler, architect of DEC’s RSX11 and VMS operating systems. Cutler designed Windows NT, the basis of Microsoft’s ‘industrial strength’ current systems. Whatever Windows 3 and its 9x successors were, ‘industrial strength’ they were not. The successor to NT, Windows XP and friends are all pretty reliable, irrespective of the juvenile rantings of the SlashDot bunch. Interestingly, another of Bill’s better hires is Anders Hejlsberg. More on him and LINQ in a future column.
But there’s a downside to both Bill and his Vision. Microsoft is, in some ways, a seriously dysfunctional company. You just have to look at the Mini-Microsoft blog to see what’s wrong. I’ve been through review processes like that (at both ends, by the way) and I suspect that most people subject to review processes in a large company will see more than superficial resemblances. How on earth anyone can produce anything that’s good when you have to go through that junk beats me. It’s one of the reasons that I left working in large companies – they are all like that to a lesser or greater extent.
But where Bill’s Vision seems to have misfired is the Internet. Microsoft has simply had very little impact. Yes, 80 percent of us use Microsoft Explorer to surf (I use Opera myself, far better than FireFox), but the Internet is dominated by Linux, Apache, MySQL and PHP (LAMP). Microsoft’s Internet Information Server? Never heard of it. The interesting thing here is that while Microsoft may not have had much impact, neither has any other single company. Take Sun “the network is the computer ™”. Ha! Java was supposed to nix Microsoft and dominate the Net. It’s done neither: Java is firmly and irreversibly stuck between databases of various types (Oracle 48%, DB2 22%, SQL Server 16%). And Sun is irreversibly heading towards extinction.
I Want To Break Free
The point is though, that none of this has been directed by a Vision: it’s happened naturally. Or not so naturally, really. The LAMP stuff is used because its free. Incidentally, I don’t buy this guff about open source: if I have a choice between something that’s going to cost me a $1000 and something that’s free (and they do the same thing), I don’t give a toss which is ‘open source’: I’ll take the free one. It’s called economics, stupid.
And it’s the economics of the Net that is far more powerful than any Vision. Adam Smith’s ‘invisible hand’ is vastly mightier than Microsoft, IBM and Oracle put together. What the Net provides is an essentially zero-cost distribution system for software. It’s global too. People do make money from free software: not from the software itself, but from supporting it. If you have a global market, with zero distribution cost, then you have a very wide and deep ocean of potential customers. All you need is a few of those to convert to a commercial license. MySQL is a good example – about 1 in 1000 downloads convert. True, MySQL is ‘open source’ – but as I’ve said, this is irrelevant. Don’t think that MySQL software is intrinsically good due to the myriads of dedicated ‘hackers’ beavering away for the benefit of mankind. It’s good because there is a small team of dedicated experts (who are paid, by the way, from the company profits) working on it. MySQL makes its money on supporting commercial users.
But just because something is free doesn’t mean it’s the best for a specific job. Microsoft has built a 10 billion dollar server business on Windows. That’s a lot of cash and generally people (governments are different) don’t throw that amount of cash at something unless there’s a good reason. Equally, take IBM. IBM’s ‘big iron’ still runs the vast majority of the world’s banking and airline reservation systems. I might be slightly annoyed if I can’t connect to my ISP running free Linux on some cheap hardware. I would be more than annoyed if my bank couldn’t transact my business.
It seems to me that Bill’s Vision has run it’s course. There are cheap microprocessors everywhere. Some will run Windows, most won’t. But the economic forces that are now arising (why employ an expensive European graduate when you can use a cheap one in India?) will make any single Vision redundant.
It’s a good time to move on, Bill.