Friday, June 18, 2004

Trivial Applications

I've been re-reading through some of Rory Blythe's old posts, and one of them got me thinking about 'Trivial Applications'.

What makes an application trivial?

Is it the number of features or practical use?
One of the littl widgets I wrote was a batch importer for adding untagged MP3 files to Media Player's Media Library (OK, I know there are a million and one tools I could have downloaded for free, but that's a different story!). Okay, it's not overly complex. Just a form, some interop working with WMP's SDK and a bit of File.IO to name the tracks right. OK, as far as one-trick ponies go, it doesn't get much one-trickier than this. It does one thing and one thing alone. BUT I do use it all the time. I actually find it really useful (and I know it's quite sad, but I show all my friends when they come over to my house too). Would I consider this a trivial application? Not really. It's a simple tool, but it does the job and I like using it.

Is it the scalability?
As an exercise, I built a COM+ app that retreives and updates data from a database. It uses COM+, WinForms, COM+ Transactions, SQLConnection transactions, parameterized stored procedures, all the things that large scale developers talk about. It's got full error trapping and reporting, it has all sorts. In theory the only thing limiting the scalability is my network size (2 machines) and the database engine (MSDE - yes, I'm a cheapskate). Would I consider this trivial? Hell yes! I only did it to explore the tools and technologies a bit more. It has no practical use, and only does (at the end of the day) a really simple thing. It's quite complex, but still trivial.

Is it a question of whether it's been done before?
Everything's been done before. Don't pretend it hasn't.

Is it non-trivial if it uses real cutting edge technologies?
I also wrote an app (with Media Player again) that allows me to run WMP and control the music playing on my computer from a little desktop APP, and through a mobile web interface. It uses .NET Remoting, it uses mobile web forms, it uses some of the pretty new components and things that .NET has for controllings services and stuff. It's quite swanky. I really like it, and use it a lot. Does that make it a non-trivial application? I dunno. It certainly has absolutely no business use. There's no way anybody could make money off it. It's just a bit of frivolity. However, it's (again) something I use every day. (In some ways I prefer it to using WMP from the desktop, but I'll not go into that now. So is it a trivial app or not? I still can't decide.

So what does make an application 'Trivial'? I still don't really know. And to be honest, I don't really care. As a Hobbyist programmer (something I'll probably write about one day) I've really enjoyed writing all of them, so they're quite important to me, so that's alright.

No comments: