Thomas Leigh Diary

...thoughts on spiritual / personal development • software • books • and others...

Software and Apps: forgotten optimization?

Notes:

    Software and Apps: forgotten optimization?In the late 90's My friend Tom received His first computer. This was the time when We both were engaged (if not fascinated) in informatics. He encouraged Me to use His brand new PC to practice (because I didn't have My Own computer at the time).

    We often discussed about various information topics. Over the time We became aware of fast technology development. What fascinated Us at the beginning - soon became obsolete. Yet We also were aware of another thing: profits We can derive out of limitations (hardware-wise). For example, We've concluded that limited disk space gives Us the opportunity to manage its allocation carefully and reasonably. That way We knew We can learn something important, which may come in handy in the future (in terms of making most optimal decisions). This could be something definitely more difficult for someone who started with much better hardware - because such person wouldn't have that opportunity to learn from limitations. His/Her scale would be different, less restrictive - so that the effect can be only less optimized.

    We knew, for example, that new generations of users will be rather accustomed to higher requirements, probably most often choosing "the newest and greatest" tools (software). What worse, they won't be aware that that software is not necessary well-optimized. In fact, they probably won't even sense the difference, because new software also may run smoothly on their computers. But in My opinion this shouldn't be a matter of detecting a potential difference, but awareness that the difference exists - even if it is unnoticeable. The difference is most often pretty real - and it consists of system resources allocation (RAM/CPU usage, required disk space, etc.). You may not sense that some app is way less optimized than its competitor, but Your computer will do sense that, and it will be quite real - especially when You take a closer look on how much resources are used. That way Your brand new computer may quickly be exploited - while evaluating optimization beyond newness may give You much better and convenient user-experience.

     

    Here are interesting questions:

    1. Why it is possible to still reach way better optimized software?

    and

    2. How come that newer software - which should be better - is in fact not, but often worse (in terms of resources allocation)?

     

    Let's begin with the first question:

    1. Why it is possible to still reach way better optimized software?

    There are two reasons. One is that there are people who care about well-constructed programs (which do their job - but without unnecessary burden). One place You may often find those people is Free Software Movement space (using GNU/Linux I've discovered so many examples of well-optimized software so that I began to get used to it :) ).

    The second reason is that people of the past had many similar (or even the same) needs like We have today. So, for example, if You like listening music using Winamp - there were people couple years ago who also liked it, and preferred the same tool - which was a much older version of Winamp - but still did its main job for which they chose it: playing music. But today's Winamp is way less optimized and uses way more resources of Your computer than much older version - although its basic role should be the same. So what had happened?

     

    Here We encounter Our second question:

    2. How come that newer software - which should be better - is in fact not, but often worse (in terms of resources allocation)?

    The reason is: many programmers or software developers don't care about optimization and system resources allocation. They don't care that Your computer could be much more efficient (for example, You could run much more things simultaneously without noticing a difference in terms of smoothness). What they do care is that their software should meet the newest trends - or maybe they have a kind of agreement with hardware manufacturers: "we'll be writing more and more demanding software which force users to upgrade their hardware". The lie that You need to upgrade in order to have Your tasks (well) done - is frequently repeated like a mantra. Who comes to conclusion that most of those tasks were successfully accomplished many years (or even decades) ago?

    But over the time business have to grow, to sustain itself. Money must flow - so because the main reason of existence of some program had been fulfilled long time ago, but a need of generating income remains - there is a need for creating false motivation, illusionary competitiveness. You may often observe this phenomenon by noticing "new extra features" just implemented one after another within some tool.

     

    Of course, there is a right need for fixing bugs and also being "up to date" (in order for software to be runnable on current OS edition). But the process of developing software reached much higher level - crossing a reasonable boundary long time ago. I think many current editions - such as operating systems and various software - are not well-optimized and aren't justified in that context, because the only reason they aren't optimized as much as they could be - is the need of generating more money, but not effectiveness. In a way this is a vicious circle of persuading people that they need it, that they need the newest version of something, they need upgrades. There are so many versions of various programs, although they all can do their essential job (and the very purpose of their existence!) for a very long time. But although they all still do their job - they aren't the same in terms of how much resources they use. Look at the oldversion.com and track the development of various programs, regarding the weight of installation file. Isn't that surprising? Let's go back in time and see how things looked five and ten years ago:

    Mozilla Firefox:
    Feb 1, 2006 (ver. 1.5.0.1) - 4.94 MB
    Mar 1, 2011 (ver. 3.5.17) - 7.76 MB
    Today (2016, ver. 46.0.1) - 42.4 MB

    Opera:
    Feb 17, 2006 (ver. 8.52) - 3.60 MB
    Jan 27, 2011 (ver. 11.01) - 7.12 MB
    Today (2016, ver. 37.0.2178.54) - 37.4 MB

    Skype:
    Jan 5, 2006 (ver. 2.0.0.69) - 9.53 MB
    Jan 6, 2011 (ver. 5.1.0.104) - 20.18 MB
    Today (2016, ver. 7.24) - 39.8 MB

    Adobe Acrobat Reader:
    Dec 1, 2006 (ver. 7.07) - 20.27 MB
    Feb 8, 2011 (ver. 10.0.1) - 46.29 MB
    Today (2016, ver. 2015.007.20033) - 48.8 MB

    Those are just few examples - there are many more.

    So, the practical conclusion I derive out of this is: I prefer to use either well-optimized or some older version of software in order to be free of unnecessary heaviness and draining My resources while I'm able to achieve My tasks without all of this, but lightly, smoothly and fast. And that translates into:

    • more free time (because well-optimized programs do their job faster),
    • more convenience (being free of fulfilling illusionary needs by incorporating several "extra-features" - they are often less complicated and by that they are less likely to crash or hang - so they are more reliable),
    • more system resources free-to-use (well-optimized programs use much less RAM/CPU/disk space/energy than others - so I can do much more because I have much more free resources to use for other tasks),
    • less effort (less complicated tools » less hanging/crashing, nicer user-experience),
    • less burden of hardware (lesser power bills » more ecological behavior);

    When it comes to mobile devices the issue is even more crucial - because the more optimized is an app - the less power it will use, so Your device will last longer without charging (and that is of course a very practical benefit).

    No comments:

    Post a Comment