Home' Technology Review : January February 2007 Contents 10 FROM THE EDITOR
TECHNOLOGY REVIEW /
From the Editor
Strict and simple conventions favor the useful expression of ideas.
On Friday, April 6, 1327, during Easter mass in
the Church of St. Claire in Avignon, Francesco
Petrarca beheld the woman he would commemo-
rate as Laura, and irrevocably fell in love. Petrarch was 23
years old. If literary tradition is cor rect in identifying the
object of his coup de foudre as Laura de Noves, she was 17.
Petrarch probably never met Laura; she refused to see
him because she was already married. But by the time he
died in 1374, he had composed hundreds poems extolling
her beauty, bemoaning his misfortune, and mourning her
early death at the age of 38, a respectable mother of 11.
The poems are collected in a book commonly called Il
Canzoniere, or "The Song Book." To praise Laura, Petrarch
perfected the lyric form called the sonnet, which in his
hands consists of 14 lines, usually of hendecasyllables,
rhyming abba, abba, cdc, dcd or some other variation.
This crabbed little form has been imitated by thousands of
poets and has inspired many celebrated examples of liter-
ary art. The Petrarchan sonnet has been called a cage, but
it is a cage that captures a peculiar economy of thought: the
octave, the rst eight lines, o ers a proposition of some sort
that is satisfyingly resolved in the sestet, the last six lines.
The rules of a sonnet are strict but simple.
By contrast, consider the C++ programming language.
A program, like a poem, is a form for expressing ideas:
in one case, words in a natural language, constrained
within a lyric, express a man s love for a pretty woman; in
the other, computer code, bound by the syntactical conven-
tions of a programming language, express the idea, say,
that an extraterrestrial robot like the Mars Rover could
have an autonomous, embedded driving system.
C++ is arguably the most in uential language of the
last 25 years; many of the systems and applications of
the personal-computer and Internet eras were written in
it, including Google s search engine and the electronic
switching systems that underlie our telecommunications
networks. But for all that, C++ is notoriously hard to learn
and use. Partly, this is owing to the di culty of master-
ing the language s paradigmatic method, called "object-
oriented programming." But mainly it is because software
developers are free to express their ideas in C++ in a
bewildering variety of forms.
In The Design and Evolution of C++, the language s
inventor, Bjarne Stroustr up (whom we inter view in this
special issue on software; see "The Problem with Program-
ming," p. 22), explains that he designed the language this
way for quasi-philosophical reasons: "I nd Kierkegaard s
almost fanatical concer n for the individual much more
appealing than the grandiose schemes for humanity of
Hegel and Mar x. ... Often, when I was tempted to outlaw
a feature I disliked, I refrained from doing so because I did
not think I had the right to force my views on others."
Stroustrup s restraint hasn t pleased the generations
of programmers who have struggled with C++ s quirks
of syntax and "features overload" (to use coder s jar-
gon). When a version of our inter view with Stroustr up
was posted on Slashdot, an aggregator website that o ers
"news for nerds," it attracted 605 comments. "JCR" asked,
"Why does C++ introduce so much complexity for so little
bene t?" The rules of C++ are complicated but lax.
Programming languages a ect more people than profes-
sional coders. Although our technological civilization r uns
on software, the software doesn t work very well. As our
cover story by Scott Rosenberg puts it, "Everywhere you
look, software is over budget, behind schedule, insecure,
unreliable, and hard to use" (see "Anything You Can Do, I
Can Do Meta," p. 36). Excessively complicated program-
ming languages, of which C++ is one example, are a major
reason for software s confusion. This is because a useful
programming language should be what computer scientists
call an "abstraction" of the underlying complexity of con-
trol ows and data structures. C++ preser ves for program-
mers the maximum possible freedom of expression; but as
"JLeslie" (another Slashdot commentator) admitted, "The
cost was that it wasn t much of an abstraction."
There may be another way. Charles Simonyi, the for-
mer chief architect of Microsoft, who is now the chief of
Intentional Software, wants to overthrow programming
languages for something he calls "intentional program-
ming." Rosenberg s pro le of Simonyi explains how inten-
tional programming might give developers a higher order
of abstraction. Rather than writing software code in pro-
gramming languages, programmers would gratefully relin-
quish the production of code to a "generator" that would
swallow their designs, representing the intentions of com-
puter users, and spit out working code in a language that
computers could understand, compile, and run.
The best expression of ideas occurs in forms that are
strict and simple. Could Charles Simonyi be o ering pro-
grammers a new form that is at once easier and more rig-
orous than anything they have had before? Write and tell
me at email@example.com. Jason Pontin
Links Archive November December 2006 March April 2007 Navigation Previous Page Next Page