The impossible equation

Let us define a professional programmer as one who is making a life of programming, for different subjects or domains, usually in a General Purpose Language (GPL)  like Java or C#.

1. Slow increase of professional programmers

The total number of professional programmers in the world is only slowly increasing. The extended capacity of universities and engineer schools is limited and does not overtake the number of professional programmers that are going to retire. The additional number of professional programmers in emerging countries (India, Brazil, China, Russia, etc.) is compensated by the lack of interest by technical programming careers in many industriellay developed countries. 

These trends are likely to stay similar in the coming 25 years period.

2. Rapid increase of applications to develop

The number of application that will have to be devloped in the next years, for professional, social, ludical, individual or other needs is likely to follow an exponential increase. 

3. Solving the impossible equation

An application is mainly made of software and this is not likely to change in the future. Whatever the language used, a professional programmer is able to produce a limited amount of software par day. Since fifty years, the individual productivity of the progrmmers has increased with better programming languages, but in an order of magnitude that let us pessimistic on the chances of making a breakthrough in the coming years, with another technique like automatic programming, program genaration from formal specification or another supposed silver bullet. 

If we draw these two observations on the same diagram, we see that with the population of professional programmers in 2015, it will not be possible to deal with the production of all needed software-based applications.
Massively educating non-programmers into programming techniques means that we may miss these competencies for other important tasks (health care, building, commerce, law and police, manufacturing, etc.). 

The problem is quite serious and will rapidly hit industrialized countries. Outsourcing will not be an acceptable solution. 

4. Interdisciplinarity consider harmful.

One solution could be to develop systematic interdiscipliary education. This means that every professional (chemist, architect, artist, farmer, lawyer, book-keeper, etc.) should develop a competency to use general purpose programming languages as part of her/his education. Then s/he will be able to develop specialized computer programs for her/his corporation, in addition to the day to day work in the specialty. 

This has been tried in some countries where special curicula have been set up (computers and chemistry, computers and management, computer and biology, etc. ). The net result is that people educated in such a way often perform poorly in both computer and the additional discipline. 

5. An old success story.

If we want to seriouly plan for the future, we should analyze the past. A long time ago this kind of situation was already met once. This is nicely recorded in Dan Bricklin’s Web site : Dan Bricklin invented a language for accountants called Visicalc in the late seventies. The first advertisement for this language appeared in the May 1979 issue of Byte. 

Visicalc came as a nice solution to the needs of many acounting people that had the repetitive task of establishing several similar lines (number of items, unit price, total price) and then a summarizing gran total line.  Instead of asking a professional programmer to develop such a program with the correct formula each time in Pascal, Fortran, Cobol or C, the great idea was then to provide the accounting people with a system in which they would not need this help.

This was a great idea at the time and when we see the current success of Excel (the successor of VisiCalc), we can imagine the catastrophic situation we would face if each excel user were to ask a Java programmer to write a program for the particular task.

This invention was one of the most important in computer science. Only now we start realizint that it introduced a new kind of actor in the system, namely the end-user programmer. On the contrary of the professional programmer, the end-user programmer does not belong to the computer corporation  and has an objective of doing a work in a particular domain  with the tools suited top this domain. In many cases s/he will work with a DSL (Domain Specific Language). Visicalc and Excel are domain specific languages.

6. The importance of End-User Programming

The importance of end-user programming is now widely recognized. See for example the presentation of Brad Myers in

Brad Myers in this presentation provides many definitions, as the following ones:

He also gives some figures as the number of actors in the USA:

90 Millions computer users;
50 Millions Spreadsheet & DB users;
12 Millions self described programmers;

3 Millions professional programmers

These definitions are quite helpful in undertanding the current situation and coping with the problem aforementioned. The only solution to the impossible equation mentioned earlier is to bring end-user programmers in the scope. But of course we cannot ask them to work with professional programmers tools like Java or C#. And this is where the DSLs arrive.

7. DSLs at the rescue.
Building languages for end-user programmer is a difficult task as reported in  the paper “Why Johnny can’t program” (
This entry was posted in DSL. Bookmark the permalink.

1 Response to The impossible equation

  1. Pingback: 2012: Time To Adopt Platform As A Service – Forbesについて « 徒然モデリング

Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s