Programming languages are unnecessarily difficult to work with because they rely on the artificial constraint of using only ASCII characters, a noted programmer argues in the November issue of the flagship publication of the Association of Computing Machinery (ACM).
In the article "Sir, Please Step Away from the ASR-33!," Poul-Henning Kamp makes the case that modern programming languages are still unduly restricted by the constraints set in place by computers developed decades ago, most notably the use of ASCII.
Programming complexity is an ongoing concern of language developers and maintainers. Most recently, Google engineer Rob Pike railed against the complexity of languages such as Java and C++. In response, Pike created a new language, called Go, to simplify programming.
Kamp, however, argues Pike didn't go far enough in simplifying the language, insofar as he based it on the ASCII text.
"Why keep trying to cram an expressive syntax into the straitjacket of the 95 glyphs of ASCII when Unicode has been the new black for most of the past decade?" Kamp asks.
ASCII, short for the American Standard Code for Information Interchange, is a character encoding scheme that maps the English alphabet and a few other basic characters to binary code understood by all computers. Unicode expands this limited pallet to a wide range of other languages.
"Unicode has the entire gamut of Greek letters, mathematical and technical symbols, brackets, brockets, sprockets, and weird and wonderful glyphs," Kamp explained. By using this wider range of characters, he argues, programming languages wouldn't have to resort to developing a convoluted syntax to enable advanced functionality.
Programming languages could take advantage of other aspects of modern computing as well, he said. For instance, color screens could enable languages to make the color of the code itself part of the syntax. That screens are larger is size today could allow programs to be laid out in multiple columns so they can more easily understood, rather than as a single column of code.
"For some reason computer people are so conservative we still find it more uncompromisingly important for our source code to be compatible with a Tele-type ASR-33 terminal and its 1963-vintage ASCII table than it is for us to be able to express our intentions clearly," he wrote.
Kamp, a Danish programmer, is perhaps best known for an implementation of the MD5 password hash algorithm -- a method of producing a token that can be used to verify that a block of data hasn't been tampered with -- as well as for the Vanish Cache, an HTTP accelerator used by Facebook and other content providers. He is also known for coining the widely used phrase "bikeshed colour" to describe technical arguments of little consequence.