az.

Programming Languages.

A task by Professor Giselle Reis.

Why did we move from punch cards to programming languages, and what does this say about the purpose of programming languages?

With punch cards, the user had to write code on paper, debug it mentally, and then physically carry the card and load it into the operating computer. If anything went wrong, this exhausting process had to be repeated in its entirety. Computer programming with its languages solved the primary problem of punch cards: it reduced what had to be an intensely precise, lengthy procedure into programs that could be written, debugged, and checked digitally on the same device. This proves that programming languages were a shift towards making coding easier, and their significance lies in the way they improved programming capabilities without compromising on convenience.

Why do we need so many programming languages?

Developing programs is an incredibly broad activity – it can range from building graphical interfaces for a game to creating highly specific if-cases for a statistical model. That’s why we need multiple programming languages: they serve different purposes, environments, and preferences. For instance, a hypothetical one-size-fits-all language might not contain specific cases required for a high-level developer, and simultaneously might end up being frustratingly complicated for a beginner programmer.

What are some drawbacks of a programming language you use?

As someone who spends most of his time working with Python, I’d say that beyond its status as a beginner-friendly language, it does get confusing when you hop into the specifics. For instance, it’s pretty inconsistent with implicit type conversion, and you might spend an hour wondering where your integer became a float. Additionally, while this is an issue for most languages, I do think that the fact that it uses binary floating-point arithmetic can be a nightmare for someone who isn’t familiar with the feature (how is 0.1 + 0.2 not 0.3?!).

If you were going to create a new programming language, how would you do it and what would you define?

If I were creating a new programming language, I would probably start by analyzing what tasks it’s meant for and who are the target users. Based on those variables, I would adjust the content and complexity. Regardless of the utility, I would certainly put quite a bit of effort into recognizing what might be the most common use cases of the language and define as many relevant built-in functions and modules in order to minimize repetition for the users.

Here are some links for a deeper dive into these topics!

The ridiculously complicated way punch cards worked
Why on Earth are there so many programming languages? (a longer version)
The incredible journey from punch cards to Python