this post was submitted on 01 Sep 2023
337 points (96.2% liked)

Programming

17308 readers
191 users here now

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 [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 36 points 1 year ago (2 children)

Please don't say the new language you're being asked to learn is "unintuitive". That's just a rude word for "not yet familiar to me"...The idea that some features are "unintuitive" rather than merely temporarily unfamiliar is just getting in your way.

Well i mean... that's kinda what "unintuitive" means. Intuitive, i.e. natural/obvious/without effort. Having to gain familiarity sorta literally means it's not that, thus unintuitive.

I dont disagree with your sentiment, but these people are using the correct term. For example, python len(object) instead of obj.len() trips me up to this day because 99% of the time i think [thing] -> [action], and most language constructs encourage that. If I still regularly type an object name, and then have to scroll the cursor back over and type "len(", i cant possibly be using my intuition. It's not the language's "fault" - because it's not really "wrong" - but it is unintuitive.

[–] [email protected] 14 points 1 year ago* (last edited 1 year ago) (1 children)

If you only know C and you're looking at Python, the absence of curly braces on code blocks is temporarily unfamiliar to you.

But if you only know Python and you're looking at C, the fact that indentation doesn't matter is temporarily unfamiliar to you.

Once you learn the new language, it's not unfamiliar to you anymore.

"Unintuitive" often suggests that there's something wrong with the language in a global sense, just because it doesn't look like the last one you used — as if the choice to use (or not use) curly braces is natural and anything else is willfully perverse on the part of the language designer.

[–] [email protected] 9 points 1 year ago

“Unintuitive” often suggests that there’s something wrong with the language in a global sense

I mean only if you consider "Intuition" to be some monolithic, static thing that's also identical for everyone. Everyone has their own intuition, and their intuition changes over time. Intuition is akin to an opinion - it's built up based on your own past experiences.

just because it doesn’t look like the last one you used — as if the choice to use (or not use) curly braces is natural and anything else is willfully perverse on the part of the language designer.

I don't think it's that deep. All people mean when they say it is that "[thing] defied my expectation/prior experience". It's like saying "sea food tastes bad". There's an implicit "to me" at the end, it's obvious i'm not saying "sea food factually tastes bad, and anyone who says they like it is wrong or lying".

[–] [email protected] 6 points 1 year ago (3 children)

No programming language is “natural/obvious/without effort”.

[–] [email protected] 5 points 1 year ago

You could say that about anything. Of course you have to learn something the first time and it's "unintuitive" then. Intuition is literally an expectation based on prior experience.

Intuitive patterns exist in programming languages. For example, most conditionals are denoted with "if", "else", and "while". You would find it intuitive if a new programming language adhered to that. You'd find it unintuitive if the conditionals were denoted with "dnwwkcoeo", "wowpekg cneo", and "coebemal".

[–] [email protected] 2 points 1 year ago (1 children)

Languages also have inner consistency. E.g. the mentioned python len function is inconsistent with the rest of the same language - and that is a statement that is true in itself, without an external reference point.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Yes, I agree that the len() thing in Python, and inconsistency in general, is bad. But pretty much all popular languages have many inconsistencies.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

But there are languages that require varying degrees of effort to become natural. Something like Malbolge will pretty much never be natural while something like Python can become natural to you in a few days.

[–] [email protected] 1 points 1 year ago

Yeah. The original comment was about programmers who say that a language is “unintuitive” because it doesn't look like another language they know.