The myth of the unavoidable specialization

In a recent essay, Malone et al. claimed that we were entering the age of hyperspecialization. Their core assumption: human beings are more efficient when doing specialized tasks. Thus, they claim, we are moving toward a future where software will distribute hyperspecialized tasks to expert individuals. They believe that we will progressively work on narrower and narrower problems.

Among intellectuals, specialization is often seen as a good omen. It is the safe thing to do: stick with a narrow topic (e.g., how polar bears raise their offsprings, or the chemistry of sugar). The usual argument is that with the growth of knowledge, we have no choice but to become narrow specialists. Conversely, people with a wide range of interests are pursuing a high risk strategy. Whenever you attempt to contribute to a new problem, you risk ridicule: maybe everyone who has worked ten years on this topic knows that you are pursuing a dead-end.

So, yes, humanity knows more about every single subject than ever before. Conversely, our brains are are biologically identical to what they were 2000 years ago. Thus, we ought to be increasingly mentally challenged. But this logic is flawed because it equates the mind with our brains. We are expanding our minds exponentially! Indeed, our minds are increasingly externalized. First, we started telling stories, using other brains to support our own cognitive abilities. Then we invented writing. Then we invented the Web. At each step, human beings become smarter and smarter in every respect. One might object that it is not I who becomes smarter when I am connected to the Web. That somehow, saying so, is cheating. But this is pure semantics. The fact is, with access to the Web, I could run circles around Sir Isaac Newton, even if he were allowed to have an entire library at his disposal.

We could still conclude that as we expand knowledge, the specialists have a greater and greater edge: it becomes riskier and riskier to be anything but a specialist. But I believe the opposite is happening.  Far from moving toward hyperspecialization, we are in fact moving toward hypergeneralization. Millions of freelance workers worldwide fill out their taxes electronically, bypassing the specialists (accountants). Whereas researchers absolutely needed expert librarians to avoid wasting days in libraries, Google Scholar has made reference checking accessible to all, at no cost. I learned how to prepare pineapple like a chef in minutes using a simple YouTube query. Soon augmented reality glasses will allow you to walk in any park and know instantly the characteristics of any flower you encounter.

But wasn’t the XXth century about specialization? Of course not! The XXth century was about people like Einstein who invented  a new type of fridge and also a little something called relativity. The specialists are most often the poor people. You want to rise up in a company like Google or Facebook? Then be someone who can expand his mind as needed, not a silly Java specialist who can be replaced easily. Leaders like Henri Ford like specialization, for others, never for themselves.

Your future wealth is determined by how much you can expand your mind beyond the capacity of your biological brain, not by your current skills.

Take a chance and go work on a new problem, today.

Further reading: Lack of steady trajectories and failure and How information technology is really built. See also Serial Mastery.


Translation
: Alexandra Seremina translated this page in Romanian.

On being happy

What if you could engineer happiness? What if you could redesign your life so that you are happier? With professors in mind, Brian Martin wrote an essay entitled On being a happy academic with this very purpose. He outlines a few elements that you should take into account if you want to be happier.

Flow

This is the state of mind you reach when you apply your best skills. For example, when programming, I can literally forget about the rest of the world for a couple of hours. Programming makes me happy. I can also enter a state of flow while writing: I am never unhappy while blogging. Writing research papers is also enjoyable as long as the topic is neither routine nor beyond my grasp. I enjoy writing study notes, as long as I can challenge my students (and myself) a bit in the process.

Alas, part of my job also involves tasks which do not lead to the flow. They can make me unhappy. For example, a single administrative meeting can darken my mood for several days. But even good meetings fail to contribute to my happiness. In recent years, I have worked hard to avoid meetings, or to, at least, protect my mood from them. Politics is especially harmful to me: I work hard to stay out of it. It helps that I need very little from others, beside my salary. Even boring routine work such as grading assignments is better for me than internal politics. Everything I do is geared toward getting myself back in the flow as soon as possible.

Relationships

A lot of happiness is derived from our social network. In this respect, I am lucky to have a great family with two kids I love. I have also pursued, over the years, research collaborations: without those relationships, I would not have remained so active as a researcher. I have also found blogging to be a great way to meet people without disrupting too much my ability to remain in the flow. I have very satisfying online relationships with people I rarely meet in person.

Helping others

Feeling useful is important. Sometimes I help others by reviewing papers: I can spend 10% of my time reviewing research papers. I try to share as much as possible: I post my software and study notes online. As an academic, however, I have found that it is sometimes difficult to “feel useful”. Almost by definition, much of what we do appears useless. And  it is!

