Let’s get one thing clear: The VP of Ubuntu Engineering at Canonical, Rick Spencer writes a mean proposal. Honestly. I deal with more than a fair amount of marketing copy-writing and I can tell you it’s a great pitch. It’s completely decided in its stance and it uses emotive and empowering power-words like converge, velocity and agility. You’ll find nothing but the finest propaganda here.
Anyway, here’s my interpretation — a paraquote, if you will — of Rick’s whole argument:
We spend too much time supporting old, haggered software that no users actually want, and not enough on shiny new things.
We frustrate people by being up to six months behind the curve, we end up rushing new features and integrations because of the arbitrary time limit and we already rock at getting things right first time with Daily Quality… so why not move to a rolling release?
It’s better for users, maintainers and the rest of us if we all just use one codebase for everything (including phones and all that). That will give us the time to improve things at a faster and more stable rate.
Again, that is just my interpretation. You can read the full post and make your own. I have some reservations based on what the post suggests to be true and some of the “remedies” for those problems also seem to carry risks and downsides. Here are my key problems with a rolling system:
Newer is not always better.
The biggest elephant in the room. Newer can mean fixes and features but it often means new bugs, freshly lapsing documentation and a new wave of angry users when their things just stop working.
A culture of constant-updates may also rely on waiting for the next upstream version instead of getting stuck in and fixing otherwise low hanging fruit.
Users can already upgrade any parts they want.
The relevant teams make sure that the latest graphics packages and wifi drivers are available and backported and for everything else PPAs have revolutionised the upgrade system.
If you want the latest version of PHP, Chrome or KDE, you just install a PPA and you accept the risk. If it doesn’t work you can just ppa-purge
it out of the system and you’re back to solid, stable ground.
Rolling means a constantly moving target.
Developers don’t know what they’re building for. Users barely know what they’re running on. Triagers need to work five times as hard to track down which version of which software a bug is coming from. What happens to bugs after the new release comes out? How on earth do you plan a multi-month project (eg: migrating Upstart to Systemd) when you have no way to freeze and force everything else to fit around you?
And what about the “stable ABI” we’ve been honking on about to app developers and ISVs?
It’s hard enough for open-source developers to keep up but now you’ve got a bunch of closed source stuff sailing on this ship. This is only possible because we promised we’d remain a solid platform and be respectful with system changes.
The successful marketing of this feature (along with other things coming into alignment) mean gaming on Linux is right in the process of taking off. And you want to shoot it down with ABI instability? Awesome. Call off the year of the Linux Desktop!
The argument that ISVs only care about LTS is the funniest thing I’ve read all day. ISVs are paid to care about what their customers whine about. Take gamers as a market example. If developers don’t support Ubuntu-NG, most of their market has just evaporated. You can’t think about Ubuntu as a B2B software platform. The future is going to be full of B2C and I2C sales and if you can’t support the developers, they’re not going to support your platform.
Converge is a lie. There is no convergence yet.
Ubuntu Touch is possibly the least unified Ubuntu in the family. Different kernel. Different display server. Different interface. Different interface toolkit. Different application API. You can’t jolly on about being from the same codebase when it’s completely different stuff.
I’m sure this will change in the future but until desktop Unity runs on QML, offering similar API hooks to applications, I’m not even going to entertain the idea that there’s convergence. It’s a nice hopeful word but it has no relation to Ubuntu at the moment.
Daily Quality is good enough? Release quality still isn’t good enough!
I deal with Joe the average user on a daily basis. They’ve downloaded Ubuntu and it doesn’t work. Or they’ve upgraded and their sound doesn’t work. Or they can’t get a graphical environment. Or the wifi doesn’t work. This is the staple of question on Ask Ubuntu. We’ll get a few hundred of these every week without fail.
Joe still occasionally has a really bad time with Ubuntu because Joe wasn’t there when Ubuntu was in its 6-month development phase. Joe could have downloaded the testing ISO or upgraded but they didn’t so when the big upgrade finally happened on release day, they ran into a hardware-specific bug in the Kernel or X.
A rolling release is going to create a few thousand Joes every upgrade and will turn Ask Ubuntu and Launchpad into cesspits of poorly updated bug reports. Thanks.
We urgently need to look at improving how users handle their own hardware issues because the current models are unhelpful to developers and painful for both the users and the support team. Building new tools to automatically fix issues should be the focus.
So, back to your question, why now?
Ubuntu has proven itself. I don’t agree with everything that’s happened technically or in the community to date but the Ubuntu ecosystem appears to be the healthiest it has ever been. It isn’t there yet and it needs to keep improving but why would you want to knock out the foundations at this point?
I might be completely wrong and rolling might work but we lose nothing if we stick with the 6-month cadence… What is the risk of switching to rolling? Embarrassment? Losing users? Collapsing the community? Is any of that really worth it?