The Language List, which was created back in 1991, contains collected information on about 2500 computer languages to date! The TIOBE index, on the other hand, keeps track of the top 250. The list is enormous and the options endless. But as a beginner developer, where should you start? Which languages are hard to learn and which ones should you avoid altogether?
The debate on the different learning curves among languages is well-known and ongoing, so I do not aspire to have reached an enlightened conclusion to the discussion. However, I would like to present some arguments on which are perceived to be the most difficult languages and why.
If we simply speak about the difficulty and level of confusion of a language, then esoteric languages like COW, Brainf*k, or Whitespace definitely make a strong case as the hardest and most confusing programming languages to learn. But the issue here is that languages like these are designed to be difficult, if not impossible, to use and they are indeed barely used.
When trying to become a developer, I hardly doubt the fact that you will be expected to learn Brainf*k in order to get a job! While looking at the most well-established languages out there that are used in largescale applications, like C/C++, Java, JavaScript, PHP etc, a beginner developer is sure to wonder which language should be first priority, which has a steep learning curve, or which should be avoided until someone has a more in-depth understanding of programming in general.
SEE ALSO: Which technologies will dominate in 2019? Containers and serverless go head to head
But even the arguments on what we consider as ‘difficult’ or as a ‘steep learning curve’ are conflicting and extremely subjective. Frankly, what is difficult and what is not depends on you – your understanding, your capabilities, skills, and experience. Learning a new language is an entirely different process for someone who has just started digging into the world of programming and someone who has years of experience, even with an entirely different language. I might even argue that when we talk about various programming languages, the differences are not as fundamental as in spoken languages but rather, I would dare to compare it to learning different dialects, rather than languages.
What’s more, some might argue that it is not the language itself that can make for a steep learning curve but rather the ecosystem. Learning a language is one thing, learning to navigate through an entire ecosystem, identify, learn and use the right tools is a whole other story!
The measuring
There are, however, some commonly accepted criteria we could use in order to determine which are the hardest languages to learn at a beginner level.
C/C++
Some argue that these two are each more difficult than the other in different ways. For example, C will really force you to understand the computer at a lower level, nonetheless, it is a simple language that doesn’t seem that difficult. On the other hand, C++ has a high level of abstractions but at the same time it is a huge language and learning and, more importantly, master it will definitely be a challenge.
Java
Java is among the most well-established and widely used programming languages. Learning the basics of Java is neither hard or easy, I would say. But reaching a level where you can actually do much with it, that’s another story. In order to be able to completely understand and use Java, there are a number of different topics that are essential. For example,
- Data types, variables and user input.
- conditional statements.
- Branching
- Loops
- arrays
- methods
- Classes & object
- static
- inheritance
- packages
- access modifier
- constructor
- polymorphism
- abstract class
- interface
- exception handling
- collection
Keep in mind, that these are not the only topics essential in understanding Java. The list can be quite lengthy. And when it comes to the Java ecosystem… wow! Good luck with that!
PHP
Generally, PHP is considered to be a beginner-friendly language but there are so many things that can go wrong, easily and silently, never showing up on your screen! As a redditor argued, PHP may be easy to use but it’s easier to misuse and create insecure code with it. So, PHP makes a very precarious choice for a beginner, since the learning curve for actually learning it being able to manage everything that can go wrong, takes a lot of experience (and patience).
JavaScript
Now, JavaScript is generally considered to be fairly simple and easy to grasp. However, using JavaScript for complex applications can be quite a headache. More specifically, pre-ES6 JavaScript was far more inconsistent making it particularly difficult to use. Concepts like prototypal inheritance, function as a constructor, this
behavior, or event loop were, and possibly still are, a pain in the neck!
Haskell
If you are not familiar with functional programming, you’re in for a treat! Since you cannot program imperative algorithms in Haskell so you have no other option but to learn functional algorithms and functional decomposition! Haskell has arguably a pretty high learning curve since it is inherently different from other widely-used languages like JavaScript or C/C++. I don’t want to discourage you from learning it but don’t expect to develop elaborated programs and reading files over the weekend.
No matter how many lists we make and who many arguments we present, at the end of the day, what language you choose to learn depends entirely on what you want to do with it. Which leaves only the issue of how determined you can be in learning the language that will help you built your dream project!
But for now, let’s have a quick poll to determine what language you find more difficult. Either you are a beginner and just digging into the basics of programming or you are a highly experienced developer and learning a new language comes naturally to you, your opinion counts!
Note: There is a poll embedded within this post, please visit the site to participate in this post’s poll.
The post Steep learning curve or lack of commitment? Which are the most difficult programming languages to learn and why? appeared first on JAXenter.
Source : JAXenter