Saturday, June 01, 2013

Applications are getting increasingly "higher-level" - is this a good thing?

Lesser and lesser proportion of applications are being programmed in genuinely native code. Instead, more and more applications are being created for the various types of higher-level platforms that have become widely available and entrenched - .NET Framework, Silverlight, JRE, Web browsers, etc. Is this a good thing?

While it can't be denied that the advent of higher-level languages and platforms has made the process of software development easier and faster, it also has to be remembered that the output of these higher-level platforms are applications that can be very inefficient with regards to resource usage. Launching such often-bloated applications is often akin to unleashing one's large sword in order to kill a tiny fly.

A good example of such an application is Janetter. It's a "native client" for Twitter. However, it isn't so native after all, since Janetter is based on the Chromium code, which makes the program both large and heavy, especially compared to an application such as µTorrent, which is written in native languages. Janetter doesn't have its own rendering code; it uses Chromium's code. So while there are benefits of this shift towards higher-level software platforms, a negative side-effect is a material reduction in efficient resource usage.