I'm learning all about financial stuff right now. I read a bit about stock and think 'Hm, I'd like a little program to hook up and keep track of stock I like'. I look around the web for programs or websites that will do this for me, but I don't like any of them, none of them are what I want. So I think "I'm a programmer, I'll write it myself".
But writing something even remotely complex makes me feel guilty. See, I want to start my own company, so any software I write I would like to be able to sell (or at least give away free for others to use). So I try and think of a way to make it more generic, while doing what I want.
Also, what would be more useful I wonder - a website that you register with or a program you run on your desktop? Well I'd prefer the web app because I spend a lot of time at work and at home, so something on the web would save me having to transport the files back and forth. But web sites are slow.
So I decide I'll go with the web site. I'm a C# programmer so I think I'll go with ASP.NET. I launch Visual Studio, but then I realise I'm using Visual Studio 2005 beta, and none of my web hosts support it. So I install Visual Studio 2003, and realise it has terrible CSS support in the designer and its just too much of a pain to use for something thats not really all that complex.
So I decide PHP is the way to go. I used to do a lot of PHP back in the day, and figure it can't have changed much. I was hoping to use an OOP approach, so go to check out PHP's class support. The new stuff in version 5 looks good I think. Oh, but my web host only has 4.3.1.
So, I begin with PHP 4.3.1. I get a tiny bit of the way into it, but then I go to parse the XML feed the stock prices are coming from. Crap - PHP's XML support is nothing compared to C#'s. Yuck. I scrap the idea.
So I go to writing a desktop application. But again I am forced to use Visual Studio 2003 since none of my users will have 2005 anytime soon. I see all the icons I've got don't look good under 2003, my brain is clogged and I can't think of any good designs for the program, and its all a lot of work. Something like this feels like it should only take one day to do properly, but I can tell it will take longer.
Why hasn't someone invented the language to fix all this mess that does everything good and has no faults?