Resources and Limitations

Somewhat inspired by the extensive works of Eric Raymond and Paul Graham I decided to write a more general piece myself. Surprisingly, the topic is almost never touched upon or discussed only indirectly. We programmers often write about software efficiency in terms of resource usage (RAM, CPU cycles, hard drive space, material wear, etc.), however the mentioned resources are actually secondary or even tertiary resources. There is a single fundamental resource, from which all the others are derived – time.

We are all born with a certain selection of genes that predisposes us to a defined lifespan. Thanks to the improvements in Medicine, this lifespan can be adjusted so that we don’t die prematurely due to a genetic defect or an organ failure. Still, the overall limit is quite tangible. In order to sustain our living, we exchange bits of this lifespan (time) for a currency unit by working. With enough units we can afford accomodation, nurishment, entertainment, etc. In essence, to keep ourselves in good spirits and in a healthy body. As part of software design we constantly measure time in combination with previously mentioned resources. We try to spend less time on repetitive tasks that can be easily automated via programs, but also require efficient tools to write those programs. It’s very clear that with the need to make a living, we most likely don’t have enough time to master every major programming language or write every tool we need to get the job done. We need to trust fellow programmers in that respect. As Eric Raymond once wrote, one should typically not need to write a tool twice, unless for learning purposes.

Thereby, provided that the secondary/tertiary computer resources are not limiting, it would be wise to use a tool (operating system, programming language, API, framework, etc.) that gives the highest efficiency. For instance, Ubuntu or OpenSUSE instead of Slackware, Arch Linux or Gentoo. Python, Ruby or Java instead of C or C++. There is absolutely no shame in using a high-level tool! The good enough is far more important than prestige or misdirected elithism. That’s how you win against competition – by being efficient. I think we should all remember that!

Advertisements

2 thoughts on “Resources and Limitations

  1. no.

    sorry, if efficiency were the only thing that mattered, some people might feel that ubuntu is better than something else. i have a feeling that a lot of the arguments for ubuntu over something else are similar to the ones made for windows over ubuntu, and possibly even derived from them.

    it depends on what youre trying to do. if youre trying to get a plugin to work, or a piece of hardware, you may or may not find that windows or ubuntu seem to be a better fit– until windows drops support, then you can do nothing– not efficient. or ubuntu (or one of its drivers) drops compatibility with the only (outdated) firmware that supports it– not efficient. if efficiency includes doing things “right” the first time, it goes from “pre-stitched convenience” to “add your own stitch to save nine in the future.”

    ive lost/wasted tons of time on ubuntu, personally. i know its strengths– it once was very helpful (even key) in getting me out of the windows ecosystem, once and for all. all these “timesavers” come with strings attached that waste your time. you cant simply say “ubuntu is better than x” or “x is better than ubuntu”– you have to be more specific. otherwise, its just empty marketing– and how much of your life is already wasted on that?

    when i note a cursor (windows, apple, ubuntu) has started spinning without any indication of when its going to give me the computer back, i know my time is being wasted. other people just get used to waiting. give it back NOW– thats efficiency. ubuntu? never again!!!!! theyve wasted enough of my time. i made a little exception for a review of fig for distrowatch. now get this– they didnt even use the screencap. so yet once again, ubuntu (almost) entirely wasted my time. sure, i can tell people “works on ubuntu too.” but theres no reason it shouldnt– its no real surprise it does.

    Liked by 1 person

  2. My experience with Ubuntu was always quite lackluster as well. Thereby, I usually used either a Ubuntu flavor or just a derived distribution. However, as you yourself pointed out – it depends largely on what one wants to achieve. If computer resources are not limiting and Ubuntu/Lubuntu/Xubuntu/etc. happens to run stably on a given piece of hardware, I would claim “it’s better than X” in the sense that the maintenance costs are realistically lower. There is, therefore, no shame in using it :).

    However, that’s a far off scenario and I would rather trust Debian or any other distribution (like Arch Linux) for that matter. In the end, “simplicity is the ultimate sophistication”.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s