Programming Languages part 3
A student asked me: “How many computer programming language exist today? Which one is the best? Is it possible to use one computer language for all applications? What language do I need to know?
There are probably more programming languages than spoken languages in the world today. Every few months, someone creates a programming language somewhere. Programming language has evolved from the first generation machine code language of o and 1 to second generation categorized as “Assembly languages” where the code can be written and converted into a machine code by a process called assembly. The third generation programming languages have several grouping: Imperative languages such as Cobol, Fortran and Pascal; Object-Oriented Languages such as Java, C++, and Smalltalk; Functional languages such as Lisp and ML; and Logic Language like Prolog; Today, students are also familiar with the fourth generation languages as they are designed for special purposes such as SQL for data queries; Powerbuilder, Delphi, Focus, and Access for database applications; Visual basic and tcl for prototyping; and html and javascript for world-wide-web domain.
There is no “best language” as each serve a purpose and contribute to the technology at that time. When I was in school, I learned Fortran and Assembly languages but when I started to work, I have to learn Ada and I thought Ada was very good, especially in the embedded applications. When C and Unix come along and allowed me to do so many things, I though this language would be perfect but then everything changed again. For every generation of programming language, there are something better, much improve over previous one. I am sure there are better things to come in the near future too.
Of course, it is possible to use one language to write software applications. You can do almost anything with machine code language. Programming language is created for certain purpose and better language choice does make a difference is in software maintenance, performance, and reuse. As software engineers, your key considerations in every project are cost, schedule, and quality. It does not matter which programming language is used. Sometime, customers require specific language in the project but as an option, you may want to consider the skill level of your developers in your company. It is better to use a language that your developers are already good at. The cost of learning new languages and the time to master them may not be suitable for your projects. Of course, you may select a language that best suits the domain of your application. For example, Cobol is better with business application and Java would be better for web application.
As software engineer, you probably learn C, C++, C# or Java in school. They are very popular programming languages today but language does change over time, an experienced software engineer should be able to learn a new language easily, and I am sure you probably learn several new languages in the next few years
Sources
- Blogs of Prof. John Vu, Carnegie Mellon University