Programming Languages Easy to Hardest
Programming Languages: Here is my list from Easy to Hardest.
– Looks like pseudocode.
Python is an easy-to learn language and provides a stepping stone into the world of programming.
Serving to be a backbone of Google, this coding language uses fewer lines of code unlike Java and C++. Python basics is helpful in creating a solid base for the student’s programming career ahead of C and C++.
One of the main reasons is the simplicity of its code which makes it easily comprehensible for beginners. Python is reader friendly (English) as it understands that a lot of time is spent on reading code and hence it Python code is readable.
– Almost no syntax to learn. About as easy as python.
learning Lisp (or Scheme) may not yield many practical applications beyond AI but it is an extremely valuable learning experience, as many others have stated. Programming in a functional language like Lisp will also help you think recursively.
– A little harder than python.
Ruby is very easy to learn when compared to other programming languages. It’s even easier to learn if you are already proficient in another language. The main reason is its readability and expressiveness.
– Small, compact language. Easy to learn, but can be hard to apply in some circumstances.
Lots of people learn C/C++ on their own — there are tons of nice books for it. Just stop by the library/bookstore and find something one that looks good to you.
– Object-oriented at it’s most pure
– Is java… is java… is java (Java is middling in every way)
It becomes harder as you learn about the nuances of scope, inner classes, etc. It doesn’t become truly confusing until you fully appreciate the complexity of all the various libraries and some of the less intuitive design patterns that are used by modern Java programmers.
– C with OOP.
C++ is exceptionally difficult to learn because it’s a kitchen-sink language agglomerated over decades with no broader plan or principle. As a result, it has lots of pitfalls that one has to learn to avoid.
Perhaps the most significant problem is that C++, as an OO language, relies on creating and destroying objects constantly, but has no organized approach to memory management: it is up to the programmer to take care of memory management to avoid memory leaks and dangling references. This is hard. Most other OO languages abstract this by using a garbage collector, therefore taking this out of the hands of the programmer, but not C++. The requirement to constantly be aware of memory allocation and deallocation, to make sure that every object is freed once and only once, and to never keep a pointer to a freed object, makes C++ a much more challenging experience than most other languages.
– “Scheme in C’s clothing” this language is made difficult because you think you understand only to find that the truth behind the truth is far different and incorporates needlessly bad syntax and lots of workarounds thanks to java-like syntax masking everything.
– Assembly isn’t necessarily hard, but it requires an even more procedural-like thinking and the instructions don’t look like anything special, so reading the code requires much more work and many more comments.
Assembly is the hardest. Start with something easier first and if you have a nack for programing go to the more advanced languages.
– A functional language with a very steep learning curve.
Functional programming can be somewhat tough for developer that came from imperative languages like Java, C++, PHP etc. I think it’s mostly the learning resources causing the problem, secondarily, unfamiliarity and expectations-setting. Programmers are accustomed to jumping between syntactically different languages that have a lot in common semantically. With Haskell, you’re learning a different way to think about programs entirely. There’s no limitation to what you can do in Haskell, it’s just different at the foundational level.
– Deserving a special mention, this is a pure functional language based on basic lambda calculus. It is also known as painful language.
– Unlike most programming languages, which ignore or assign little meaning to most whitespace characters, the Whitespace interpreter ignores any non-whitespace characters. An interesting consequence of this property is that a Whitespace program can easily be contained within the whitespace characters of a program written in another language, making the text a polyglot.
By the way the above “Whitespace” code will return “Hello World”. Isn’t it bizarre?