"Semicolon Wars" Analysis


“The Semicolon Wars” is an article written by Brian Hayes, a senior columnist for American Scientist. In this article, he writes about the enormous diversity that we have today regarding programming languages.

For starters, I was really amazed with the enormous quantity of programming languages that we have nowadays; the estimate with the higher number of programming languages is higher than the estimate of spoken languages around the world! It’s amazing how we even accomplish stuff with that number of languages, but I believe this diversity is of utmost importance.

Hayes also writes about the possibility of the “one true language”, one that we could keep improving and evolving until it’s a multi-purpose all-powerful language. I greatly disagree with this.
Up until now, my programming work has heavily leaned towards low level programming, and this is where I could observe the importance of having different programming languages. For example, when I programmed on an ATMEGA32 (a small but powerful microcontroller), I relied heavily on AVR assembly, and then when I moved onto an evaluation kit (EVK1105) the need for a higher level language arose. This happened because the ATMEGA is used mostly in small and dedicated applications, with little need for arithmetic or algebraic operations, while the EVK1105 is used for more powerful applications like signal processing and displaying data on an LCD. These tasks would have been a nightmare to implement with any kind of assembly, but thanks to C and its use of libraries, we could do all these operations in just a few lines of code.

Later on, I had to use a webcam so a robot arm would know where to draw. While all the arm programming was easy to do in C, Python had better ways to acquire and process the image from the webcam.  This is where I realized that what Hayes says about the main feature of a program is how readily you can express your ideas is very accurate. C could have processed the image just as well, and AVR assembly could also be used to control the LCD, but it would have been much more complicated to do so.

That’s why diversity is very important. I don’t know a lot about high level programming, but I reckon it happens in the exact same way.

The notion of “the one true language” results impractical, as the level of complexity among applications is too broad to have a program that does everything. Imagine monitoring and controlling the water level of a tank using Java on a small microcontroller, it would probably need a BIOS and an interface program to translate the readings to something that Java can use. While in assembly all you need is read the input of the sensor and send an output signal to the pump. This shows that diversity of languages is also dependent on the diversity of hardware.

This is further observed on the four kinds of programming language that Hayes describes. It’s clear that this division of programs happened almost organically from the needs that arose with pure software applications.

But I also believe that having a too great diversity of languages could be harmful, as I have also came across languages that are just too incompatible with some other language, and if this progresses further, it could mean that we would have an isolation of certain kinds of technologies, which could be a problem when attempting to hybridize technologies to develop new ones. In fact, with the coming of quantic computers, there might be a need to readjust a lot of technologies to work with this new kind of computer.

Bibliography:
https://www.americanscientist.org/author/brian_hayes

Comentarios

Entradas populares de este blog

"Beating the Averages" Analysis

"Revenge of the Nerds" Analysis