The Infinite Version

One of the things I like most about Google's Chrome web browser is how often it is updated. But now that Chrome has rocketed through eleven versions in two and a half years, the thrill of seeing that version number increment has largely worn off. It seems they've picked off all the low hanging fruit at this point and are mostly polishing. The highlights from Version 11, the current release of Chrome?


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2011/05/the-infinite-version.html

And what’s awesome is that it never (at least I’ve never noticed) breaks webapps that has worked on previous version. Good blog post Jeff.

Release early, release often. Unless you’re Google because it’s getting silly now.

Another thing that’s great about Chrome is that it can be installed - and updated - on Windows without requiring administrator rights.

Auto updates are definitely the way to go, it should apply to operating systems too. Gradually pushing out an OS upgrade over a few days would be much more preferable to wasting an entire day reinstalling everything.

It always struck me as irritating and time wasting that on boot Windows PCs love to pester the user about updates. It’s like playing whack-a-mole fending off virus killers, Java, Adobe (oh wow they changed something niche again in the PDF rendering engine, here comes 10 meg!) and then Windows itself. It’d be much simpler if there was a standard update system built into the OS that everything had to use.

However you’re seriously screwed when the auto update system pushes out a broken update.

Actually courgette is the English word for zucchini. Zucchini is the American word for courgette.

Unfortunately seemless wordpress upgrades only seem to work if you don’t have plugins… otherwise they tend to fail in painful ways between major versions. I saw this a little too often when wordpress 3.1 came out. (p.s. I work in webhosting)

@James it’s amazing that more Linux users don’t agree with you, what you’re describing is a Rolling distribution, like Arch Linux.

I have to admit that I can’t see past Chrome - it’s serious browser crack. I keep trying FireFox 4 and IE9 but Chrome is so slick, fast and lightweight compared to those bloaters. Chrome loads in the bat of an eye but FireFox’s startup time is pretty unspectacular, even from my SSD, and I’d say lags behind even IE9.

Can’t say I’ve ever been nagged to restart Chrome after an update. I like that no fuss way it gets on with keeping itself up-to-date whereas out of the box FireFox is just downright annoying and IE, well do I really need a reboot to update a browser?

Whatever trust issues you may or may not have about Google, Chrome is doing it more right by a long shot with regard to deployment and updates.

Chrome applies the same autoupdate logic to third-party extensions and apps. Anything on the web store is automatically updated in the background, using the version number to determine if a new version is available, and becomes available the next time the browser starts.

Release early, release often. Unless you're Google because it's getting silly now.
What on earth is silly about that?
Actually courgette is the English word for zucchini. Zucchini is the American word for courgette.
From Wikipedia: The word zucchini is the Italian name for the plant, which is why it is the more common name in Italy (zucchina/e), but also in North America, Australia and Germany, while courgette is the French name for the vegetable and is more commonly used in France, but also in Ireland, the United Kingdom, Greece, New Zealand, the Netherlands, Belgium, Portugal and South Africa. [http://en.wikipedia.org/wiki/Zucchini]
Unfortunately seemless wordpress upgrades only seem to work if you don't have plugins... otherwise they tend to fail in painful ways between major versions. I saw this a little too often when wordpress 3.1 came out. (p.s. I work in webhosting)
This is most commonly a problem when using poorly coded plugins or when the current server configuration causes problems (e.g. with file permissions).

The infinite version number is great unless you use version numbers to differentiate between the old and the new and thus to get people to pay for the new version. Infinite version number will work for browser and webservices that are either free or charge by usage. I can’t imagine it working for Visual Studio, desktop and console games, OSes etc. Unless everything switches to a service oriented system.

It’s not hard to achieve this if you don’t mind people getting source code. An update can trigger a fork that grabs a new (mercurial/git/whatever) repository and tell you upon next login “Hey, a new version is ready [click to apply]”. When the person has modified something, it can tell you “We have a new version, but changes you’ve made conflict with it … [click here] to learn about making changes that don’t cause this in the future”

DVCS’s aren’t well suited for tracking large binary blobs, though.

The update, still, needs to be triggered by the user. That’s one of the few things I hate about Chrome.

Xenoterracide: not really. Arch Linux’s pacman repositories only cover very major software on your computer. Anything niche needs to be manually compiled or fiddled with from the AUR; then you give up on autoupdates.

[unsupported] is the web based repository that is commonly referred to as the AUR, or Arch User Repository.* Users can submit source packages containing various build files including PKGBUILDs to this repo. This is an unofficial and unsupported repository which isn't directly accessible via pacman. To install a package from [unsupported] a user would have to download and extract the source package, run makepkg which downloads upstream sources and builds the package, and finally install the built package using pacman. One of the popular AUR Helpers may be used to help with these tasks.

That’s what drove me off Arch when I tried it (briefly.) Package management is a big part of Linux’s advatanges over other OSes. You can achieve that more effectively on Debian/Ubuntu by augmenting the default software sources with more specialized ones like the Google Nightlies PPA… in my experience. YMMV :slight_smile:

You should copyright the term “Hot Swappable Software” to describe your goal. If we can figure out how to hot swap a hard drive running a mission critical server, we should be able to do the same with software. My guess is that this would need to be an OS feature because you have would have to swap while it is in RAM. Although you could use the application pool concept that IIS uses, and have the next version ready to load and set the application pool to recycle after X number of minutes.

Erlang’s runtime has robust, proven support for hot upgrades. I’d love to see that get applied to desktop software and to web servers.

ZucchinA (plural: zucchinE) is the ITALIAN word for courgette. And its gender is female (like any other PLANT name in latin and therefore also modern italian).

ZucchinI is the americanized version of it - all of a sudden turned into a MALE noun. Go figure.

I read this, and wanted to comment that Erlang already allows hot code swapping right out of the box. And in the time it took me to login somebody already mentioned it!

It is probably more difficult in other languages, as Erlang’s particular way of dividing a system into a number of autonomous processes with no shared memory etc makes it easy to just replace the code in a section of the application.

Given that the majority of “normals” won’t be leaving the browser running perpetually with 50 open tabs like most geeks, I’d say the need to restart for updates is a minor problem at best.

If all software auto-updated as well as Chrome, I’d be a happy man.

The fully automatic underwater update feature of Chrome works great. Why would you want to keep track of what the exact version of Chrome is exactly that you have installed? That’s not interesting unless you’re developing software that depends on features that appear in certain versions.

I’ve never seen that “Update and restart” dialog in Chrome. The solution to avoid this is simple: just do the update the next time the user quits / starts Chrome. No need to ask the user to do that explicitly. Note that Chrome will only display that nag screen on the About box, which you have to open deliberately. It doesn’t show that at random moments while you’re browsing the web.