One percent software professionals in advanced countries

As a rule of thumb, we may consider that about one percent of the population in advanced countries like USA are computer scientists.

Percentage

  • Can we/ Should we  go beyond this 1% level?

We know that computer scientists do not directly produce goods like farmers, or build houses like bricklayers, electricians, plumbers, carpenters, etc. How far can an advanced society go? Can we imaagine a society with 30% computer scientists? If everybody is just skilled to produce software, then we’ll starve and we’ll have no house to live.  More computer scientists we have in a society, less skilled people remains for other specialized essential tasks like medical doctors, bus drivers, hair dressers, etc.

  • Should we educate the remaining 99% so that they also learn a general purpose programming language like Java

Does this make sense? Should everybody be able to program in Java, Python, Basic, Perl, Ruby, Javascript or in a similar language? Should we teach them to all,  from elementary school to college, to educate everybody in such programming languages?

My personal opinion is that we should answer a clear no to both these questions. No we don’t need more than 1% of the population as software professionals. No we should not try to educate the remaining 99% of the population with Java-like languages.

But of course having said this, we face the problem of having to produce in the coming decades an exponentially growing number of new software applications for all the needs of society: personnal, professional, familial, social, etc.  And we know that the productivity of individual prrogrammers will not increase too much in the future. So, this is the impossible equation:

How, with the same amount of people (code producer and managers, about 1% of the total population), to produce an order of magnitude more of software applications than now?

The basic statement of this impossible equation may be sketched as follows:

ImpossibleEquation

We need to find a solution to this problem. For me the keywords that may help here are EndUserProgramming, DSLs (Domain Specific Languages, a branch of language engineeing), and Higher Order Generation. Computer scientists should not anymore write “programs that solve problems“, but “write programs that generate programs (that generate programs) that solve problems”.

This will not be easy, but this is the only way to go if we want to propose a solution to the impossible equation.

So, the army of computer scientists (1% of the population) should focus on the definition and implementation of DSLs and the remainder of the people (99%) should be educated in using these DSLs in helping to perform the tasks they are skilled for. This is of course very simplistic and needs to be discussed and refined, but there are many arguments in favor of this solution.

About these ads
This entry was posted in General. Bookmark the permalink.

One Response to One percent software professionals in advanced countries

  1. «write programs that generate programs (that generate programs) that solve problems» is what we are trying to do with Stamplay. We are building a platform that will allow web designer to realize web apps for communication and marketing campaign. We hope, that many developer will be able to use their time to solve more interesting problems that things like if-a-user-submit-a-picture-than-send-him-a-confirmation-email ;-)

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