Today Brian emailed me to share his enthusiasm for the Ubuntu Juju project, developed by Canonical, the company that makes Ubuntu.
Brian is a good friend that has been advising us on all matters TurnKey practically since the project began. His advice and feedback is always well informed and insightful so even when I already have my own opinions on the matter, I still take the time to look into his suggestions carefully. Thanks Brian!
This time, Brian wrote in to share that he's been enjoying his (impressive) Juju experience and sent a few links for us to look at. He also asked:
Have you guys ever thought of creating Juju Charm's for all of the TurnKeyLinux apps?
The first thing I looked at was whether I could use Juju without using Ubuntu. Not really, and that's a major dealbreaker because TurnKey is based on Debian. It used to be based on Ubuntu but a few years after we started TurnKey it became increasingly clear that we made the wrong decision. Debian was superior on so many levels: community, security, stability, packaging quality and most importantly - the fundamental driving values. So we bit the bullet and moved over to Debian in 2012.
I figured a somewhat expanded version of my answer to Brian could start an interesting discussion so I'm posting it to the blog. In a nutshell, I'm trying to explain why I think many in the free software community are not terribly enthusiastic about building on top of Canonical's work and why Ubuntu seems to have lost so much ground as the world's favorite Linux distro.
In 2008, when Alon and I started TurnKey, Ubuntu was at its height. Here are the Google Trends for Ubuntu since:
Ouch. What happened? My response to Brian tells a small part of this story.
Brian, thanks for prompting me to take another look at Juju today. We are evaluating several directions for TurnKey 14, which we will be re-engineering to work as a collection of modular services built on top of Core rather than monolithic system images. We're going to try and avoid reinventing the wheel as much as possible by leveraging the best components.
Juju is an option but to be honest it's probably not the leading horse in the race, and sadly that has more to do with the track record of the company backing it then any technical fault. In the context of the free software community, getting the answers right at the technical level is almost never enough. Collaborating successfully with the broader ecosystem and winning over hearts and minds matters. A lot.
At this point, Juju doesn't seem to support Debian at all. Debian have even removed the Juju client from sid for some reason. Not sure what the story behind that is. Given the growing divergence between Ubuntu and Debian, we can't expect to be able to leverage the Juju Ubuntu charms without some serious forking.
More importantly, we don't want to back the wrong horse. Canonical have a bad case of not-invented-here syndrome and a tendency to not really listen to the community. They're like the Apple of the FLOSS world except that Shuttleworth is no Steve Jobs and I mean that both in a good way (not as much of an asshole) and a bad way (not as good a leader/visionary).
Brian responded by defending Canonical and explaining that from his perspective working with the world's largest service providers Canonical was making impressive in-roads, especially in the enterprise and cloud arena.
Brian is the expert here so I'm in no position to argue, and to be honest rereading the email I sent him it did come off as a bit more anti-Canonical / Ubuntu than I intended. But my main point wasn't that Canonical is a bad company or that Ubuntu sucks, just that what happens in Ubuntu stays in Ubuntu. Maybe that's great for Canonical in the Enterprise space, but it makes building on their work a shaky proposition.
Boldly going where no man wants to go after
Canonical has a special talent for either backing the wrong horse, or breeding it. A few examples of Canonical's track record:
- UEC vs OpenStack
- Bazaar vs Git
- Upstart vs systemd
- Launchpad vs github
- Unity vs gnome
- mir vs wayland
Given this track record, a Canonical backed project is an unlikely winner in any race for widespread adoption. You'd think they would win some battles just by chance. What's going on?
My pet theory is that it has to be a mix of reasons: They don't listen. They don't inspire. They don't make the best stuff. They don't have the best people. They don't have the most money or the best business.
I don't think that Canonical is bad at what it does. It's just that they're rarely the best and being mediocre (or even second best) isn't good enough when the tournament effect is at work. The winner takes home the pot (e.g., becomes the new standard) and Canonical isn't winning.
I'm not even sure they want to. I mean, does Apple want Firewire to become a standard? But Apple can afford to create its own standards. Can Canonical?
If companies were text editors, Canonical would be Emacs
Canonical is not a company driven by the Unix philosophy of doing one thing and doing it well. If companies were text editors, Canonical would be Emacs.
It's easy to lose count of the many different directions they seem to be trying to go in at once: Ubuntu Desktop, Ubuntu Server, Ubuntu Cloud, Ubuntu Phone, Ubuntu Tablet, and Ubuntu TV. Oh my! I'm waiting for them to announce the Ubuntu gaming system and Ubuntu car.
I'm impressed (and slightly fearful) by the way companies like Google have expanded their business, but Google waited until they were wildly profitable with their core product to do that. I'm no expert but having your fingers in so many pies when your company is still losing money a decade after its creation doesn't seem like sound business strategy.
And then there are the various community antagonizing fiascos that left me wondering how they didn't see it coming:
- Sending Unity searches to Canonical (they've since fixed that)
- Inserting Amazon product referrals into the desktop experience (they've since made it opt-in)
Sure they came to their senses, but as the old saying goes: an ounce of prevention is worth a pound of cure.
How much does Canonical really care about free software values?
Here's another thing that bugs me. It's unclear how much Shuttleworth/Canonical genuinely cares about the underlying values of free software. From the outside it looks like Canonical is firmly rooted in the "commercial open source" camp as opposed to the "free software" camp (what's the difference?). This is reflected in a tendency towards technical isolation and the design of solutions that encourage dependence on Canonical services.
The focus is on utility and convenience, not values. And to clarify what I mean by that - a value is a principle you would hold onto even if you get penalized for it by the marketplace. If you give lip service to a value but are willing to give it up to make more money that's not a value - that's marketing.
I'm not saying Canonical's focus on convenience and utility are bad. It's just not inspiring. And you need to be inspiring to lead.
Still, they do a lot of good work and have done much to popularize free software. We should congratulate them for that and be thankful that Shuttleworth decided to invest his millions to create the company. There's definitely a useful place for a company like Canonical in the ecosystem. Ubuntu provides a gentler introduction to the sometimes harsh world of free software. It's especially useful to the vast majority of "human beings" who aren't aware that free software has anything else to offer beyond the magic of getting stuff for free. Who knows, some of them may eventually pull back the curtain.
But it takes more then being useful to lead and Canonical's take on free software is just not very inspiring for developers and would-be contributors, many of whom, like myself, do care deeply about values. What you do is important, but why you do it is even more important.
Free software is more than a better way to develop software, and more than a way to get stuff for free. Free software is about freedom. The more technologically dependent our society becomes, the more free software values matter because technology is a double edged sword. It can be used to strengthen our freedoms, or take them away.
We need utility as a measuring stick, and the right values as our compass. It's not one or the other. We need both.
Which reminds me of a pearl of wisdom I came across that keeps reverberating in my head:
Develop people, not products.
Update: it seems some Ubuntu people took my post very personally. See the clarification of the intention behind this post. No harm intended.