Popular and Trending Programming Languages for 2021
The words “software engineer” is often an umbrella term when it comes to the different types of work one does. They may work with web development, gaming, mobile apps, robotics, data analytics, the possibilities are endless because of how ubiquitous software is in the world. All of these jobs require tools for problem solving and tools in this case would be programming languages. There are many languages all with their own unique strengths and weaknesses, with Wikipedia listing around 700 languages on their page. Now that’s an absurdly high number, and can be intimidating for a novice who is interested in diving into the field. With so many options, they may not know where to begin, and which languages would better align with their interests! In this blog post, I’d like to highlight some of the more commonly used languages and break them down at a high level so it will be easier for beginners to map out their approach to the massive world of software.
Javascript
According to Microsoft’s Github data, Javascript is the most popular language as of the end of 2020. Javascript is an essential language for web developers, with all modern browsers supporting it. It is a client-side script which speeds up execution time and its data validation is also done in browser rather than server. The browser will only need to update the selected portion of the page rather than a full refresh. The language allows us to create interactive web pages that can dynamically display information to the user.
It is also a flexible language, in that it used to be primarily a front-end language in browser, but now also has great back-end development capabilities through NodeJS. Javascript has a forgiving syntax compared to languages such as C++, making it an attractive feature to beginners. However, Javascript does have reduced client-side security as the source code is easily accessible. Some well-known sites such as Google, Facebook, Amazon, and Wikipedia incorporate Javascript in their technology stack. Lastly, since it is so widely used, it has many supported libraries and interoperability, allowing developers to embed Javascript in webpages or scripts of other languages. Definitely a great language to start with if you’re interested in web development, it’s the one I’m currently working with!
Python
Right behind Javascript is Python, a language also known as beginner friendly. Its syntax was designed on being user-friendly, possibly the most on this list, with a mantra of “There should be one — and preferably only one — obvious way to do it”. It has been rising in popularity in the world of data science, while R is often favored by data scientists at academic institutions, Python is known as a general language with broader applications. Many programmers have been advocating Python for a great general use language to learn with a lower entry barrier. My colleague with a Master’s in Data Science learned R and Python for his program, but exclusively uses Python in the industry and has not touched R yet.
Python is also being commonly utilized for artificial intelligence, machine learning, and financial analysis as well. With dynamic typing, english-like readability, loose syntactical rules, and comparatively less code compared to other languages for performing identical tasks, it’s no wonder that Python has been on the rise. A few weaknesses are that Python is slow to execute, memory consumption, weaker in mobile computing, and lacking client-side compared to its robust functionality server-side. This should not be a deterrent as Python is still a very popular language and is used in sites such as Netflix, Spotify, and Instagram.
Java
Java was designed to be a loosely coupled language, so that an app written in Java can run on any platform that supports it, known as Write Once Run Anywhere (WORA). Its conception stemmed from programmers trying to create an alternative to C++. They wanted a language that was easily portable, novice-friendly(perhaps not as much as Python), and had automated memory management. The end result was Java, which has current day strengths in enterprise computing for finance and the Android mobile OS.
Enterprise computing refers to business-oriented IT for a company’s operations. It includes database management, relationship management, analytics, and various functions a company may need. It’s usually seen as a collection of the software solutions to business problems such as resource management and streamlining processes. Java’s ability for distributed computing allows for multiple computers on the same network to work in unison for these tasks. It also has no explicit pointer and a built in security manager that many tout as an advantaged. Additionally, Java has multi-threading which allows for many tasks to be performed simultaneously.
It is considered slower and more memory intensive than natively compiled languages like C++. It uses a garbage collector for memory management, and the collector can take up a large portion of your processing power. In the above photo I have shown that Java requires an object to perform “Hello World” while Python can do it in just two lines, so it can be considered as verbose. However, this does not detract from the usefulness of Java, with LinkedIn, Android, Ebay, and almost all banking software built on Java.
Golang
Go is one of the younger languages on this list, being developed by software engineers at Google and released in 2009, with a very recent rise in popularity. It was designed to be an efficient, readable, and more secure language for systems programming (designing computer software). They based it off of C, retaining much of the same functionality but with a less steep learning curve. Being a compiled language, it has stronger performance, fast runtime, and utilizes resources of a processor more efficiently. It works well for distributed systems that are located on different networks and exchange information between each other. Go also has gained uses in machine learning and data pipelines, in part due to having such a powerful parent (Google) promoting and supporting its usage.
While Go has many standard libraries, it does not have its own for graphic user interface and will require more effort to connect a library with your own project. It also doesn’t support generic programming the way the previous 3 languages do so it will be difficult to reuse code in Go. I believe that with Google backing it, Go has a bright future and will continue its trending popularity. Examples of companies that use the language are Google, Uber, Twitch, and Soundcloud.
C++
C is a language that first appeared in 1972, as a low-level procedural language, while C++ built upon those foundations to incorporate procedural and object-oriented programming. With derivations from one the older and more popular languages, C++ has many uses, being known as THE language to learn back in the day if you desired a program that would run smoothly. It has wide support, being released in 1983 and is a powerful compiled language with great runtime. It has many uses in high performance client/server applications, video games, device drivers, embedded software, and mathematical modeling to name a few. Being a multi-paradigm language, its 3 pillars are generic, imperative, and object-oriented. Generic refers to having a single idea that can be used for several purposes. Imperative explicitly tells a program through statements in order to change its state, compared to declarative that expresses the logic without describing the control flow.
C++ also gives the user total control over memory management through dynamic memory allocation with pointers(no garbage collector like Java) so there is more responsibility on the programmer. With greater responsibility, there is also finer control. It is compatible with C, therefore allowing it to be used for low-level programming as well as having great scalability for large projects. On the downside, C++ is not known for being very secure with its pointers (which can cause memory issues if used improperly) and friend functions. Additionally its syntax is more rigid and less forgiving especially for beginners, becoming quite complex in larger applications. Adobe systems, Microsoft products, Windows OS, MySQL, and Youtube have their foundations in C++
Swift
Swift is in a way similar to Go, it was created by Apple in 2014 and is used for iOS/mac OS applications. On the flip side of Apple we have Android, with Java being heavily used by Android, until they recently created their own language in 2017 called Kotlin, that is an alternative to Java. Since Apple is a huge leader in the tech industry, Swift is relevant for many products ranging from iPhones, iPad, Macs, Apple watches, and so far. The Apple Store has a large impact as well, with Apple estimating it being responsible for $519 billion in billings just in 2019, and $64 billion in gross sales in 2020.
This language was built for performance and security, with Apple boasting speeds 2.6x faster than Objective-C and 8.4x of Python. It has a simple syntax, concise in its code (less lines for similar tasks), and uses Automatic Reference Counting for all work tracking and memory management. For example, the Lyft app was redesigned with Swift, and only required about 1/3 of the original 75,000 lines of code. It also has a strong typing system and error handling system for safety during production. Since this language is only focused for Apple operating systems, all applications built for these purposes have lower memory usage due to specific libraries being pre-included. The cons of using a new language is that it still needs time to grow to compare with older ones, and there are less coders who understand the language at this moment. It also has a lack of support for any iOS before 7, so it cannot be used for any legacy projects. However, less than 5% of Apple devices run on iOS 6 or earlier and the possibilities of app development under Apple is endless. You can safely assume any newer applications under the Apple brand has its roots in Swift, and they will continue to increase its presence in the industry down the line.
Closing Thoughts
This post was just meant to highlight a portion of popular languages I believe is beneficial for complete beginners to consider learning. The above graph is just one opinion on popular languages, but other websites will give differing results. There are many others that I did not include due to being more specialized such as HTML, SQL, Rust, PHP, and R just to mention a few. .At the end of the day, what you learn will be based on the field that you enter, so there is no one language that is superior to others. A hammer may be better at a specific task than a saw or screwdriver, but there will be instances where the other tools are more optimal. If I were to give a generalized opinion, I think Javascript is a great entry point for web development, and Python being the other language to cover a broader spectrum. Lastly, for a fun closing thought and shed some light on how varied programming languages are, I’m including a link to some very interesting languages. Remember that coding is a long journey and it never hurts to diversify your talent pool to remain competitive, best of luck in your careers!