If you’ve been an inhabitant of the planet known as Earth for more than a decade or two, it’s very likely you’re familiar with just how rapidly technology is growing. In fact, in the 1920s, only 35% of households in the United States has electricity. Today, in the 2020’s we’ve got Self-Driving cars, the entire sequence of the human genome, and artificial intelligence. One might conclude that as a species, we humans have been pretty busy in the last century.
At the base of our evolution lies computers. These powerful tools enable us to achieve complex computations at an ever-growing pace. And at the heart of computing lies the languages we’ve created to engage them. Programming language at its core is a system of notation for writing computer programs. Basically, programming language allows us to create an instruction set that tells the computer or machine hardware what to do.
A bit of history
The earliest programming languages were machine languages that consisted of sequences of binary instructions that could be executed directly by a computer’s processor. Functionally, machine languages were difficult to read and write, and programming errors were difficult to detect.
Assembly languages were developed to make it easier for humans to write machine code. Assembly language consists of symbolic representations of machine instructions, making it easier to read and write programs. However, assembly language was still closely tied to the underlying hardware architecture, making it difficult to write a “portable code”.
In order to make code portable from machine to machine, high-level programming languages were developed. Programs like Fortran, Cobol and Basic were created to provide a higher level of abstraction than assembly language, making it both easier to write the code, and making the code more portable.
In the 1980s object-oriented programming (OOP) languages began to appear. Languages such as C++ and Java enabled developers to organize code into reusable objects, making the code easier to maintain over time, as well as continuing to enhance the portability of the code.
Then came scripting languages such as Perl and Python. These were developed to automate repetitive tasks and enable quick prototyping of software systems. Scripting languages differ from earlier languages because they can be executed directly by an interpreter without the need for compiling the code.
Why so many programming languages?
Because each language is designed to solve a specific set of problems, and each language has its own set of strengths and weaknesses. As computer sciences continue to evolve, new programming techniques have emerged, leading to the development of new languages, and updates to existing ones.
Some programming languages are designed for very specific purposes such as web development, data analysis or even artificial intelligence (AI). Technology itself and the advancement of computing systems and components is also driving an evolution in programming languages. Each time a more powerful system is developed, a language is created or modified to take advantage of the advancements and
tools brought about by the new computing hardware and components. Yet another driver in the evolution of programming languages lies in standards and legal. Specifically, new laws and regulations aimed at network and data usage continue to power the evolution of programing languages.
The bottom line here is that the diversity of programming languages reflects the diversity of the tasks that developers need to accomplish. As technology continues to evolve, so does the ever-growing list of tasks we require.
So, what’s next in programming languages?
Programming languages will continue to evolve and to grow as our hardware and computing systems continue to evolve. Please note that this list is not inclusive. These are just some of the languages that caught our eye. Rust
Rust is a systems programming language that focuses on performance, reliability and memory safety. Developed by Mozilla, Rust is designed to be fast and efficient while also providing strong guarantees against common programming errors like null point dereferencing and buffer overflow. Rust is particularly well-suited for building low-level applications such as operating systems, game engines and web browsers.
Kotlin
Kotlin is a statically typed programming language developed by JetBrains that is gaining popularity as a more modern alternative to Java. Kotlin targets the Java Virtual Machine (JVM) and designed to be more concise, expressive and even more safe that Java. It is rapidly growing in popularity within the Android app development community, and is also very well suited for server-side development.
Swift
Swift is a programming language being developed by Apple for iOS, macOS, watchOS and tvOS developments. It is designed to be safe, fast and modern, with a focus on developer productivity and ease of use. Swift is an excellent choice for both novice and experienced developers as it is reportedly easier to learn than other languages.
Julia
Julia is a high-level, high-performance programming language for numerical and scientific computing. It is designed to be fast and efficient while also being easy to use and expressive. Julia is gaining popularity due to its ability to interoperate with other languages such as Python.
TypeScript
TypeScript is a superset of JavaScript developed by Microsoft that adds optional static typing, classes and additional interfaces to the JavaScript language. It is intended to safely add more scalability to large-scale JavaScript projects and developments, while also making them more manageable and more productive.
Go
Go is a programming language developed by Google that is designed for fast, efficient and concurrent systems programming. It is most often used for building distributed systems and network services.
Other factors to consider
Programming languages are developed based on need. Need is driven by a variety of factors, and at the top of that list is our continued technological evolution. Regardless of where technology takes us next, you can be sure that programming languages will continue to evolve, allowing us to continue to shape our path and create technologies to serve our endlessly growing demands.
It is also important to note that while these languages presented in this paper are gaining popularity currently, continued advancements in technology will continue to shape them, making them even more popular over time, or quite possibly, obsolete.
Sources
Brown University | A History of Computer Programming Languages https://cs.brown.edu/~adf/programming_languages.html#
National Institutes of Health | First complete sequence of the human genome https://www.nih.gov/news-events/nih-research-matters/first-complete-sequence-human-genome#
Gizmodo | How the 1920’s thought electricity would transform farms forever https://gizmodo.com/how-the-1920s-thought-electricity-would-transform-farms-510917940#
Wikipedia | Programming Language https://en.wikipedia.org/wiki/Programming_language
Wikipedia | Object Oriented Programming https://en.wikipedia.org/wiki/Object-oriented_programming
Rust
Kotlin
Swift
https://developer.apple.com/swift/
Julia
TypeScript
https://www.typescriptlang.org/
Go