Mindfulness

If you are constantly “in the moment”, you may lack perspective. I have found that a great way to be more mindful is to stop working all the time.

What is not included: Do big research grants, papers in prestigious journals and prestigious positions make you happier? I have had both more and less prestigious positions, and, to me, it made no difference. In fact, in going from a puny graduate student to tenured professor, I saw no improvement in my happiness. My happiness was at its lowest while I was running a research group in Canada’s largest research institution (NRC). While I enjoy doing the research and writing articles, I have had the surprising realization that having an article accepted in a good journal could sometimes put me in a bad mood. Mostly, what makes me happy is when people use my work: I derive little pleasure from an article that nobody reads, even if it appeared in a prestigious journal.  Research grants are very prestigious but, in my experience, they contribute nothing to my happiness. And bigger grants are worse: they attract false collaborations and administrative work.

Note: Instead of blogging, I should be working on a grant application right now.

Probabilities are unnecessary mathematical artifacts

  • While mathematically convenient, probabilities can be harmful when solving problems because hardly anyone can think correctly about them. Here is my evidence: The famous Monty Hall problem has confused people for years because it asks us a probabilistic question. To recap the problem is as follows: behind one door out of three is a treasure. You pick a door. An agent picks one of the two remaining doors and tells you that there is no treasure behind it. Thus, two doors are left, the one you picked and the one nobody picked. Which is more likely to hide the treasure? Many people think that the two remaining doors are equally likely to hide the treasure. In fact, the door that you first picked has only a probability of 1/3 to hide the treasure, leaving 2/3 for the other door. Why are people confused? I don’t think it is a difficult puzzle. I believe that it is confusing only because we frame the problem in terms of probabilities. Let us revisit this problem from a determinist point of view. Instead of asking which is more likely to hide the treasure, let us ask a more practical question, free of the probabilistic point of view. With the above scenario, we repeat the experiments for every possible initial setup (all treasure locations). Then we ask which algorithm is best: keep the first door, or offer to switch to the second door. That is, you ask people to solve the problem without any use of probabilities. I believe that far more people would arrive at the right answer in this probability-free setup. It is a purely deterministic challenge. I claim that introducing probabilities is what makes it confusing.
  • To make probabilities fit, we sacrifice correctness for mathematical elegance. Most textbooks prove that hash tables have expected constant-time access when hashing is universal. But universality is a probabilistic property which assumes that your hash functions are picked at random from a family of hash functions. Very few computer languages or software libraries implement hashing in this manner. Hashing is overwhelmingly deterministic. Neither your hashing nor your data is random. It is a compelling and elegant analysis, but it is not a correct model for how hash tables work. Thus, textbooks provide the wrong explanation! The correct description of a hash table appears in the Java API documentation: “constant-time performance (…) assuming the hash function disperses the elements properly among the buckets.” See? No probabilities.

The language interpreters are the new machines

Most Computer Science textbooks assume that algorithms are written directly into machine language for an idealized machine under a Von Neumann architecture. Alas, at best, these idealized models provide “ballpark” guidance to writing high performance software. They get you to avoid quadratic-time algorithms when linear-time algorithms are available. Yet there can be orders of magnitude of difference between two linear-time implementations.

To make matters worse, increasingly, programmers work with high level languages like JavaScript, Python or Ruby. The programmers are further away from the idealized machine. So much so that the intuition one might build from traditional algorithmics can be detrimental.

Consider the following example. Sometimes you want to find the location of a maximum in an array. This operation is often called arg max. The Python language lacks a builtin arg max operation. In one of the embarrassing moments of this blog, I proposed a fancy way to compute arg max, using a single pass through the data and a constant amount of memory. It is what Computer Scientists would consider a good solution. The inelegant and inefficient alternative is to first compute the maximum, and then scan the array again to find a matching location. To my surprise, this simplistic solution was much more efficient than what I proposed. Today, I repeated the benchmark under Python 3.01:

argmax function time
array.index(max(array))
2.2 s
def maxarg(arr):
     counter = 0
     arg = 0
     m = arr[0]
     for x in arr:
          if x > m:
               m = x
               arg = counter
          counter += 1
    return arg
4.2 s
max(zip(array, range(len(array))))[1]
3.4 s
max([array[i],i] for i in range(len(array)))[1]
8.1 s
max((array[i],i) for i in range(len(array)))[1]
6.2 s
max(range(len(array)), key=array.__getitem__)
3.4 s

