3 ms·
A programming language is not supposed to match human intuitions. We are trying to take things from the physical world an represent them in the digital world.
by jugularkill 9y ago
A programming language is not supposed to match human intuitions. We are trying to take things from the physical world an represent them in the digital world.
A programming language should be modelled on physical life.
But we still haven't figured this out yet.
I don't think many people understand what a poor language is, you really need to understand the spec fully and experiment with every paradigm in production to claim that JS is a poor language. Can you genuinely say that you have?
- naasking 9y ago> A programming language is not supposed to match human intuitions. I'd say that's a flat out false conjecture. Given a choice between two programming languages, one which better matches our intuitions and one which doesn't, the one which does will always yield programs with fewer bugs because we will simply be better able to express our solution to the problem being solved, and we will be better able to understand the program and so extend it. It's like saying that door knobs are not supposed to match human intuitions, they're just supposed to open doors in the best manner possible. Well guess what property opens doors in the best manner possible when humans are the ones opening doors? A door knob that's most intuitive and natural for the majority of humans to use. HCI and ergonomic factors are seriously underappreciated in computer science. > you really need to understand the spec fully and experiment with every paradigm in production to claim that JS is a poor language. Can you genuinely say that you have? I've used OO, FP, prototype-based, logic and constraint-based programming languages. Yep, I think I can say JS is not a good language. It's improved somewhat, but still not great. It's not Brainfuck-bad, but it's not particularly good either.
- jugularkill 9y ago> one which better matches our intuitions > A door knob that's most intuitive and natural for the majority of humans to use. Ok so let me explain better: The UX = Human End-users POV (intuition) Programming syntax = Human Developers (intuition or whatevr) Tools to deliver (Browser API, CSS) = The domain/s The way in which we structure work = the things we are building = things that exist in real life. Websites are mis-leading because many pages appear alike people tend to believe that there's a lot of repetitive components but there really isn't in general. So inheritance is usually way over used despite the style of programming. I am not discussing how we use a door knob. I'm arguing about how we build the door knob of different variants in mass production. > It's not Brainfuck-bad Brainfuck is not a "bad" language, if it serves it's purpose well then it is good. I think Brainfuck is doing exactly what it intended to do. There are people who have been using JS for 20 years who think it is terrible. It's because they have never taken time out to learn the language properly. Most JS devs don't I'm not convinced that you have because you clearly wouldn't be saying x is a poor language. No language that is in high demand today is a poor language.
- naasking 9y ago> No language that is in high demand today is a poor language. Well that's clearly false. COBOL was in high demand at one point. The popularity or prevalence of a programming language has very little to do with its technical merits. We've seen this play out dozens of times over the past few decades. And "X is bad" is typically intended as a relative measure. JavaScript would have been a great general purpose language compared to the state of the art in the 50s and 60s, maybe even as late as the 70s. It was maybe ok as an embedded document language at the start of the web in the mid 90s, since everything was so experimental and quickly evolving. It's not a good language now, and hasn't been for some time. It has some good qualities, but also many bad qualities that run into bad software engineering practices. Finally, I'd say that any language that many people would rather use a transpilation/compilation target rather than use directly, is clearly a bad language.