According to the TIOBE Index for August 2019, Java is still the top functional programming language skill most software development industry professionals are focusing on. C, C++, and Python aren’t far behind, either.
But does this list necessarily mean that Java is the best programming language to learn when you’re just starting out? (Read Top 5 Programming Languages For Machine Learning.)
Even if it is, does it make sense to learn that now if Python or another programming language like Groovy suddenly makes a giant leap as the must-learn language of the present and future? TIOBE reflected a 31-spot jump in the rankings for Groovy (up to 13th from 44th).
Is there or will there ever be a one-size-fits-all language that will become universal amongst all software development strategies?
These answers are better left with the tech experts.
We wanted to consider their thoughts on the present and future of programming languages you should consider before going for that perfect interview at a great tech company, plus what functional programming language is best to learn now.
Here’s what they said.
Python is relatively new and is taking off big time
While there are so many programming languages out there for us to learn, I believe Python has the best potential.
Python is relatively new and is taking off big time. While languages such as VBA are a bit restrictive in what applications you can work with, Python has a lot more functionality and is significantly more versatility.
As we move forward with Big data technologies, Python is likely to be at the forefront — given its ability to work with applications and data. Many companies are adopting Python, such as DropBox, Instagram, IBM, etc.
One major factor that works for Python is that it’s easier to learn than similar languages such as Java. (Read The Debate Between R and Python.)
—Sumit Bansal, Founder, Trump Excel
Elixir is a good choice for beginner developers
Elixir is a young functional programming language with a strong community behind it. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems.
The code runs inside lightweight, isolated processes, which allows for thousands of processes to run concurrently in the same machine. This in turn allows for vertical scaling and uses all of a machine’s resources as efficiently as possible.
The Elixir community has been steadily growing since its first release in 2011, and today it's used by companies like Discord, Pinterest and PagerDuty. Along with the language itself, Elixir-based web frameworks like “Plug” and “Phoenix” have found more and more popularity as the community grows.
Elixir is a good choice for beginner developers looking for their first functional language to learn, as it’s a high-level language. The syntax is often compared to the ever-popular “Ruby” for its simplicity and ease of comprehension.
It is intentionally very beginner-friendly and there are many learning resources available online to check out.
—Uku Täht, CTO, Plausible Insights
A good PHP developer is always in demand
Hypertext Preprocessor (PHP) is definitely the language to learn if you’re looking for a career in web development, it’s the go-to code for creating websites and applications. (Read PHP 101.)
I think we’re safe in saying that the internet is going to be around for a while, so being a great PHP developer will open a lot of doors. PHP is what’s needed to create more complex functionality in websites and apps, and as websites get more complex in design and functionality, PHP is what’s required to make it all work smoothly.
The flexibility of PHP means it’s also compatible with different CMS platforms, so your skills are going to be needed whether your project requires a WordPress, Drupal or other open-source platform or need a custom CMS integrated.
A good PHP developer is always in demand, which means that you are going to have the flexibility to choose the sort of employment that works for you.
Of course, if your dream is to go into AI or machine learning, this might not be the right direction for you. But if you want to work in website and application development, PHP is an essential language to learn, and one which will make you incredibly employable.
—Mike Gilfillan, Lead Developer, Edge Of The Web Ltd.
If C is the ice cream, think of C++ as the sprinkles
Technology is always evolving, and therefore, so is the language that operates it. C++ is the programming language I would recommend if you want to stay ahead of the competitive tech world. While C is one of the most commonly used programming languages, C++ is the elevated version.
If C is the ice cream, think of C++ as the sprinkles: it elevates the experience. You wouldn't want to learn C++ without first having the foundational C mastered. Just like in ice cream and sprinkles example, you can't enjoy sprinkles just on their own, you need to have that ice cream base!
By learning this language, you'll be opening yourself up to a lot of employment options, since it is such a widely used development option. (Read: Functional Programming Languages: Past, Present and Future)
—Rachel Hoffman, Lead Web Developer, WebTek Computer Company
Scala is known for mixing the best of both object-oriented and functional programming worlds
The visible benefits of adopting functional techniques in large applications have caught the eye of the industry in the last five years. Most of the motivation and drive is coming from inside tech giants, such as Google, Amazon, Microsoft and Facebook.
These companies are known for being the birthplace or for backing some of the most popular programming languages today.
Being proficient in a C-syntax language will show employers that you will probably be a quick fit since you'll talk and discuss solutions and algorithms with the existing team using their mother tongue.
You can take advantage of some functional tools using traditional languages, since Java, C#, JavaScript, Swift, and other languages expose some functional structures.
Scala is an example of a programming language that runs on the JVM and is known for mixing the best of both object-oriented and functional programming worlds. Scala might be the best option if you are looking to work with functional programming in a big tech hub in Europe or America, as it is still the most employable functional language.
Some other popular options in the functional programming world are F#, which is developed by Microsoft and a good choice for Microsoft specific stack, Haskell, Clojure, and also Elixir.
—Gustavo Pezzi, founder of programming education platform pikuma
Java is an absolute must-learn programming language, especially for Android development
For someone looking to enter the realm of development in a tech company, Java is an absolute must-learn programming language, especially for Android development. (Read Why Is Java Preferred to Other Languages as a Building Block?)
While Kotlin is probably the most popular (trendy) language right now, especially with Google announcing that it is it’s preferred language for Android app developers, Java is what that language is based on, thus understanding the fundamentals of Java will help a young developer in understanding Kotlin, as well.
More interestingly though is that I think Java is probably more preferred by developers than Kotlin. Personally, I think this is due to the fact that while Kotlin does make the development process more concise, the extra lines of code in Java let you see what is happening at every step which becomes extremely beneficial when debugging an issue.
With that being said Kotlin introduces improved syntax, as well as concise expressions and abstractions. Using Kotlin with Java reduces excessive boilerplate code which is a huge win for Android developers, and provides developers the opportunity to use one integrated development environment (IDE) to develop on all platforms.
—Sanjay Malhotra, CTO, Clearbridge Mobile
The choice of the best functional programming (FP) language to learn should be considered in the context
The choice of the best functional programming (FP) language to learn should be considered in the context.
In software development, there are three types of functional programming languages. Purely functional languages are represented by Haskel and LISP that treat the entire program as a set of mathematical functions.
However, this type of FP languages is not very popular in custom software development.
Then, there are multi-paradigm languages, such as Scala, that naturally support both object-oriented programming (OOP) and FP. Scala runs on JVM and easily interoperates with Java (Java libraries can be accessed directly from Scala).
Scala is widely used in the field of big data development since this is the base language for Apache Spark. LinkedIn, Twitter, Netflix, The New York Times, eBay, The Swiss Bank USB and Coursera employ Scala in their development processes.
Finally, there's a wide set of languages with functional programming approach frameworks, and this type is highly demanded now across various areas of software development.
The choice of the language from this set depends on what you want to specialize in. For example, if its frontend development, Angular2+ and React will be a good choice; in iOS: Swift; in Android: Kotlin.
—Boris Shiklo, CTO, ScienceSoft
Every language has strengths and weaknesses and is the best fit for a certain set of use cases
For many, the programming language chosen by a developer has the same meaning as choosing your religion or politics along with the same vigor in defending that choice.
The reality is that there really is no one-size-fits-all choice for programming languages. Every language has strengths and weaknesses and is the best fit for a certain set of use cases.
Languages can often be trendy and eventually fade off into obscurity once people determine that they were either over-hyped or technology shifts leave them less relevant. When I was a computer science student in college in the 1980's, Pascal was considered the teaching language of choice, eventually being replaced by C, Visual Basic, and Java.
I personally think that C makes a great teaching language for someone wishing to learn computer programming however, I don't think that it should be the only language one learns and the programmer should strive to learn languages that support use cases/technologies that they find interesting.
—David Wood, President/CEO/Founder, Trondent Development Corp.