(Numbers and benchmark updated as of June 15, 2011.)

All of these solutions except for the first one go through the data only once. Yet the first solution is nearly twice as fast as any other alternative.

Work blending high performance computing and  high level languages is likely to become increasingly important. Last week, I met with a local start-up that does real-time Web ad auctions. Effectively, each time you visit a Web page, some of your data is sent to algorithms which must decide very quickly what an ad to you is worth. Most of their real-time architecture is written in JavaScript and runs  under the Google V8 engine. They assure me that JavaScript is not the bottleneck.

It used to be that to write high performance software, you needed to know a lot about how the hardware worked. This era is coming to an end. The language interpreters are the new machines.

Further reading: High Performance JavaScript by Zakas and Python for high performance computing by Cook.

Challenge: Can you beat the silly arg max implementation (array.index(max(array))) using pure Python?

Appendix: In C++, the one-pass arg max is about twice as fast.

Code: Source code posted on my blog is available from a github repository.

Is Wikipedia anti-intellectual?

Sanger recently posted a provocative piece where he argues that geeks suffer from anti-intellectualism. His stance is that democratic sites such as  Wikipedia (which he co-founded) are founded on anti-intellectualism. He sums up this techno anti-intellectualism using five beliefs:

  1. Experts do not deserve any special role in declaring what is known.
  2. Books are an outmoded medium because they involve a single person speaking from authority.
  3. The classics, being books, are also outmoded.
  4. The digitization of information means that we don’t have to memorize nearly as much.
  5. You don’t have to go to college, which is overpriced and so reserved to the elite anyway.

My take:

  1. In the Google era, we do not need formal experts as much as we used to. Back in the days, if you wanted to learn about combinatorics, you took a class in college. In fact, you probably had to take a class to even know what combinatorics was! The other alternative was to read the papers and the books on the topic, which were only accessibly from a college library. These days, you can get in touch with hundreds of passionate fans of combinatorics on Math Overflow where you can ask and answer questions, and even build a reputation. You can read, for free, the Electronic journal of combinatorics. The same is true of just about every topic.
  2. The dominance of the long form (e.g., books) was a by-product of our technology. If you are going to print and distribute a piece of work, it needs to have a certain volume for the operation to be financially viable. If you sell a 300-pages philosophy book for $50 and make a profit, you cannot easily sell a 3-page philosophical document for $0.50 and still make a profit because you have fixed fees and because few people can be bothered to drive to a bookstore to buy 3 pages. Moreover, books need to be self-contained, you cannot use hyperlinks to refer the reader to background knowledge. That is not to say that long documents are a thing of the past (e.g., the Harry Potter novels), but electronic media is more flexible.
  3. I conjecture that the classics have never been so popular. I constantly refer back to the classics through Project Gutenberg or ebooksgratuits.com. I constantly read about bloggers who cite the classics. I talk with a lot of people who reread classics on their kindle or iPad.
  4. Memorization is shallow learning, we learn by applying ideas. Anyone can memorize the three axioms of Newton. Denis G. Rancourt famously showed that his fourth-year Physics students did not understand these three axioms. Memorization gives you the illusion of knowledge. It is a dangerous illusion.
  5. You can succeed without college, and a college degree is not success. It used to be that a college degree, any college degree, meant that you were a success. Anyone who holds on to this belief is in for a rude awakening.

Further reading: Fear of Illegibility by Rader is another take on Sander’s essay.

Why I still program

People expect that, as you grow older, you give up practical jobs such as programming for more noble tasks such as managing a team and acquiring funding. This especially true in academia where “real professors” delegate the details, keeping only the “big picture stuff”. In other words, organizations are geared toward vertical collaboration: a hierarchical structure where people on top supervise other (cheaper) employees. In research, this means that the senior scientists have the ideas which  junior scientists implement. Over time, the senior scientists may become unable to do what the junior scientists do, but they will become experts at acquiring funding. This model can scale up: the senior scientist can direct middle-level scientists who then supervise the younger scientists, and so on. Jorge Cham referred to this model as the Profzi scheme because it works best when funding is abundant and ever increasing.

The counterpart is horizontal collaboration. In this model, the senior scientists do everything, from having the big idea to executing it.  They prefer to automate or avoid busy work when possible. Collaboration is mostly used to get a different point of view and complementary expertise. This model still works when funding is scarce, but it fails to scale up with respect to the number of people involved: horizontal collaboration is necessarily intimate.

