I’ve been meaning to write this post for a long time. I think I got the impulse after reading Alex’s essay last year. I took notes about what was happening since then but always resented from publishing something final, until I had enough data to write something meaningful. I also believe that writing about my choices helps rationalize them and it’s always nice to have a written piece I can point people to, in case they are surprised by my sudden switch in technological habits.
I intend to write dissertations like this every couple of years, around March/April which, coincidentally, corresponds to a new Ubuntu LTS release and renewing almost all of the hardware in my possession. Additionally, it provides enough time for new announcements to be made by all major companies I care about.
And, by the way, this year’s announcements really drove me crazy and had to revisit my position many times in light of news coming from Canonical, Apple, Microsoft, Facebook and others. This taught me to be cautious and to never take a stand and stubbornly stick to it. Things change and ideas should follow suit.
Canonical, Ubuntu and Linux
This section originally started with a critique on Canonical’s refusal to play collaboratively with the rest of the Linux ecosystem but, luckily, I had to do an U-turn as soon as they announced the adoption of systemd after Debian announced their switch away from sysvinit.
Developing and maintaining Upstart made perfect sense at a time where no alternatives existed and Debian was still using ye oldie sysvinit. But now that a technically superior alternative has emerged it would really be suicidal to swim against the current and keep using Upstart. The effort would be better spent on improving Ubuntu on Desktop, Mobile and Cloud. I’m pleased that even even if they missed the technical-side of the equation, they glanced over the bill they would have to pay to stick with Upstart.
I also welcome the new stuff coming to Unity 7 and it looks like Ubuntu Touch is shaping up very well, too (even though I can’t test it on my test phone because it runs awfully on a Galaxy Nexus).
I’m ambivalent about Mir vs. Wayland. There are aspects I like in both of them. Wayland undoubtedly gained a lot of momentum, especially after Mir’s unveiling. Competition is good and I believe the evolutionary model applies well to open source software. Survival of the fittest.
All in all, I think there are exciting times ahead for Ubuntu and Canonical and wish them all the best. I’ve been on Ubuntu for almost three LTS releases now, and I’m glad I made the switch. The upcoming LTS (14.04), which I am using now as my daily driver, is stable and fast. Sure, there are some rough spots here and there but nothing critical yet.
Meanwhile I also tried other Linux distributions but in the end I always come back to Ubuntu, the only one which combines the aspects I’m looking for in a Linux distribution. If Ubuntu disappeared today I would probably switch to Arch Linux. Fedora lost me as a user (and developer) a long time ago, but that would be the subject for another post.
I will keep using and recommending Ubuntu on desktops, workstations and servers for the time being.
Microsoft, Windows 8.1 and beyond
I haven’t been seriously using Windows since the 2000/XP era but, lately, I had the chance to spend some quality time with Windows 8.1. I like the direction Microsoft is headed to, with all the unification work going into various version of Windows (Windows Phone 8, for example, uses the NT kernel, just like regular Windows) and, most of all, their new design language which, I believe, really brings something new to the table.
Execution is lacking, though. I’m baffled with the approach they chose to “migrate” users to Modern UI. On Windows 8 there’s no clear distinction between a touch-first UI and the legacy desktop metaphor. The mere fact that Windows boots into Modern UI by default or just offers the touch-first UI on desktop computer is a big red- flag in my book. Adding back the real start menu and booting on the desktop by default for non- touch-enabled devices would be a good start, Modern UI should be optional there, but other approaches are equally valid.
Additionally, I believe Microsoft should just pay Metro (the grocery store) to have the right to use that word as a distinctive name for its design language. They sorely need one and “Modern UI” isn’t really up to par.
As a developer, I’m impressed by the growing ecosystem of tools available. Chocolatey and Boxstarter are really impressive and something I thought I would never see on Windows. Boxstarter is killer: I can launch the provisioning profile by clicking a link and it lessens the pain of having to manually install Chocolatey (an aspect for which I used to criticize it).
PowerShell is great, even though it has a somewhat confusing syntax and it’s terribly slow to start. I greatly feel the lack of a decent terminal emulator though, both Console2 and ConEmu make very little to ease my pain.
What I still don’t find so the general “hostility” towards tools and programming languages conceived on UNIX-like operating systems. Developing Python, Node or Ruby programs on Windows requires the installation of MingW/Cygwin or a mix both and it feels clunky. Even though Windows is not at fault here, if I have to install half of UNIX to get some work done, I might just use Linux, OS X or FreeBSD directly instead of fighting the OS. All in all, I think Windows is really suitable only for .NET and Java developers. I don’t see anything wrong with that, but since I don’t use those technologies, I don’t see myself using Windows for software development anytime soon.
Another can of worms is NTFS. It’s. Really. Slow. Period. Give it a directory with a bunch of small files and watch it crawl to a halt. I would really like to see Microsoft improve this aspect of Windows.
It is also worrysome that Microsoft is going the “patent troll” route. We are also seeing the beginning of another try at Embrace-Extend- Extinguish with Nokia’s release of their “X” smartphone. I remember where Microsoft hegemony brought us, technologically speaking, and I would not see it happen again. Microsoft is all collaborative and dandy but only because they recognize they are losing ground. The leopard does not change his spots, despite what Scott Hanselman says. Additionally, competition is good.
Apple, OS X, iPhones and iPads
My relationship with Apple has always been a love-hate one. On one side, they basically brought the personal computer and the modern smartphone to the masses. They were the first to introduce Hi-DPI (in an usable form) to laptops and mobile devices. In many ways, they lead the way in the consumer space. They accomplish all of this, however, by the means of proprietary hardware connectors, technologies and software stack, often sacrificing interoperability. Everything is legit as long as you’re locked into into their ecosystem. Going the Apple way is almost an all-or-nothing proposition, with dictatorial authority over what you can and cannot do on a device you thought was yours.
This has always been scary and also the primary reason I’ve always avoided their products, except for a short stint with an Hackintosh during the Snow-Leopard days.
Looking back, I see myself speaking against everything made by Apple without really knowing their stuff, going to great lengths to have something Apple-like without buying their products. How naive.
An informed opinion relies on evidence. Such evidence is obtained only through knowledge, experimentation.
Plus, I’m being lured by the appeal of their hardware, their Retina Hi-DPI screen, the trackpad (especially the Magic Trackpad), multi touch gestures and ridiculously long battery life. As a developer I’m intrigued by Objective-C, IOKit, XCode integration with Clang and its static analyzer, AppNap and many other nice little things I always had the chance to see but not use extensively.
I’m buying a 13-inch Retina MacBook Pro, something my friends will find unusual. I’m also planning to stick with it at least until the end of 2014, resisting the urge to switch back to Linux, so that I will have enough time to adapt and see if it fits me.
While I won’t be switching to an iPad or an iPhone any time soon (due to the draconian policies I would be subjected if I did), this is the year of my switch from Linux to OS X. Whether it will be temporary or permanent, I don’t know. In any case I will regularly report about my findings, concerns and whatever else comes across my mind. Should I come back to Ubuntu after this experience, I’m sure I’ll have acquired new skills and more knowledge to discuss about Apple and their products in the future.
That would be a victory in any case.