The Benefits of ‘Auto-Updating’ Programs

Feb 16, 2016

Auto-updating programs are definitely useful. When one evaluates their most-used programs, they’ll probably just as well notice that a majority of said programs auto update in the background. For instance, two of the programs I use the most—Chrome and Atom—are both great examples of auto-updating programs. “But,” you might ask, “why is this important?”

Great question!

Auto-updating means the program itself does the updating, so an action isn’t needed by the user. This can be extremely beneficial to users who utilize certain programs regularly, but to perform an outside action. For instance, we use Chrome to access the Internet of Things. Although Chrome is one of the first to auto-update, it can be said that previous web browsers were clunky and annoying, having to update them periodically to avoid running into bugs.

Auto-updates for your cross-platform application

There is great tool by Microsoft, called Code Push, that allows your Cordova and/or ReactNative apps to update small features directly on the users device without waiting for store approval. This is hugely valuable in terms of time for the developers—so they don’t have to re-submit their apps to the Stores due to minor updates—as well for the user, as they won’t have to download the latest version of the app if only minor updates have been pushed. There is also another great tool called Squirrel for desktop apps that embraces the same features.

Libraries that help with auto-updating

There are also libraries that allow the “hot swapping” of code while fixing changes during development. It helps to not have to restart the program just to see the changes. In React, using Redux enables hot swapping and time traveling through changes by using the principle of immutability.

Of course, the usefulness of auto-updating can also apply to data, which has been proven by the popular, file auto-syncing platform Dropbox, as well as Google Drive, and Box. There are even self-contained apps, such as Evernote, that promise to sync data between every possible device.

The principle of auto-updating

The principle of auto-updating also applies to servers, systems, and software, ensuring the user is left with as little of the responsibility as possible. It’s also important to evaluate how long all of you’re dependencies will be supported in order to minimize the risk. Most programming languages support a way of declaring package dependencies.

Breaking changes are still problematic. As an unfortunately good example, look at the resistance between Python 2 and Python 3, even though v.3 really only changed a few things, such as unicode by default, print statement as a function, etc. I think JavaScript has the right model in allowing transpilers to enable developers to use new language features before features become standard or accepted. Hopefully by using the auto-updating principle, your program will avoid the problem of having multiple incompatible versions.

Being able to automatically update programs is useful, but still has problems. Most programs or software do not actually use dynamic updating, and need the program to actually restart.

RECENT POSTS

Building an AI Policy for Your Company

Building an AI Policy for Your Company

Artificial Intelligence (AI) is an integral part of our present-day technology landscape. At Sourcetoad, we’ve been assisting our clients for years in leveraging this powerful tool. However, it’s become more important than ever to have an internal policy on how these...

Sourcetoad Presents: Fine-Tuning OpenAI

Sourcetoad Presents: Fine-Tuning OpenAI

Welcome to Sourcetoad’s first video in our Artificial Intelligence series! In this video, Sourcetoad’s own AI subject matter experts discuss how to fine-tune OpenAI. After watching this presentation, you’ll learn: ✅ What fine-tuning means✅ How to use fine-tuning to...

The Agile Manifesto in Practice: Part 2

The Agile Manifesto in Practice: Part 2

The Agile approach to software development first emerged in response to the inflexibility of existing project management methodologies. Unlike traditional approaches that emphasize extensive documentation at every phase of development, Agile instead values the...