The type of work that each model supports best differs. I conjecture that vertical collaboration favors long-term plans and predictable results. I believe horizontal collaboration favors serendipity and “wild” ideas.

As a sign that I favor horizontal collaboration, I still program even though I am old. This is unusual. It is so unusual as to raise eyebrows. Some programming takes time, a lot of time. I can spend two or three months a year programming. Presumably, my time is too valuable to be spent on a lowly task like programming that can be best done by people earning a fraction of my income. So why do I still program?

Maybe my best advocate would be the master himself, Donald Knuth:

People who discover the power and beauty of high-level, abstract ideas often make the mistake of believing that concrete ideas at lower levels are relatively worthless and might as well be forgotten. (…) on the contrary, the best computer scientists are thoroughly grounded in basic concepts of how computers actually work, and indeed that the essence of computer science is an ability to understand many levels of abstraction simultaneously.

But I also have my own arguments:

  • I want my work to be significant, to have impact. Yet even the widely cited research papers are rarely read. Very few research papers have significant impact. However, it is comparatively easier to do work that matters with software. For example, recently a team from Facebook integrated one of my compressed bitmap index library in Apache Hive: the Hadoop-based framework for data warehousing. I am willing to bet good money that nobody at Facebook read the original paper for which I wrote this software.
  • Time and time again, implementing my ideas has forced me to understand them better. A common scenario is that something that sounded reasonable on paper suddenly feels unwieldy when you must implement it. I also often discover bugs in my mathematical arguments through implementation. Could I outsource this work to others? Maybe. But the process would not be as fruitful.
  • You do get better at programming over time. I have been building up my expertise for decades. It is enjoyable to start from scratch and solve a difficult problem in days when you know that others would take weeks or months to do the same.

If my arguments are reasonable, and if even Donald Knuth is on my side, why does it still surprise people when I admit to be a programmer-scientist? I believe that the rejection of programming as a lower activity can be explained by the Theory of the leisure class. In effect, we do not seek utility but prestige. There is no prestige in tool-making, cooking or farming. To maximize your prestige, you must rise up to the leisure class: your work must not be immediately useful. There is more prestige in being a CEO or a politician, than in being a nurse or a cook. Scientists who supervise things from afar have more prestige. Programming is akin to tool-making, thus people from the leisure class won’t touch it. People will call themselves engineer or analyst or developer, but rarely “programmer” because it is too utilitarian.

Warning: Not everyone should be programming. It is a time consuming activity. Because I program so much, there are many other exciting things I cannot do.


Further reading
: Brooks, The Design of Design, 2010.

Subscribe to this blog
in a reader
or by Email.

Automation will make you obsolete, no matter who you are


I was part of the first generation of kids to receive computers as gifts. I was also part of the first generation of professionals to adopt computer-assisted tele-work: I can work from my bedroom just as efficiently as from my campus office. I routinely organize and attend meetings while I am at random locations. This week-end, my 7 year-old son  repaired our vacuum-cleaning robot by taking it apart on the kitchen floor:  the contacts with the battery were dirty. Meanwhile, I was on the kitchen table building a solar-powered robot.

Computers can already be superior to human beings on most specialized tasks:

  • Researchers have recently found that a computer persona could more engaging socially than a bona fide human being. This person you are chatting with on Facebook or Twitter, are you sure it is a human being? Maybe you are dealing with a robot, and that is why this person is so responsive and systematically friendly. I suspect that most software is asocial simply because we did not bother to implement sociability.
  • Computers can beat any human being at chess and checker. In fact, you could play 1 million games of checker against a computer, and we know you would never win, not once. How do computers beat you? Not through logic alone. They rely on an extensive database: that is, they have experience, more experience than any human being. Computers show creativity and good judgment when playing these games.
  • A tool like Google Mail sorts my mail automatically for me, and archives it nicely. This used to require a human being making judgement calls about what mail was junk, what mail was high priority, and so on. Yet it has been nicely automated.

Alas our technology is critically limited: we are unable to give computers general intelligence. Does it matter as far as automation is concerned? I believe that general intelligence is overrated in the workplace.

For example, can computers without general intelligence replace managers and accountants? Consider Walmart. We often think of Walmart as a discount store, but it is also the direct result of the largest and most ambitious business automation project ever. Walmart is not killing its competitors just by offering poor wages: it is killing them because it has automated much of the supply and accounting management.

