-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathMatthias.tex
37 lines (21 loc) · 8.73 KB
/
Matthias.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
\chapterwithauthor{Matthias Ettrich}{Serving the End User – a Brief Reflection on KDE's History}
\authorbio{Matthias Ettrich is a computer scientist living in Berlin and the initiator of KDE. Since then he has been running different software development teams at Trolltech and Nokia. He co-invented Qt Creator and QML, and co-developed several smart phone platforms which were all terminated by either Nokia or Microsoft shortly before or after launch – Nokia X being the latest one. He currently works as distinguished architect at HERE. Matthias is married with children and recently took up playing jazz trumpet again.}
\noindent{}Like any other complex project, KDE was created twice. At first as an idea, and secondly as an implementation of the idea in the real world. Looking back, it was astounding how quickly the idea gained legs – and hands – and started to develop its own life. It obviously showed that the timing was right and that many of us thought alike 20 years ago. My Usenet posting would serve as a catalyst which allowed a growing group of people to connect and get started. Yet, this doesn't explain it all. There is still something magical behind what happened in 1996.
Let me explain what I mean.
First, the concept of a complete and friendly user interface for GNU/Linux, where complete means including almost all relevant applications, was crazily bold. If you had suggested building something like this in a commercial company, you would hardly have made the second preparation gate in the product process. Someone would have given you \textit{the look} and the obvious question: “Are you nuts? Do you have any idea how much effort that is? How many developers you would need, and how much time?”
I wasn't totally naïve back then. Thanks to LyX I knew that my estimation skills for software complexity and required time were overly optimistic. Therefore, I consciously tried to downplay the effort and in hindsight probably the one major thing I got right, provided a thought-out, detailed roadmap proposal leading to a minimum viable product. When eating an elephant, take one bite at a time. My plan looked reasonable enough to make success appear plausible if enough developers joined. And so you did and created KDE.
They say that if you want to make people build ships, don't teach them building ships but teach them longing for the sea. That I didn't have to do. Many of us already had a promotional side and truly wanted to make GNU/Linux accessible to the non-geeky rest. Why? Simply because GNU/Linux was objectively the better system, and there was a strong belief that it should be possible to convert the technical advantages of a UNIX system into real added value for users. “End-users” as we called them back then, to differentiate them from those in the know.
So initially, KDE was about better software for non-technical users, with GNU/Linux at its heart. Therefore, KDE software was not supposed to run on Microsoft Windows, not even as a tactical step. I didn't want any compromises in software quality, but use the alleged power of UNIX to the maximum advantage possible. The idea was not to catch up with Windows, but eventually surpass it.
The plan wasn't crazy, only early. In the end, two commercial companies succeeded with the very same plan in ways which nobody could have imagined 20 years ago: Apple with the Darwin-based Mac OS X, which draws from many open source projects also in higher layers of their software stack. And of course Google, which today dominates the smartphone and tablet space with its Android operating system.
Looking back, KDE has achieved great things also on the technical level. I am sure everyone has their own personal list, but here are my top-three technical achievements: (1) XDND, (2) DCOP/D-Bus, and (3) KHTML/Webkit.
\begin{enumerate}
\item XDND is a drag and drop protocol conceived in 1998 by John Lindal, with help from Trolltech, GTK+, and Red Hat. While it wasn't strictly speaking a technical achievement of KDE, the combined critical mass of KDE and GNOME was instrumental in establishing a de-facto standard on the X Window System. It seems unbelievable today, but before KDE there was not even an agreed way to implement such basic visual operations on GNU/Linux. To be honest, before KDE there was such a lack of visual applications that there hardly was any need to drag and drop documents either.
\item DCOP, which later turned into D-Bus, highlighted the importance of IPC for building a complex modern system. The GNOME project saw the same need, but was initially stuck in following a Microsoft-style COM approach using CORBA techniques. Android later went further by adding IPC to the kernel, called Binder, and using higher level constructs in Java for transparent IPC (the intents and content providers).
\item KHTML, which later became Webkit, is probably the most influential code base that came out of the KDE project. It played an important role in the rise of Mac OS X and the iPhone. Where would Safari have been without a competitive HTML engine? And where would Mac OS X and the iPhone have been without the competitive web browser Safari had become?
\end{enumerate}
The one chapter in KDE’s history which I do not like to remember is the one about the infamous Trolls vs. Gnomes fights. What can we learn from this? First the obvious standard lesson: the more similarities two communities have, the more intense they fight. I do remember discussions with fellow Trolls where we spoke about the odd sequence of events which brought us here, and how we could have easily ended up on the other side, hacking our fingers off in an attempt to make GTK and GNOME more attractive. In hindsight all of that struggle was completely pointless and didn't serve the free software revolution well.
Talking about revolutions, let's quickly remind us how the French revolution killed the king, and after a period of terror it crowned an emperor. Is this a pattern? The free software revolution broke Microsoft's dominant position in operating system software, fought rigorously against each other, and in the end crowned Apple and Google, who both were very smart in using free and open source software to their own advantages. In all fairness, the analogy is flawed like any other analogy: Microsoft certainly wasn't decapitated, but today is no longer seen as potential threat to software freedom, but simply as one highly successful software company among others – one that actively contributes to free software.
Where are we now on the client side? Users have access to an incredible amount of high quality software today, mostly free of charge, and a lot still available in source code. The horror years of DOS and Windows 3.1 or Windows 95/98 are definitely over. Today every kid or grandmother does things with their smartphones which only hackers could do 20 years ago: email, chat, listening to music, browsing the web; and all with multitasking, and without rebooting the machine several times per day. They also participate in virtual communities, something open source projects pioneered due to the technical skills required to do so. In addition, voice over IP, taking and sharing high quality pictures, and detailed searchable maps of the entire globe are standard use cases today. A standard 9 year old today does more geeky things than a hacker when we started – and doesn't even notice. Try to picture in your head what actually happens when you tell your phone that you would want to walk to the next bakery, and the phone guides you there. Such a simple use case will utilize voice recognition, satellite positioning, a massive graph of places trained by zillions of search requests, and a location graph knowing exactly how to get you there, and of course mobile connectivity as most of the interesting computations are not done on the actual device but inside services operated in big data centers. Isn't that mind boggling? Isn't it amazing how much technical complexity can be hidden behind user interfaces every child can operate at ease?
But also the developers are in a very different position today. There is a plethora of great development tools available from compilers to middleware to IDEs and a significant portion of these run cross platform on Windows, Mac OS, and GNU/Linux.
GNU/Linux is an established platform today, not only in data centers, but also on developers’ desktops. And KDE continues to play a big role in enabling this. It plays an even bigger role in demonstrating that the allegedly naïve dream of an entirely free and purely community-driven, open stack is indeed possible. And best of all: No animals were harmed and no investor money was burned in achieving this. That’s no small thing to be proud of.
Congratulations KDE, on your first 20 years. I will still be around and curious to learn about the next 20 years.