The beginningWhen I was young my dad taught programming (in Pascal) to mathematicians and physicians on our local university. I always want to learn programming too, but my dad told me that he wouldn't teach me until I was 10. Anyway, it was probably 1993, I was 9 and my dad said "ok right, you want to learn to program so bad? Ok, let's do it". Yay! Remember that I'm Dutch and hardly knew any English at that age. My dad tought me some Pascal (which is an English programming language, obviously) and it was easier than I expected at that time. I had expected that you had to put each individual pixel on the screen manually. But you could easily put some text on the screen by just using WriteLn('Your text here'). Phew, I was relieved.
I programmed and programmed, at that time it was still quite hard, my knowledge of English was still very minimal so the documentation (which was all in English) didn't help much. I also had a lot of algorithmic problems, only I didn't realise they were just algorithmic. My dad always helped me in the lines of "First you do this, then you continue doing that until this and that", i.e. plain language. But how the hell would I write that down in code? At that time, this was really a problem for me. Today it's always fun to see starters struggle with the same kind of problems.
My first "big" application was called GEF. Why GEF? I wanted to call it ZEF but I accidentely pressed the G instead of the Z. GEF was a very simple address storage application. It was text based of course (all MS-DOS in those days) but it did have menus (all programmed by myself, no code reuse). It allowed you to add persons to your address list, modify them, remove them and look them up. I continued this with a friend, Sander de Jong we stopped after GEF version 8. When we arrived there we found out about graphical programming. We created a VGA library (even with some assembly code in some places to speed things up) and using that we created a quite nice graphic drawing program called Power Paint (All DOS, might not run on today's hardware). And some games (on those page we created Adlez and Megaguy).
And then the Windows era started... Then Windows 3.1 was released and Delphi 1 came. Delphi was (and still is) a pascal-like syntaxed language (object pascal). It allowed to just drag and drop controls into your window and it worked. I managed to apply my Pascal knowledge and it all worked quite well. I didn't really understand much of objects, but just enough to work with them. Then later when we used Windows 95 and Delphi 2 (or maybe even 3?) came out I coded my next major application: GOWE (Good Old Web Editor). GOWE was a HTML editor just like Homesite (version 1, at that time still free). I add colour highlighting, code assist (showed the attributes the tag you were in had) and some nice intelligent features such as automatically adding a new <li> tag after ended your previous one (and pressed return). GOWE worked great and my dad even started using it at work. Sadly I was using Norton Commander 2.0 for Windows at that time. I deleted a subdirectory of my GOWE directory and for some reason it destroyed the whole GOWE directory, unrestorably. And I didn't have any backups. Damn! That was the end of GOWE, I didn't feel like rebuilding it.
The internet era At that time I had had my own website for a while. Very simple, just images and HTML (and a very crappy design). However I obtained an account at Hypermart a, then still free, webhosting provider that offered the opportunity to run perl scripts. Perl? I had never seen that before. So I started to install some simple scripts, edit them a bit and start writing my own scripts. This was quite different, but I liked it. I was kind of obsessed with redirection services (you know, cjb.net and stuff). So I started RedirectionGuide.Net. A guide to redirection services, it offered a database full of them that you could search. Later I wrote a free script that allowed everyone to start their own redirection service (with subdomains), it was called Lightning Redirector. A couple of people used it, it worked quite great. It was even rumoured that CJB stole a couple of the features I offered with LR (wow!). ;) I wanted to add a bulletin board to my site and tried a couple (there weren't many). First I used UltraBoard 1.6something which was the only somewhat decent free bulletin board written in Perl. phpBB existed I believe but it was still very crappy and I didn't have PHP access, let alone that I knew what MySQL was.
The YaBB era Anyway I didn't like UltraBoard much. And here comes a problem that many programmers have: They're never happy with software that doesn't exactly fit their needs. So... I wrote my own. This was the project that had a bit more success, you might have heard of it, I called it YaBB (Yet another Bulletin Board, which wasn't quite the case in that day by the way). The inspiration for the name came from a tool that came with SuSE Linux 6.2 that I got for my birthday, the tool was called YaST (Yet another Setup Tool). Well, the rest of that story is well known, I'm not going to repeat it. I left the YaBB team a little more than a year later (2002).
The KeyBulletin and KeyTopic era I worked on a new PHP and MySQL board which I called KeyBulletin, it was supposed to be a commercial board. I never released it, I got fed up with PHP and started from scratch in Java (which I had then picked up). I got a Java book a couple of years earlier (1996) but I didn't get much of the OO concepts and found the language too hard and slow (Java 1.0 was still interpreted). Much later I finally got Java (about the year that I went to university: 2001) and loved it. Anyway as many of you know I have worked on KeyTopic (what the Java board is called) for the past 1.5 years. I and two studymates even started our own company to sell it to companies.
The present Ok, now we're getting close to where we are now. It has been about 5-6 months since I actively worked on KeyTopic (apart from some minor changes). I started a weblog little over a year ago. I've spent the last months mostly keeping up with the industry, helping others with programming problems, trying out different platforms and languages, Java, .NET, Python etc. I have done some programming jobs aswell, paid ones. Recently I noticed I don't like doing those anymore, I don't like programming a Workflow Management System (which I wrote a while ago), I don't like working on KeyTopic anymore. Why? Mostly because it's all the same. There's no challenge. It's all much of the same. For some it's quite obvious: I've been doing this stuff for the past, what, eleven years? It's not so strange that I don't enjoy it much anymore.
Currently we're doing a software project at our university. So far I haven't coded a single line for it (thankfully) but I did work on the architecture a lot. I like that actually, but I felt in no way the urge to actually implement it.
The future This change has two obvious effects:
- What shall we do with KeyTopic? I don't want to work on it anymore, my two partners don't want to either. They hardly did any coding on it and because they want to keep up with their studies, they chose not to continue either. So we have to sell it to some organisation that can continue it, or just put it in a drawer, which would be a pity. So far we haven't found a solution for this. So, if you're interested, drop me a line. ;)
- How will I continue my computer science studies? Luckily CS isn't all about programming (at all). I think I'll choose the education and communication master, I nearly finished my bachelor. I really like explaining people things, making a tough subject digestable for novices. I've developed my own vision on the different parts of software development over the years that I like telling people about.
To be continued...