The cost of a language is dependent on many factors and criteria. Starting from the basics, there’s the cost of a new generation of programmers learning a programming language, which is a function of simplicity and orthogonality of the language. It even includes learning a new language by seniors. It is undeniable that no matter how professional we are, we cannot know every language.
Secondly, there is the cost of writing programs, which a function of the writability of the language. This cost is also linked to programming environments. A good programming environment affects both the cost of training programs and writing programs in a language positively. Historically, high-level programming languages have been created to reduce the cost of creating software.
Thirdly, there’s the cost of execution. Different languages exhibit different behaviors due to language design. In a language that requires many runtime type checks fast code execution would be impossible, regardless of the quality of the compiler, because run-time type checking is a time-consuming and expensive process, such as in Java.
There’s also a correlation between the cost of compilation and the speed of execution.
In computer science, program optimization, code optimization, or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources
If the code is not optimized at all, the compilation will be faster depending on the compiler, or conversely, compilation in optimized code will take longer. That’s why for new programmers, who run their programs often, there is no need for optimization, but for large software, we can say the exact opposite. I attribute this to the fact that different compilers run on different hardware and have different memory space requirements.
Then comes the cost of poor readability. If a designated program fails at critical and noncritical moments, and the correction of these errors involves a revision of old materials or more than half of the code, then the cost of that program is high. It can also lead to business collapse and even false cases. For example, any mistake of the X-Ray machine can lead to wrong results.
Finally, the characteristic that affects cost is maintenance. When we say maintenance, we mean both corrections and modifications to add a new function. As for why this is associated with readability, if the author who wrote the program has to make changes to the code over time and has difficulty understanding what he has written, it will cost him dearly.
The importance of software maintainability cannot be overstated. It has been estimated that for large software systems with relatively long lifetimes, maintenance costs can be as high as two to four times as much as development costs (Sommerville, 2010).
Other criteria influence the evaluation of a programming language:
Portability is the transfer of a program from one implementation to another, which is impacted by the degree of standardization. For a language that is not standardized, the migration process is difficult. I would also like to say that standardization is a complicated and time-consuming process too. So, it took about 10 years to standardize and approve the standardization of C++. Generality and well-definedness can also be added to these terms. Generality is the applicability of a program’s wide-range of applications, and well-definedness is the completeness of an official defining document.
In conclusion, I would like to say those language evaluation criteria can, of course, be evaluated differently in the eyes of different people. But programmers are usually concerned about writability first, and then readability. Finally, if we look at this article, we can see the effects that will affect the Cost below.
- Training- Simplicity, Orthogonality
- Writing- Writability
- Execution- Efficiency
- Poor Readability
- Maintenance- Readability
- Sebesta, R. W. (2019). Examples of Multiple Selectors. In Concepts of programming languages (pp. 53–55). NY, NY: Pearson.