DEV Community

Discussion on: Which Language do you Find the hardest ?

Collapse
 
dwd profile image
Dave Cridland

My first language was ZX Basic, and then I started to do bits of assembly (badly) and C. C was my proper first language, and obviously the hardest to learn because of that, but once over the hump of the learning curve, it's surprisingly straightforward - the advantage of a language with minimal tooling, that hasn't changed in decades, is that there are no real surprises when you come back to it.

Modern C++ is great as long as you're doing something that has library support. The moment you go off piste, it becomes a matter of writing your own wrappers around C libraries or something, and there's a lot of old-style C++ around which is more painful to use, because it tends to be written similar to...

Java, which I cannot describe without first making an AbstractDescriptionFactory, deriving a concrete DescriptionFactoryImpl which I'll inject using Spring to generate a DescriptionImpl derived form an AbstractDescription passed as a reference to a Description interface, and by the time I've done all that I've forgotten what it was I wanted to say.

Python is great, as long as nobody tries to be clever. Python allows clever, but when programmers get that glint in their eyes and say, "Oh, I could solve this with a metaclass" it's usually time to run.

Javascript is all clever. I sometimes think that every Javascript program or library has its own style. Honestly I feel lost every time I look at a new project.

Erlang is fascinating. I think all pure functional languages are - it's a bit like programming applications in Sudoku. It's amazingly gratifying when I figure out how to write something vaguely useful, but it feels a bit like writing a novel without using the letter 'e'. It's possible, I'm sure, I'm just not terribly clear on the point.

Oh, and PHP, which is a bit like if someone wrote a language by having all the other languages written up on a dart board, and every time they needed a new facility they threw a dart to decide which language to model it on. There's bits of C, Perl, C++, Java, Python, JavaScript, and all sorts there. And we're talking PHP7 - which is so much better than PHP4 was, were you'd finish writing your code only to find that the hosting provider used a different minor version so it wouldn't run anymore. Learning PHP back then was a constant minefield because the language would shift beneath your feet.

But yeah, my hardest problem now is remembering which arrow to use for arrow functions in Javascript versus Erlang.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

Cool, great.

Collapse
 
kene_nwobodo profile image
Kenechukwu Nwobodo

As for arrow functions, quite a little bit of practice would do.

Collapse
 
dwd profile image
Dave Cridland

The problem is too much practice, in too many languages, in the same day - I end up typing Erlang syntax into Typescript, and C++ into Erlang, and ...

Collapse
 
pg_77 profile image
Perry Grewal

"""Java, which I cannot describe without first making an AbstractDescriptionFactory, deriving a concrete DescriptionFactoryImpl which I'll inject using Spring to generate a DescriptionImpl derived form an AbstractDescription passed as a reference to a Description interface, and by the time I've done all that I've forgotten what it was I wanted to say.""" Whoa this made my head spin.

Collapse
 
ziizium profile image
Habdul Hazeez

Me too!