Research Update — Week 2
We moved from punch cards to programming languages because punch cards forced people to express instructions in the computer's own language i.e. binary/hexadecimal machine code. Punch cards meant that programming was slow and more error-prone which is expected considering number sequences/patterns are much harder to remember and write compared to text commands we are used to today. Also, punch cards required a deeper knowledge of the computer architecture as it involved direct manipulation of memory addresses and registers.
One reason is that programming is used to solve problems spanning a plethora of hardware and software. Therefore, some languages are designed to prioritise or include certain functions which are not necessary in others. Also, some programming languages were developed naturally as a response to development of technology or as an improvement of older and more limiting languages.
Thinking of Python, there are certain nuances that although small may make programming easier. One is the notation of range in for loops. Intuitively as a result of much math, the stop value we would think is inclusive but rather it is exclusive. When the conventions follow what is mathematically intuitive it is much easier to program. Furthermore, another specific example is the assignment of True and False values. Python automatically converts non-Booleans to Boolean values inside Boolean operators, and "empty" or zero-like values as false, and all other values as True. This is confusing to keep track of.
I would start by clearly defining what it is meant for and what its purpose requires e.g. should it prioritise efficiency or accuracy in calculations. I would also define the form and syntax. Although many languages exist, there are certain functions and commands that exist universally, e.g. output, input, add, so it is important to define the way in which these simple commands should be expressed. Other things to consider are the order of operations and the way code is executed. Finally, I would want to pinpoint the functions or implementations unique to the new programming language, and ensure they work and are properly defined within the context they are used.
← Previous: Week 1 — Time Management · Next: Week 3 — P vs NP →