Thursday, January 24, 2008

Why dot Net?

Someone asked me a while ago "what is dot net"? Typically I would just say "dot net is Microsoft's answer to Java", so I did. But it really got me thinking. Why did Microsoft go through all the time and effort to create this entirely new development framework? Well it probably got started with their custom Java JVM stuff back in the nineties. Sun said "you can't call that Java", so they called it c#. But why continue to pursue it? Sure, the MFC was old and ugly. But why not create a new native API? The big advantage of Java is its portability. It takes a performance hit to achieve that portability. So why would Microsoft opt for an interpretive environment but leave out the portability part? Maybe they didn't. There are a couple of possibilities here.

1) Microsoft intends to make an entirely new OS, like Apple did with OS X. And dot net is their compatability layer. When they deploy their new OS it will come with a dot net framework (as most OSes have Java frameworks now). This will ensure a large base of existing apps at launch time.

2) Microsoft intends to support other OSes. They could release dot net frameworks for Mac and Linux and add a whole new customer base.

Option 2 seems a lot less likely, since Microsoft has never liked playing nice with others. But I think option 1 has merit. I think Microsoft has found themselves in an unfamiliar position .. They are starting to see real competition. Apple is providing competition from a traditional business model and Linux is providing a very different kind of competition. I think it's Linux that Microsoft is scared of. Their typical model of sue-first doesn't work as well with open source software. Either way, I think Microsoft will actually have to innovate to maintain their dominant status. The Windows platform is hopelessly broken. And Microsoft's insistance on maintaining legacy compatibility has played a large part in that. I am anxious to see what someone with that much money and smarts can do when they turn their attention towards coding instead of litigation.

Database in a File

For the past few years I have been using the SQLite database on a variety of software projects. The more I use it the more uses I find for it. Perhaps the best use I have found is in creating binary file formats with my applications. SQLite gives me the benefits of using a binary file format (speed, size, a bit of opaqueness) without the fuss of creating and (more importantly) maintaining custom code. And since SQLite works as an embedded database there is nothing to setup in advance. This is a huge benefit! Recently I have started using the Java connector for SQLite. I write a lot of code in Java, so I was happy to see SQLite get a first class connector. They even include a pure Java version, so you can take advantage of SQLite files without having to deal with platform specific issues. For improved speed you can opt for the native version. It uses the JNI interface to perform all the file IO in C. The trade-off is you have to build and install the native C library for your target system.

Tuesday, January 22, 2008

Ubuntu for All

I am a long-time Linux user. Started back in the 0.99 days. That means I've used a lot of distros .. From slackware to fedora core and most things in between. In my nerdier days my favorite pick was gentoo. Now I am more interested in being productive. I have found ubuntu to be a great distro for getting work done. The ubuntu folks have paid great attention to detail. I love debian style package management. Apt-get is my friend. Ubuntu installs a good base system and most everything else I need is easily installed through the core repositories. I do have to add a source for grabbing the wine binary, but they provide good directions on their web site. And I usually install eclipse using the latest from their site, since the version in the ubuntu repository is typically stale. I like ubuntu so much I even run it on my servers. From firewalls to file servers .. It just works. They have the easiest LAMP setup I have seen. So hats off to the folks at ubuntu on a job well done.

Monday, January 21, 2008

Pearl of Wisdom

I bought a BlackBerry Pearl last month. Despite a few shortcomings I really like the phone. The keyboard works reasonably well, the screen is bright and pretty, it makes a decent music player, and it's a fine phone. Unfortunately it's useless as a modem for my Mac. RIM has some bug in the bluetooth stack that leaves it in a bad way after one connection. I would gladly use it via USB, but sadly that's not supported. My wife's Dash works great as a modem, so that's my crutch for now.

Making the Switch

Apple makes some great products. But there's a down side to all that ease-of-use; it makes you dumb. At least that's the effect it had on me. I remember spending hours (days even) tweaking all the details in Linux. After I bought my first Mac in 2003 all that slowed and eventually stopped. I never thought of myself as a conformist .. Quite the opposite. But I have conformed to Mac OS with little fuss. Of course having access to a UNIX prompt helps.

Is this thing on?

I've created this blog site using my blackberry, so watch out! I haven't hit any big snags yet but your mileage may vary.