3 ms·
Sure, but that is not my key point here. You're focussing on the detail while ignoring the general picture. I am not comparing Lisp to Mandarin Chinese or som
by lproven 2y ago
Sure, but that is not my key point here.
You're focussing on the detail while ignoring the general picture.
I am not comparing Lisp to Mandarin Chinese or something. That would be silly.
What I am saying is that there are a whole bunch of languages (both kinds) which presumably seem perfectly easy to those who grew up with them, but if you didn't and you come to them after learning something else that's much simpler and doesn't do the fancy stuff, then they seem really hard. Consistently, for lots of people, regardless of background.
Doesn't matter how good your Arabic, Mandarin will be hard, and vice versa.
https://www.geeksforgeeks.org/hardest-languages-in-the-world/ https://www.geeksforgeeks.org/hardest-languages-in-the-world...
That list isn't sorted by your source language, your L1. That doesn't matter.
If they come from an infix-notation imperative language then most people are going to find moving to an impurely-functional prefix-notation one is really hard. And most languages are infix-notation imperative languages.
- kazinator 2y agoSorry, how does the point that natural languages are absolutely hard or easy, regardless of one's native language, speak to the point that moving to a prefix programming language from infix is hard? There are hardly any Lisp programmers today who didn't "come from" prefix languages. All mainstream languages are heavily steeped in prefix notation. The infix stuff is just a small core, typically. Mainly it is for arithmetic. Sometimes for string manipulation or set operations on containers, perhaps I/O. Libraries are invoked with f(a, ...) prefix or perhaps obj.f(a, ...) mixed infix and prefix. Libraries have far more content larger than the infix material. Even small programs are divided into functions, invoked with prefix. Prefix is relied on for major program organization. Command languages use prefix: copy filea.txt this/dir. Statement and definition structures in mainstream languages are prefix: class foo {, goto label, return 42, procedure foo(var x : integrer), ... The idea that programmers coming to Lisp are confused by prefix does not hold water.
- lproven 2y agoThe core unifying point here is that some things are harder to learn than other things. If you find that a difficult idea, I don't know how else I can put it.
- lispm 2y ago> harder to learn than other things "harder" is relative to a reference. Even "hard" is relative. The simple nested arithmetic code you stopped at in SICP is easy for most people working as developers. Maths from 5th year school are sufficient. Nested lists, prefix notation isn't "hard" for "most" people. It's just lightly harder for someone who has never seen that. When they have seen XML or JSON, then it's even easier. Actually "hard" Lisp code looks and feels different. First "harder" hurdles in Lisp are typically evaluation, recursion, macro expansion, compile-time vs. runtime, meta-notation (code as data), ... I learned 2 years PASCAL and MODULA 2 on an Apple ][ (and i still think that was fun), before getting in contact with the Lisp alien world. I was hooked in a short time.
- lproven 2y agoI really feel like you are determined to misinterpret and deny what I am trying to say, without engaging and listening. This is a very Lispian sort of attitude. "No, you are wrong, this is in fact the correct way..." There is an existence proof that the attitude of "just keep at it and it will make sense" is not true, and it's an international software industry of buggy, leaky, insecure C code that keeps hundreds of thousands of people in work and makes _tens of millions of dollars_ every year. If the alternative really was better, someone would have found a way to make money from it, but they have not. And yet, despite the terrible macho-man culture of the software industry, where it is a sign of how elite you are to write in a non-bounds-checked language with manual memory management and they make jokes about "blowing your own leg off" and "write-only code", Borland made hundreds of millions selling the same people Pascal for decades, and it's still on sale now. https://www.embarcadero.com/products/delphi https://www.embarcadero.com/products/delphi My first full time job in FOSS was documenting Java tooling, for a Linux company that told me in my New Hire Orientation how much the company hated Java. I have met and talked with some Java developers. They are scary. Some of them are the kids who couldn't get onto Computing courses but they are pro Java developers. They can just bodge it together and it works, safely. IMHO the Lisp industry and community needs to listen to the people trying to make easier, clearer Lisps, such as CGOL and PLOT and Lunar and Dylan, and engage with them, and try to understand why and embrace it, not just continually telling them they are wrong wrong wrong. Plain old algebraic notation works and non-specialists can, with effort, master it. But even more than that: the most widely-used programming language in the world today is Microsoft Excel formulæ. BTW: Recursion is trivial. I had recursive BBC BASIC V code working beautifully when I was 20.