28 points

C++ because you have multiple versions, you can write in different styles (C, OOP, functional, meta-stuff, very low level like assembly, very high level like Python), it has undefined behaviors, and you can waste your whole life optimizing code.

permalink
report
reply

you can waste your whole life

chuckles I am in danger

permalink
report
parent
reply
39 points

Depends on what you already know.

Functional languages like Haskell, Clojure or Erlang have a reputation of being hard to grasp.

Rust’s borrow mechanics are hard for some people at first, especially because it’s very unique to the language.

Javascript can be frustrating because it also has some rare features among popular languages, and uses the same keywords for different concepts. It’s not bad at all once you let go of your assumptions and dedicate the time to understand how it works under the hood.

C++ is also notorious for being hard but I haven’t used it for a very long time so I can’t say anything about it.

permalink
report
reply
6 points

Clojure : if lisp had an illegitimate baby with java. Add to it the pain of setting up fireplace in vim or having to use emacs. At a former employer we had one area in closure. I could read it without much difficulty but damn if it didn’t take me weeks to write or update it

permalink
report
parent
reply
8 points

For Erlang I would say that the hard part is not the language itself (maybe a bit because it is influenced by prolog) but because of the mental model. Using concurrency and parallelism as core concepts of the language and understanding that you don’t need a lot of the external tools you would with the more mainstream languages is what’s hard imo.

permalink
report
parent
reply
2 points

Yeah I bet, I’ve always wanted to learn Erlang. People always speak to highly of it. The guy that made Sonic Pi was saying he wished he would’ve used it because Sonic Pi involves a lot of music loops playing at the same time and stopping individual ones and modifying them etc and because so many of those concepts are baked in he said it would’ve been nice

permalink
report
parent
reply
11 points

Javascript can be frustrating because it also has some rare features among popular languages, and uses the same keywords for different concepts.

I don’t think those are the reasons JS is frustrating.

permalink
report
parent
reply
52 points

Brainfuck

permalink
report
reply
16 points

Actually one of the few languages you can learn in its completeness in less than a day, so I wouldn’t really say it’s “hard to understand”. More like hard to read and understands programs written in it.

permalink
report
parent
reply
6 points

You have a point

permalink
report
parent
reply
31 points

Perl is a write-only language.

permalink
report
reply
4 points

I love perl. 20y on I still think in perl.

permalink
report
parent
reply
8 points

You can write clean Perl easily. But it’s maybe a bit easier to write illegible code in Perl than in most other languages. It’s all up to you though.

permalink
report
parent
reply
9 points
*

I am just regurgitating one of my favorite Perl jokes for a laugh. Though for me the joke contains some truth. Most of the Perl code I’ve ever seen is pretty impenetrable for non-Perl programmers. I quite literally have returned to my own Perl efforts after just a couple of weeks and had some trouble working out what the code is doing (in ways I do not experience with other languages).

When Python was trying to unseat Perl, that in my view was reason alone to prefer it: I didn’t know Python but I could read Python. Though at that point Perl had the benefit of loads of libraries and ubiquity, and Python hadn’t got there yet. But it was enough to have me cheering for Python’s success at the expense of Perl. I get that Perl has many virtues, but they’re nullified by the ugliness and relative inaccessibility of its code in my eyes.

I really hate the magic side-effect variables where you do a pattern match or something and then various obtusely named variables have meaningful values with relation to the last match. To me that’s just flat out bad coding, and it’s built into the language.

The above was my second-favorite Perl joke. My favorite being:

Perl is the vise-grips* of programming languages. It’s a tool that can do most jobs, and it’s the wrong tool for all of them.

*BrEng: mole-grips

permalink
report
parent
reply
1 point

Those magic match variables from regexen weren’t very legible if you weren’t a little familiar with them, but they were super useful in lots of cases. Perl could be a godsend to quickly parse lots of text.

permalink
report
parent
reply
8 points

No one has mentioned COBOL yet, but COBOL.

permalink
report
reply
5 points

Cobol wasn’t that bad… the use of line numbers was weird but at the time it wasn’t unique either. Assembler now… that was a bitch… the operations weren’t exactly intuitive and playing with registers wasn’t my thing. But I could pickup cobol if I was starving no problem :)

permalink
report
parent
reply
3 points

Assembler or assembly? Just curious because in my computer engineering course we had to create a C based computer that used assembly.

permalink
report
parent
reply
4 points

TIL in English it is called assembly 😅 We had C in 2nd year, first was only cobol, assembly and pascal. Fun times :)

permalink
report
parent
reply
6 points

The college I went to taught COBOL in 2 mainframe courses, and as far as I’m aware, they still do.

It was either you like it, or you absolutely despise it. It wasn’t all the difficult, but it is very different than your standard java, C#, C++, etc, so the syntax really throws people off.

permalink
report
parent
reply
4 points

I remember reading about COBOL devs being able to earn pretty solid incomes. I thought, “Let’s check this out.” I found a site that did common things in different languages and compared them. Reverse string in ruby. 1 line. Reverse string in COBOL. 40-50 lines. “Ehh… Maybe I don’t want to learn this after all.”

permalink
report
parent
reply

Programming

!programming@programming.dev

Create post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



Community stats

  • 3.2K

    Monthly active users

  • 1.8K

    Posts

  • 30K

    Comments