What is the most difficult programming language to learn?

In everyday practical use of a language that real people will probably encounter at some point, I'd say C or C++ is actually the most difficult - not necessarily to get going initially, but to ultimately master, or at least achieve a level of sophistication/elegance.

I will agree, I do not like the syntax of C and C++, but maybe thats because I was brought up with VB and then transitioned to C#, it could have been otherwise.Heck I still enjoy c64 programming!
 
I know it isn't a programming language per se, but I think CSS is probably the most difficult computer language to get good at.
CSS causes a lot of trouble for what is something that should be quite trivial.

css-is-awesome-e1428605811188-484x500.jpg
 
There are many obscure languages created as exercises in futility that are really hard, the moo language for instance.

However, out of all the ones I have ever coded with I would rank them as such:
Easy:
Python
Turbo Pascal
Basic (for simple applications)
unix scripting languages (KSH, etc)

Medium:
PHP
SQL
Java
Delphi
C++
C#

Hard
Perl
smalltalk

Really hard:
MATLAB
Assembler code
 
There are many obscure languages created as exercises in futility that are really hard, the moo language for instance.

However, out of all the ones I have ever coded with I would rank them as such:
Easy:
Python
Turbo Pascal
Basic (for simple applications)
unix scripting languages (KSH, etc)

Medium:
PHP
SQL
Java
Delphi
C++
C#

Hard
Perl
smalltalk

Really hard:
MATLAB
Assembler code

Perl also came to mind. Assembler - haven't ever worked with it outside of a microcontroller, where it wasn't too bad (considering the scope of the software running on the MCU was typically not as big as a desktop application), but I could see it being a nightmare for larger applications.
 
There are many obscure languages created as exercises in futility that are really hard, the moo language for instance.

Yeah, brainf*** and whitespace both fall into this category. They're categorised as "esoteric" and aren't used in practice.

Hard
Perl

Perl is actually pretty easy to write. Trying to read it again though? Not as easy. Especially if it was written by someone else. There are many ways to do the same thing in Perl, which adds to that challenge.

Really hard:
MATLAB
Assembler code

I can see the logic for Assembly here (see what I did there?) but Matlab? It's a scripting language, IMO in the same order of difficulty as Python. Sure, if you want to go into it hardcore, then there can be some challenging things, but learning the basics is not hard. It can be used even by people who aren't programmers, and often is, scientists or engineers for example who need number-crunching done.

Assembly isn't actually one language, it's a set of mnemonics for machine-code instructions which varies from processor to processor. The assembly code for your PIC-18 is definitely not going to be the same as for your AMD-64. That being said, especially if you're working with microcontrollers, assembly isn't actually that difficult to learn. If you're close to the silicon, you can actually gain a lot by having good control over what's happening. That being said though, for non-embedded applications, assembly doesn't lend itself well to any kind of abstraction, so collaborating with a team on a large project will be tough if not impossible.

In these instances, it's often used with the "asm" keyword in C, where some specific performance-critical components are written in assembly, but then wrapped in C functions for ease of development. The down side to this though is that it makes your code not portable.
 
While I can read this, I find the syntax a little confusing... Elixir (built on the Erlang VM) :
@doc """

Generates a signature for an instagram request. See:
https://www.instagram.com/developer/secure-api-requests/

## Example
iex> path = "/media/657988443280050001_25025320"
iex> params = %{"access_token" => "fb2e77d.47a0479900504cb3ab4a1f626d174d2d", "count" => 10}
iex> secret = "6dc1787668c64c939929c17683d7cb74"
iex> Linxta.Instagram.Client.sig(path, params, secret)
"260634b241a6cfef5e4644c205fb30246ff637591142781b86e2075faf1b163a"
"""
def sig(path, params, secret) do
keys =
params
|> Map.to_list
|> Enum.sort(&keys_descending/2)
|> List.foldl(path, &concat_params_with_pipes/2)

:sha256
|> :crypto.hmac(secret, keys)
|> Base.encode16(case: :lower)
end
defp keys_descending({k1, _}, {k2, _}) do
k2 >= k1
end
defp concat_params_with_pipes({k, v}, acc) do
acc <> "|#{k}=#{v}"
end

On the other hand the documentation IS the unit test, which is pretty amazing
 
Used a language called Prolog, that required a bit of a mindshift to get right.
 
Honest question from someone that is not a developer. Are there people that still use low-level programming language and why?

Just to echo what others have said, since I still use it fairly regularly:
- Performance is probably the most important reason I currently use it. I do try to generate optimal code in C/C++ where possible though, and verify the quality of the code by reading the generated assembly, and massaging the base language if possible.
- Talking to hardware is generally not so much a concern anymore since most devices today use memory mapped control registers, which make them easy to use from most languages (most naturally C though).
- The other reason I sometimes use assembler is for programming hardware that has no compiler for it (either because it's new or so specialized that a compiler wouldn't generate efficienct code).

To answer the OP question, I think C++ (not C) is the hardest language to learn. There is so much depth to it that one almost has to understand deep parts of the specification and/or how the compiler works to fully grok some of the features.

For most imperative programmers though, I would say that learning something like R is pretty challenging (if used correctly - it is still possible to be imperative in R).
 
Last edited:
Assembler sits at the top of my list. Mostly if you want to become proficient. For small stuff it's not that much harder than any other language once you have the concepts down.

When moving from C++ to C# I tripped over my own feet trying to make it difficult. Till I gave up and accepted my overlords hand. Now my soul is sold to M$ V$. Trying redemption with Python.
 
In your opinion, which is the most most difficult programming language to learn? Why?

The problem is not the high level languages BUT the lack of persons being able to think logically and structure a software set correctly BEFORE choosing a language for the sw!

If only the available courses could get back to teaching this and not fall for getting lost in the code, just maybe young sw developers will actually be able to write and develop proper code, regardless of the language.

Assembly language.
Because you have to build every single thing yourself. Languages like BASIC, Pascal, C/C++ etc is much easier to learn since you don't have to write out reams of code just to print "Hello World" on the monitor/printer/smartphone/whatever.

YES! and maybe that is why so few young developers generate quality code --- Because they have not been "forced" to first learn and write a bit of code in an assembler language.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X