There are tons of programming languages out there, but what have developers been using these days (on a regular basis)?
According to GitHub’s annual Octoverse report, the top languages used over 2018 are as follows:
- JavaScript
- Java
- Python
- PHP
- C++
- C#
- TypeScript
- Shell
- C
- Ruby
GitHub, home to over 3.1 million developers and 2.1 million organizations, was recently acquired by Microsoft for $7.5 billion. Since then, it has been going through a period of acceleration with over 8 million users on the platform this year (and that’s more than the combined traffic on GitHub over their first 6 years).
If you take a look at the TIOBE Index for December 2018, (again) you’ll find some of the usual suspects:
- Java
- C
- Python
- C++
- Visual Basic .NET (which is a surprise!)
- C#
- JavaScript
- PHP
- SQL
- Objective-C
As you can see, the Java programming language family, Python, and C continue to dominate this space. This is hardly surprising because of their role in front-end development (JavaScript), big data (Python), and all the supporting tools and libraries (C).
As we head into the new year, what programming languages should developers know? The answer to the question is relative to multiple variables.
However, at Digi117, we have worked with a wide variety of developers and clients across industries, and this led us to come up with our own top five list of programming languages that you should know in the new year.
1. Julia
Julia emerged as one of the leading programming languages in 2018 because of its ability to combine the strengths of various popular languages. For example, Julia boasts the mathematical prowess of MatLab, the usability of Python, the dynamism of Ruby, and speed of C.
“Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing” said Stefan Karpinski (Founding Partner at Julia Computing), a Harvard Mathematics alum with a Ph.D. in computer science from the University of California, Santa Barbara.
In 2019, Julia has a strong case for becoming the go-to language for Machine Learning (ML). Julia’s ML software library, Flux, also makes it much easier to write ML code, simplify training, and provides certain performance benefits over competing frameworks.
However, this doesn’t mean that Python or R are going to be obsolete. In fact, Python is still one of the fasted growing languages among developers (driven by the abundance of ML frameworks and libraries).
2. Python
Python may be decades old, but it still wins the popularity contest among developers. Going forward into 2019, you can expect Python’s influence to keep growing as automation becomes vital to businesses that are looking to scale.
As it’s also highly beginner-friendly, you can bet that more developers will get on the Python band-wagon to meet the demand. In the months to come, you can expect this simple syntax programming language to continue to have an impact on the following:
- Data and analytics
- Web development (with frameworks, libraries and internet protocols like BeautifulSoup, Django, Feedparser, Paramiko, Pyramid, Requests, and Twisted Python)
- Science and numeric applications (with statistical libraries like Ipython, NumPy, Pandas, and SciPy)
3. JavaScript
Slowly catching up to Python in popularity is JavaScript. While it was initially famous for front-end development, it can now support backend development and both full-stack web and mobile app development.
This means that JavaScript can now be used to build the following:
- Desktop apps
- Mobile apps
- Server backends
- Web apps
The growing popularity of JavaScript can be attributed to NodeJS, React, and Vue, which along with the MEAN stack, have been rapidly adopted by the planet’s leading companies.
According to Robert Duchnik, author of jQuery Plugin Development In 30 Minutes, “in my experience, requirements change quite often, or new situations will arise that weren’t anticipated at the start of the project. If the situation can be addressed with a plugin, I just whip open the standalone plugin page, make the updates and pop the new plugin back in. Because the plugin is self-contained, it’s easy to recreate the problem, fix it, and get it back into the codebase.”
4. Go (Golang)
Go is an open-source language that was developed by Google to improve the programming productivity within the company. In other words, Google executives wanted their software engineers to achieve much more when coding.
To realize this goal, Go leverages powerful features of other languages while discarding the weaknesses of those same programming languages. For examples, Go takes advantage of the productivity and simplicity of Python or JavaScript along with the static and efficiency of C++ or Java.
Former Senior Engineer at Google and current CTO at Aljabar, Inc., Petar Maymounkov said “I have reimplemented a networking project from Scala to Go. Scala code is 6000 lines. Go is about 3000. Even though Go does not have the power of abbreviation, the flexible type system seems to out-run Scala when the programs start getting longer. Hence, Go produces much shorter code asymptotically.”
As microservice architectures are adopted across industries, the popularity of Go will grow exponentially. This can be attributed to the fact that containers like Docker and Google’s Kubernetes are built using Go.
In recent months, data scientists have also started to turn to Go to benefit from its overall performance (especially working with data generated by the Internet of Things or IoT) and its ability to seamlessly transition from a laptop into full production.
5. B#
When we talk about programming languages, for the most part, we discuss large system languages. In comparison, B# is a small but highly efficient embedded control language that is rapidly coming into prominence because of its impact on IoT.
Whenever you have to work with an embedded virtual machine, B# is the go-to language of choice as it can run on a wide variety of platforms with just 24k of memory. When compared to the overhead on other packages, this is far less.
Mirroring C, B# keeps it all minimal but retains the embedded project-required features. At the same time, this IoT favorite also supports critical real-time control functions.
If your IoT project is small and simple (and not as complex as Raspberry Pi), then it’s well worth the effort to learn B#.
The type of programming language you’ll be using in 2019 will depend on the project, the company, and the industry.
However, if you don’t have any experience with some of the languages listed above, it’ll be a good idea to research and explore what it can offer you and your career going forward.