Could computers replace teachers? Khan Academy shows that the lecture component has already been replaced. What about grading? In the software industry, we already use on a large scale automated testing: to determine whether a candidate can program in Java, he is asked to fill out an online questionnaire. Employers rely on these tests more than on college grades. The only reason college professors still grade Calculus and programming assignments by hand is that they lack the incentive to automate it. But have no fear: for-profit colleges are already hard at work automating everything. Would students prefer to have a “personal touch”? I don’t think so: I believe students would rather have quick and detailed automated  feedback than wait for a tired professor to scribble a few notes in the margin of their assignment. (And let us be honest: most marking is done by underpaid teaching assistants who don’t care that much).

In fact, most jobs require little general intelligence:

  • Jobs are highly specialized. You can sum up 80% of what most people do with 4 or 5 different specific tasks. In most organizations, it is a major faux pas to ask the wrong person: there is a one-to-one matching between people and tasks.
  • Jobs don’t require that you to understand much of what is going on. You only need to fake some understanding of the context the same way a spam filter fakes an understanding of your emails. Do you think that the salesman at the appliance store knows why some dishwashers have a shredder and some don’t, and why it matters? Do you think that the professors know what the job market is like for their graduates?

Nevertheless, some believe their job cannot be automated. Most of them are wrong.

For example… Surely, we won’t replace politicians by robots? We may not replace them, but they will become obsolete anyhow. I believe that computers enable a different from of government altogether where we have little need for politicians. In most of the western world, we use representative democracy, with local politicians being elected and sent to a central government, where they form the ruling class. Yet with an entire population having Internet access, we don’t need politicians to represent the people, people can speak for themselves. Most politicians are already more or less powerless since nobody really believe they represent their people. You think that government without professional politicians would be chaos? I am sure there are people who think that without newspapers, individuals cannot be informed.

Whether you are a  lawyer, a medical doctor, a professor or a politician, you already are obsolete. We are just waiting for someone to write the software that will replace you. You replacement won’t pass the Turing test, but nobody will care.

Further reading: The future is already here – it’s just not very evenly distributed, Jobless recovery, the Luddite fallacy and the 4-hour workweek and If robots, machines, and self-service replaced most of the work currently done by humans, what would humans do?

Credit: Special thanks to Seb Paquet,  Phil Jones and Stefan King for online discussions.

The perils of filter-then-publish

Why do I prefer the publish-then-filter system, which dominates social media such as blogs, to the traditional filter-then-publish system used by scientific journals? Because the conventional peer review system (filter-then-publish) has disastrous consequences:

  1. In the conventional peer review system, you seek to please the reviewers who in turn try to please the editor who in turn is trying to guess what the readers want. It should not be a surprise that the papers are optimized for peer review, not for the reader. While you will eventually get your work published, you may have to drastically alter it to make it pass peer review. A common theme is that you will need to make it look more complicated. In a paper I published a few years ago, I had to use R*-trees, not because I needed them, but because other authors had done so. When I privately asked them why they had used R*-trees, the answer was “it was the only way to get our paper in a major conference”. So my work has been made more complicated for the sole purpose of impressing the reviewers: “look, I know about R*-trees too!” Several times, during the course of peer review, I was asked to remove material which was judged to be “textbook material”: didactic material is frowned upon in many circles (hint: it is not fancy enough).  Be warned: if you find an easy way to prove a result, and it ends up looking trivial in retrospect, your work may become unpublishable. You will need to invent complex related problems to pass peer review. It explains why several  important results appear as remarks in long and complicated papers. Either purposefully, or by habit, people will write in a way to make their paper pass peer review even if it makes the work inaccessible. Do you think research papers have to be boring? If so, you have been brainwashed.
  2. The conventional system is legible: you can count and measure a scientist’s production. The incentive is to produce more of what the elite wants. In a publish-then-filter system nobody cares about quantity: only the impact matters. And impact can mean different things to different people. It allows for more diversity in how people produce and consume science. Thus, if you think it would be better if we stopped counting research papers, then you should reject conventional peer review and favor the publish-then-filter system.
  3. The difference between filter-then-publish and publish-then-filter is analogous with the difference between Soviet central planning and a free market. You either let a select few decide, or you let the market decide. You can either trust that the people will be smart enough, or you can delegate the selection to a few trusted experts.
  4. The conventional peer review system pretends to delegate the assessment of scientists to review boards. Instead of reading each other, we trust brands. The net result is that people hire and promote each others without reading the work. Thus, the conventional system kills any incentive to build a coherent and interesting body of work: you are just a machine that produces research papers as commodities. You know how you succeed in science these days? Take a few ideas, then try every small variation of these ideas and make a research paper out of each one of them. Each paper will look good and be written quickly, but your body of work will be highly redundant. Instead of working toward deep contributions, we encourage people to repeat themselves more and more and collect many shallow contributions. We sacrifice scholarship for vanity.

