Looking back
I was always tinkering with technology. My first hands-on experience with PCs took place back in the late 80s. At that time affordable PCs were still big iron (when comparing to todays standards) featuring a small harddrive, some single digit MB of memory and a very limited graphic adapter, which maxed out at a resolution of 320x200 and 256 colors.
I used to run MSDOS, squeezing out the last bit of enhanced memory available in the machine by tuning the config.sys. I played around with different graphical user interfaces on top of MSDOS (most notably GEOS), and started to learn programming languages (initially QBasic and very soon Turbo Pascal).
Eventually I moved to Windows 3.1 in the early 90s mostly for the productivity tools, but refer back to MSDOS for gaming and hacking the machine (in Turbo Pascal most of the time).
I never got a big fan of Windows 95 and its successors, so I started playing around with different OSses such as OS/2 and SuSE Linux, which was coming in a big box containing a handful of CDROMs and an awesome getting started manual, during the rest of the 90s.
I landed my first professional developer job in late 1999 and was working most of the time with Windows 2000, which in my view was the most stable and polished version of the Windows Operating System ever. I even got to learn some inside-outs when hacking it in Visual C++ 6.0.
During that time (and the following years) I also played around with Linux every now and then. Especially the Linux desktops of the day were something that caught my interest. So I was an early user of the GNOME desktop, which was still in its infancy and have had some serious stability issues (I still remember that the CORBA service, which was used for IPC back then, was crashing all the time).
As Windows XP and its descendants doesn’t reasonate with me, and the Linux desktop was lacking stability and usability, I looked around for an alternative and found a new home in Mac OS X Panther on the newly released Mac Mini G4. So for the next decade I was what you would call an ‘Apple Fanboy’. Soon after the Mac Mini I bought my first Powerbook G4 12“ and started to learn Objective-C and wrote my first tools in Xcode.
In my professional life I was moving on to write software in C# targetting the .net Framework 2.x. I wrote a couple of articles for local developer journals, which ended up in an introduction to MonoTouch and how to develop for the iPhone in C#.
During my part-time study for B.Sc. Information Systems I was looking into the topics of Cloud Computing and NoSQL databases in detail. My final thesis was investigating the different strategies for storing data in a distributed systems, and how to tackle its challenges. As a result of that my hacking activity was moving away from the machine to the Web. So eventually I learned JavaScript and was falling in love with Node.js.
As a side effect the client I used and the operating system on it got less and less important over time. During my M.Sc. Web Science program I was solely using an Acer Chromebook to collect notes and write case studies (mostly in Google Docs). My final thesis was written on an already aged and used ThinkPad x200 running Manjaro i3.
Still I wasn’t satisfied with the state of the desktop. More recently it got quite clear that Microsoft is going to focus on its Azure Cloud moving forward, and Apple seems to put all its bucks into the future of iOS. So both systems - Windows 10 as well as recent macOS versions - are quite boring and left something afresh to be desired. Also moving away from Google devices and services to increase privacy on the Web seems to be more important now than it was at the beginning of the decade.
In addition even though I still like JavaScript and Node.js to rapidly prototype ideas the overhead they imply shouldn’t be taken lightly.
The road ahead
When investigating the options at hand it became clear to me very soon that the most interesting developments are no longer taken place in the Windows and macOS eco systems. Instead many of the improvements in computing are being executed on Linux first due to its ubiquitous nature nowadays.
So after visiting FOSDEM this year I ordered myself a Pinebook Pro and started tinkering with Manjaro Linux on ARM again. The experience so far has been great for such a low-cost device. I went with a custom build based on Wayland and SwayWM as I really like the idea of a tiling window manager.
As this device is powered by a different computer architecture than normal notebooks this also gives me a good reason to learn more about the ARM processor architecture and instruction set. This makes even more sense as the same components are used in modern tablets and smartphones, they are part of most IoT devices and even some Cloud providers are already offering ARM-backed instances. So looks like the future of computing lies in low-powered, multi-core ARM architectures.
To get a little bit more down to the machine I have started learning Rust as a modern alternative to C/C++. With its productivity and safety features Rust will not only be a perfect fit for low-level tools that are close to the metal, but can also be used for higher-level applications such as CLIs, GUIs and Web Servers. With the solid support of WASM as compile target Rust might even be used to write high performance Web frontends.
Taking all of this together seems to be a complete renewal of my existing development experiences. Something that can shed new insights and offer a lot of fun (and also pitfalls) along the way. I’m so excited to get it started…
Stay tuned for further reports from the trenches!