Prof Giselle / PL

Reasons from punch cards to programming languages

There was a need to achieve abstraction, and thus, we shifted from punch cards to programming languages. Such a procedure of writing machine code (binary) on punch cards was laborious, more so, prone to mistakes. That noted, human-readable syntax (like X = 5 + 3) was introduced by early languages like FORTRAN and is converted into machine instructions by compilers. Overall, this mirrors the imperative function of programming languages.

Reasons for hundreds of different programming languages out there

Considering that diverse challenges call for different tools, we certainly need a lot of languages. A "one-size-fits-all" solution does not exist, and we may have observed, for instance, that Python is picked for its ease of use, C++ is selected for its raw performance in game engines, and SQL is only made for effective database queries (Silahian, 2024).

Drawbacks of the programming language you use

Python's performance speed is a major disadvantage because it is an interpreted language, and as such, compared to a compiled language like C, computationally demanding loops in numerical analysis do their work substantially more slowly. That noted, a smooth, integrated "high-performance mode" that has the capability to automatically compile important code segments (say, without having developers utilize a different language like Cython) is what I would like to see (Westring and Svensson, 2023).

Creating a new programming language, how would you start

I would begin the process of developing a new language by outlining its goals, with a great focus on guiding ideals. The following need to be defined:

References

  1. Westring, K., & Svensson, L. (2023). Low-power Acceleration of Convolutional Neural Networks using Near Memory Computing on a RISC-V SoC. Link
  2. Silahian, A. (2024). C++ High Performance for Financial Systems: Build efficient and optimized financial systems by leveraging the power of C++. Packt Publishing Ltd. Link