I started yesterday morning thinking I might do all my work in the Vivaldi web browser. Upon launch, it let me know there was a minor update so I applied it. Then, I headed off to check my Gmail and got an error that the browser wasn’t supported. Rather than argue, I just quit Vivaldi and loaded Opera instead.
And, it had an update waiting too. So, I applied it. I’m now at:
The update was a small-ish update from version 51.0.2830.32. I’m always a believer in keeping things up to date, particularly a web browser. There are always new features to have which are nice but there’s the bugs and weaknesses in the code that are always being addressed.
The version numbers are interesting to follow. A good discussion can be found here.
Versioning is a discipline all by itself. When you teach computer science, it’s always important to help students acquire the skills to know about versioning so that they can plan and track the revisions to their code. It’s so seldom that you have a student that can sit down and write a program from beginning to end without the work spanning over a period of days. (If they can, your problems are too easy. <grin>)
When was the last time you saw Version 1.0 of anything?
Now, applications like Opera are the “real world”. At version 51, there have been many versions of the code. It’s a geeky trip along memory lane to see when features were added to the base project. If nothing else, it’s worthwhile in the classroom to demonstrate how tracking is done with a formal project. Of course, in this case, I’m fixated on Opera as it was the last to be updated but the same concepts apply to any piece of software. But, you know that. You’ve updated your software when appropriate, or notified, or have it done silently in the background for you.
Even your applications that appear in the browser and run from a remote server have version numbers. The instance of Tweetdeck that I’m using is
It’s not just code that can benefit from a good solid treatment of versioning. How about that essay that takes a bit of work to be completed? How do you know which of the many versions is the latest? Is the date and timestamp the tool that you use? What if you have to rollback to a previous version? How do you manage that?
A very interesting read can be found here.
Back to coding, I know that a number of computer science teachers use the educational implementation of GitHub for this explicit purpose. It sure beats the heck out of a paper log or a self-documented ongoing file on your computer but it might be overkill for some!
Regardless of your project, when it takes more than a single sitting, you might find yourself working with and managing various versions of whatever you’re working on. How do you handle and/or teach versioning?