Wednesday, September 14, 2005

Divergence

Okay, so by now you know I chose Windows and have stuck with it. Have pity on me, though, because now I have a difficult situation.

It's really nice to read about the "new" .NET stuff. I played with C# quite extensively with VS.NET, and I think it's great - the good bits of Java with real platform capabilities. When it comes to developer environments, Microsoft still haven't lost it, and VS.NET is a great C# IDE. Everything is peachy, particularly the new 2005 stuff, which is really nice.

However, I have a problem, and it's at the root of why I haven't played much with the 2005 beta.

My problem is that, like many people, I work in a vertical market - at the moment, motion capture. A couple of months ago, it was medical review workstations. Both of these domains would really benefit from .NET technologies.

One of these companies is a Java shop, with some C++ for algorithms. We ran up against every Java disadvantage. Number 14 on Sun's Top 25 bug list, which celebrates its 2nd birthday on Saturday, is a real killer (read it all, even if you don't believe it). JNI is just painful. JARs are the wrong solution to the deployment problem for end-user apps. Performance of standard Swing components is questionable, and Swing is just too complicated anyway. We weren't buying in 3rd party components, we bought libraries, and the quality was generally low. And Java 5 is stuffed with bugs.

Yes, we conquered those issues (well, except for the font rendering), and I'm proud of having done so. I can't help feeling that it would have been better not to have had them, though.

Company B uses C++/Qt. Now, Qt is better quality than Swing, but it's still buggy, and having the source code helps us tell that the bugs are in Qt but nothing else.

The upshot is that, while I really like C#, I can't afford to be religious. I need to eat, and so does my wife, and so will my children. For better or worse, Company A has a lot of Java developers and a lot of Java code, and won't move any time soon. Company B has a division that needs to be portable. The decisions made seem to be sound, except for one thing.

The changes in the .NET space are not happening elsewhere. I like the C# stuff, and I like the new libraries, and I like Avalon and WinFX. I can't use them, though. This is not the financial industry, which appears to have embraced .NET, nor is it the US, nor am I self-employed. Eventually the Windows app market will be divided into two camps: a large one of .NET developers who write exclusively for Windows, and a small one of C++ and Java developers who think they are writing portable code, and sell exclusively on Windows.

I fear I will be in the latter camp, and I will miss out on the fun stuff.

What can I do? I don't want to work in London with the associated commute. I don't want the late-nights, heart-attack stress of the banking industry. I don't want to move from the UK. So I will work in the forgotten minority, those who sit five to ten years behind the "cutting edge", and I will pray that my competence will be enough.

0 Comments:

Post a Comment

<< Home