Lowering the barriers to programming

(via the LtU forum)

Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. Caitlin Kelleher, Randy Pausch. ACM Computing Surveys. Vol. 37. No. 2. Jun 2005.

Since the early 1960's, researchers have built a number of programming languages and environments with the intention of making programming accessible to a larger number of people. This article presents a taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages. The systems are organized by their primary goal, either to teach programming or to use programming to empower their users, and then, by each system's authors' approach, to making learning to program easier for novice programmers. The article explains all categories in the taxonomy, provides a brief description of the systems in each category, and suggests some avenues for future work in novice programming environments and languages.

You might also want to check out this older LtU item.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Interesting, but incomplete.

While the paper is interesting and does cover a lot of realtively unkkown langauges, some big names and important concepts seem to be missing.

Where is the section on Visual Basic and how it greatly lowered the difficulty level for Windows programming?

Why is there no mention of automatic memory management? That concept alone has greatly changed the industry both from a learning and a productivity standpoint.

How about SQL and databases?

Time and time again, I get the impression that the academic community is ignoring what is happening in industry.


What about Spreadsheets?

Arguably, nothing has been more successful at lowering the barrier to programming than the invention of the spreadsheet. This paper only makes an indirect reference to spreadsheets in its section on the “Hank” programming language. It seems that the paper is more interested in intent than actual achievement.


nothing has been more successful at lowering the barrier to programming than the invention of the spreadsheet.

I agree.

I am not sure if the paper makes a strong distinction between end-user programming, and projects that are aimed at novice programmers that are later supposed to "graduate" to mainstream languages and tools.

Not to mention...

Systems for programming where the user is hardly aware he/she is programming at all, such as:

* Successful domain-specific languages, such as HTML
* Macro systems in word processors and other productivity tools (here I refer to event capture/playback systems, not to text preprocessors or term-rewriting engines that run prior to compilers)
* Numerous command shells and batch processors, often intended for non-programmers (whether they were usable by such is a different issue)
* Many modern web composition software packages, which can be used to create interactive content in a fashion which can only be considered "programming".

A few "classical" languages that were seemingly omitted:

* Atari PILOT. A Logo knockoff from Atari for its 8-bit micros, I'm surprised this didn't get mentioned. (The far less successful 2600 Basic--an interpreted language targeted at a gaming console without any provision for a keyboard--did get mention).