Further reading: Become independent of peer review and Three myths about scientific peer review.

Source: This post was inspired by a comment made by Sylvain Hallé.

You cannot refuse to publish our paper because…

I feel strongly that the conventional peer review process needs to evolve to a publish-then-filter model. That is, I do not believe that a few select individuals should decide what is worth publishing.

But  to openly face others, and their criticism, requires a little bit of intelligence and backbone. These are necessary for healthy science. These qualities are even more important in a publish-then-filter model: you are exposing your unfiltered work to the world.

For their own good,  I would like to exclude from science those who cannot pass an elementary test of maturity. For example: can you tell what is wrong with the following submission letter? (Hint: if you cannot, forget science, it is not for you.)


Dear Editor,

It is with pleasure that we are submitting our article for immediate publication in your journal. Unfortunately, you cannot refuse to publish our paper because:

  • We have been working for three years on this paper. It is as ready as it will ever be.
  • We had to fund the work of the students. Real money was spent on this paper.
  • We, the authors, have unanimously agreed that this paper is ready for immediate publication. Who are you to disagree?
  • We have followed the outline of the other articles in your journal. Our paper looks just like the other papers.

Sincerely yours,

The authors

Time-saving versus work-inducing software

At a glance, office software like Word, PowerPoint or Excel, are great time savers. Nobody would want to go back to the era before Word Processors?

Unfortunately, I believe that this same software bears part of the blame for our long working hours:

  • Word processors entice people to create too many documents. Microsoft Word is the king of corporate busy work. Wherever I have worked, people got busy crafting all sort of useless internal reports or plans. And, of course, reports must be properly formatted with a title page and an index, just in case someone might print it. And updating old documents can be messy: it almost invariably involves formatting bugs. I am tired of having to check that the font is the same throughout the document. Why can’t machines format documents automatically in a consistent manner? Of course, they can and they have been doing it since the seventies (hint: DocBook, LaTeX, web content management systems like blogs).
  • Spreadsheet software is great for prototyping ideas. If I have half an hour to do an analysis, it is hard to beat Excel. There is a catch however: it is difficult to reuse old spreadsheets with new data. Thus, in most organizations, there is a multiplication of spreadsheets. And spreadsheets tend to grow to include many pages, all poorly documented and fragile. Code reuse is possible, but difficult in Excel. Yet there are perfectly good frameworks for data processing such as R. They are orders of magnitude more powerful and less work intensive.
  • PowerPoint is responsible for 90% of the bad business presentations. Have you noticed that Bill Gates frequently give talks without PowerPoint? In fact, he became a much better speaker since he stopped using so many silly slides. But what is worse is that people spend a lot of time on these slides instead of preparing good talks. And remember: not giving a talk is often the best option.

Microsoft is not the sole company to blame. In universities, most assignments and exams are still marked by hand whereas we have had the technology to automate 90% of the marking for years!

Happily, I find that some software really does save labor:

  • Most web content management systems let the author write and publish efficiently. Maintaining this blog is cost-effective: with only a few hours of work every week, I can reach thousands. I spend almost no time on repetitive tasks.
  • Scripting has gotten a lot better in the last 20 years, and it is very useful. I get a lot of my data processing done in Python. My only regret is that so few people learn scripting languages.
  • Obviously, Wikipedia is amazing at saving time.
  • With Doodle, scheduling meetings is an order of magnitude faster than with Microsoft Outlook.
  • Cell phones are work-inducing, obviously. However, I conjecture that tablet-based computing is time-saving. People write shorter comments and emails. They tend to start fewer documents. Users of an iPad will spend more time reading than writing. Isn’t it about time that we take some time off to read instead of producing more than others can consume?

What is the underlying thread? Time-saving software tends to be produced by less civilized people.  Software written by large corporations will probably be work-inducing.

Further reading: Of Lisp Macros and Washing Machines (via Hosh Hsiao) and Conway’s law (via John D. Cook)