Professor Giselle: Programming Language

1. Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

Until about the mid-1908s, most computer programs relied on punch cards for their programs–where disk storage was generally very low and simultaneously especially expensive. Computer software moved on to a reliance on programming languages as a result of advancements in disk storage and cost in addition to the fact that a large number of punched cards were required as an input in order to achieve any semblance of a program. As such, a heightened sense of efficiency and advancements in capabilities made punch cards obsolete. In this regard, punch cards and programming languages were merely tools–once a more accessible and efficient method was identified, changes were made accordingly.

2. There are hundreds of different programming languages out there. Why do you think we need so many?

From C++ and Java to Ruby and Python, hundreds of different programming languages saturated the market. As opposed to simply being identical alternatives, each programming language presented different advantages, and disadvantages. In this regard, so many programming languages were needed through their ability to act as the best ‘tool’ for a given task. Not just that, but programming languages had varying levels of complexity. In this sense, one would be able to identify what programming language they should use based on not just the context of what they are trying to achieve and program through said language, but also to identify one which was accustomed to their capabilities.

3. What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.

Currently, the programming I am using–thanks to 15-112–is Python. While it has been identified as a good programming language for beginners to use, that does not mean it is free of any flaws or drawbacks. Namely, this is related to the programs ability to execute tasks–referencing the fact that Python is generally slower than programming languages such as C++ in addition to its high memory consumption and weaknesses in terms of mobile app development. As a result of this, it is recommended that Python is generally used for simpler tasks. When it comes to making a program which is efficient, while Python’s simplicity is a benefit, it’s tradeoffs in terms of speed and high memory consumptions severely limit it.

If I were to make changes to Python, I would potentially work on implementing more paradigms and ‘modes,’ which seek to alleviate some of the issues in terms of its high memory consumption as a result of its flexibility in databases. While this would limit certain aspects of the language, it would allow the language to not be as intensive.

4. If you were going to create a new programming language, how would you start? What do you need to define?

If I were going to create a new programming language, the first thing I would start with identifying is the purpose of said programming language. In this regard, I want to identify what kind of programming software field I would like my programming language to be designed around. While it should also be usable more generally, allowing it to be more specific to a certain field gives it a proper area in the market and could potentially act as a solution in an area that was once more ambiguous and did not possess an identified programming language that was best suited for the task.

From then on, all involvements–regarding things such as syntax and the libraries–would be designed from the standpoint of this initial purpose, allowing me to create a programming language which presents specific strengths, and specific weaknesses, in addition to aiming towards identifying paths which would seek to make sure that the language is as efficient as possible without sacrificing its capabilities given its purpose.