ASCII crimps program development, coder says

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, colour screens could enable languages to make the colour 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.

Would you recommend this article?


Thanks for taking the time to let us know what you think of this article!
We'd love to hear your opinion about this or any other story you read in our publication.

Jim Love, Chief Content Officer, IT World Canada

Featured Download

Featured Articles

Cybersecurity in 2024: Priorities and challenges for Canadian organizations 

By Derek Manky As predictions for 2024 point to the continued expansion...

Survey shows generative AI is a top priority for Canadian corporate leaders.

Leaders are devoting significant budget to generative AI for 2024 Canadian corporate...

Related Tech News

Tech Jobs

Our experienced team of journalists and bloggers bring you engaging in-depth interviews, videos and content targeted to IT professionals and line-of-business executives.

Tech Companies Hiring Right Now