POLL RESULTS: Assembly is officially crowned the language with the steepest learning curve
There are hundreds of programming languages out there. Some new, some well-established, some built for reliability others for fun. But which are the hardest to learn and why? In this article, we take a look at the poll results for some of the, arguably, most difficult programming languages, as our readers ranked them.
The JAXenter community has spoken!
At the beginning of the month, we asked you to give us your opinion on which programming language has the steepest learning curve, among a number of choices and the results are in.
Unsurprisingly, Assembly is crowned the most difficult language to learn on a beginner level followed by Haskell. To be honest, I would have expected Haskell to rank first, given its very unique nature, but apparently, I underestimated the difficulty of Assembly!
Here are the full results:
The ‘other’ languages option also rank relatively high and made it into the top 5. We’d like to know what are there ‘other’ languages you feel have a steep learning curve for beginners so feel free to comment your answers below or let us know on Twitter.
The discussion so far
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.
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!
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.
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 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.
- Classes & object
- access modifier
- abstract class
- exception handling
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!
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).
this behavior, or event loop were, and possibly still are, a pain in the neck!
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!