Twenty years of Qt!

I first encountered Qt in Linux Journal in 1996. Back then, I wasn’t much of a programmer: I had written a GPL’ed mail and Usenet client in Visual Basic and was playing around with Linux. I wanted to write a word processor, because that was really missing, back then.

I tried to use xforms, but that didn’t have open source (it was binary only, can you believe it?), and besides, horrible. Since I didn’t particularly care about having a GUI, I tried to use curses, which was worse. I had taken a look at Motif years before, so I didn’t look again. Sun’s OPEN LOOK had a toolkit that looked nice, but wasn’t. For work, I had used Delphi and MFC, and had had to make sense of Oracle 2000. None of those were useful for writing a word processor for Linux.

And then, suddenly, out of the blue (though I remembered some of the names involved with Qt as being involved with my favorite ZX Spectrum emulator), appeared Qt. Qt made sense: the classes were helpfully named, the api’s were clear and sensible, the documentation was good, the look and feel worked fine. It had everything you’d need to write a real application. Awesome!

So I got started and discovered that, in the first place, I didn’t know what makes a word processor tick, and in the second place, I didn’t know C++… So my project foundered, the way projects tend to do, if you’re trying to do stuff all by your lonesome.

Then I changed jobs, stopped working on a broken-by-design Visual Basic + Oracle laboratory automation system for Touw in Deventer, started working with Tryllian, building Java-based virtual agent systems. Fun! I learned a lot at that job, it’s basically where I Was taught programming properly. I discovered Python, too, and loved it! Pity about that weird tkInter toolkit! And I started using KDE as soon as I had a computer with more than 4 megabytes of ram, and KDE used Qt.

Qt still made sense to me, but I still didn’t know C++, though it looked to me that Qt made C++ almost as easy as Java, maybe easier, because there were seriously dumb bits to Java.

Then PyQt arrived. I cannot figure out anymore when that was: Wikipedia doesn’t even tell me when it was first released! But I threw myself into it! Started writing my first tutorials in 1999 and followed up writing a whole book on PyQt. My main project back then was Kura, an alternative to SIL’s Shoebox, a linguistic database application that later got handed over to the Ludwig-Maximilians University in Munich.

I never could make sense out of Java’s GUI toolkit: Swing didn’t swing it for me. But that was work stuff, and from 2003, I worked on Krita. I started doing my own painting application in PyQt, about the time Martin Renold started MyPaint. I quickly decided that I couldn’t do a painting application on my own, just like I couldn’t do a word processor on my own. By that time I had taken a good hard look at GTK as well, and concluded that anyone who’d propose to a customer to base a project on GTK should be sued for malpractice. Qt just made so much more sense to me…

So I found Krita, learned bits of C++, and since then there haven’t been many days that I haven’t written Qt-based code. And without Qt, I probably would have started a second-hand bookshop or something. Qt not just lets me code with pleasure and profit, it is what keeps me sane, coding!