Making it easier
I read an article in a technology column on MSNBC a while back, the upshot of which was “I have umpteen-dozen passwords I’ve got to have memorized these days; I thought technology was supposed to make my life easier!”
Really?
First of all, let’s leave aside the obvious fact that our column writer has a technology-driven standard of living which includes affordable access to varieties of food, drink, shelter, clothing, medicine, travel, and entertainment all of which were beyond the wildest dreams of the crowned heads of Europe less than two centuries ago, much less the peasants. Technology does seem to have made lives a lot easier all around. But I rather want to address the actual claim: is the purpose of technology to make your life easier?
I don’t think it is. I think the purpose of technology is to make specific tasks easier.
Let’s take a task like “communicate with a person in Australia”. Suppose you live in, say, London. In the early 1800’s, the best way to get a message to a colleague in Australia was to write the message out with your goose quill pen, making multiple copies. Wrap each up in oilcloth, the most waterproof substance of the time. Find several convenient Royal Navy ships or merchant ships going to Australia by different routes and at different times; Napoleon might sink several of them but one of them will probably get through. Entrust your waterproofed messages to the captains of those ships, and then wait the several months it takes to get the message around either the Cape or the Horn and the reply back to you.
I take this opportunity to point out that this already requires an extremely high level of technology. Safely navigating a vessel from England to Australia is not an easy task under the best of circumstances. But obviously we can do better now; the 1800’s solution strikes me as somewhat more arduous and time-consuming as a whole than having to remember your email password.
The task of communicating with Australia is now much easier, thanks to improved technology. And because we have increased the scope of what is feasible, we can take advantage of new capabilities; in the 1800’s, real-time arbitraging of price differences between Australian and European commodity market derivatives was not anyone’s job description, but I’m sure that there are people pursuing this highly complex task today. The technology enables us to find new ways to complicate our lives, ways that were never possible before because we were too busy spending effort on solving other problems.
I think about this kind of thing a lot in the context of programming language design.
When we add a new feature to the language, we almost always make a specific task easier. But in doing so, we also almost always make the language as a whole more complex and therefore harder to learn. We make it more likely that there will be a communications divide between those who know how the new feature works and those who do not, making it harder for everyone to read and understand each other’s code.
This is one of the major reasons why new features start with “-100 points”, as I’ve often said. Coming up with features that make specific tasks easier is, well, easy. But that’s not enough; the feature has to make things so much better that it justifies the additional complexity added to the language.
******
Wikimedia Commons photo by Ted “Rufus” Ross.
Comments
Anonymous
June 15, 2009
The comment has been removedAnonymous
June 15, 2009
The comment has been removedAnonymous
June 15, 2009
The comment has been removedAnonymous
June 15, 2009
I don't have much to say apart from "That was interesting, thanks." I assume you've seen video of Guy L. Steele's talk "Growing a Language"? It seems somehow relevant.Anonymous
June 15, 2009
Well I was definitely surprised.Anonymous
June 15, 2009
Glad to see you putting technology in perspective. I try to use the same perspective when my flight is delayed for some reason or other- flying still beats walking past about 200 miles or so. :-)Anonymous
June 15, 2009
The comment has been removedAnonymous
June 15, 2009
Remembering passwords is so passe :) Use something like KeePass on a portable stick, remember 1 really good master password and then just generate random GUIDs to use as passwords on different sites. Works great, no 1 password for all your sites, and you're using really strong passwords too.Anonymous
June 16, 2009
-> Remembering passwords is so passe Remembering passwords is so hard… (-: I have to totally trust the software I use. I have to be able to access them from anywhere not just my machine If I need to use a PC to access them (e.g when in an internet café) I should not have to trust the PC (what if it has a key logger installed on it) I have to be able to back them up encase I loose the device/software they are stored on. I should be able to access them in a public place without someone being able to see my master password. Now if all unimportant sites used open-id, then the problem get’s a lot smaller and then maybe my brain could cope. The same happens with feature in a language, for a given person there is a maximum numbers of features they can learn in a new language before it becomes to hard to learn. But everyone that already knows the languages just says “the new feature is so simple”..Anonymous
June 16, 2009
So true Eric! Just as excellent communicators carefully choose there words when giving speeches. Displays of esoteric vocabulary often fall on deaf ears.Anonymous
June 16, 2009
The new features start at -100 is nice given that only selective new technologies should be added to a platform and have the largest effort directed to improving, bug fixing, documenting and optimizing existing technologies.Anonymous
June 16, 2009
The comment has been removedAnonymous
June 16, 2009
The comment has been removedAnonymous
June 16, 2009
The comment has been removedAnonymous
June 16, 2009
TheCPUWizard, I understand the reason for the feature. However, the syntax you propose - "readonly set" - doesn't make much sense to me. As Joren rightly points out, it's a confusing combination.Anonymous
June 16, 2009
Joren, pminaev, Putting the readonly at the front (Joren's syntax) would be just fine, as would a "different" word (e.g. initonly) on the setter. Because of the various limitations with automatic properties, I find that in my designs I CAN only use them about 5% of the time, because this is such a low percentage, and because of the benefits of consistancy, the reality is that I do not use them at all in designs where I have architectural control. If addational capabilities such as this (ideally along with support for laxy evaluation, pre and post set conditioning) then they would have a major benefit.Anonymous
June 17, 2009
The task of communicating with Australia is now much easier, thanks to improved technology. Reading this from Australia and can't help but think how much 'smaller' the world is thanks to technology.Anonymous
June 18, 2009
The comment has been removedAnonymous
June 18, 2009
I would argue that making life easier and making specific tasks easier are the two faces of the same coin. Life is a series of tasks that we do (of course one can do nothing all the time and still not finishing with that). If a technology is able to simplify one task, or maybe several, than we can say it simplifies our life.