6 ms·
I read that article when it came out, as my parents subscribed to Scientific American. Even though I had learned BASIC and Pascal, the concepts in the article w
by analog31 2y ago
I read that article when it came out, as my parents subscribed to Scientific American. Even though I had learned BASIC and Pascal, the concepts in the article were just way over my head. Also, I had no access (that I was aware of at least) to a machine where I could try my hand at Lisp programming. Alas, I wish I had taken it more seriously.
At least Hofstadter was successful at getting me interested in math beyond high school.
- lproven 2y agoMe too. I admire the theory of Lisp, but man, all the Lisp folks going "but don't you get it, the absence of syntax IS the syntax!" don't half get tiring. For some of us, we can just about handle the simple algebraic infix stuff, and we'll never make that leap to "my god, it's full of CARs". https://xkcd.com/224/ https://xkcd.com/224/
- anthk 2y agoIf you have a look on some Emacs code (and modules such as Mastodon.el), you'll see than the syntax is not that scary, as Lisp makes it trivial to modularize code into smaller functions.
- lproven 2y agoI have spent years writing about and studying Lisp, including buying several books. This is categorically not the case. Let me paraphrase my own post from Lobsters a year or two back: I hypothesise that, genuinely, a large fraction of humanity simply lacks the mental flexibility to adapt to prefix or postfix notation. Algebraic notation is, among ordinary people, almost a metonym for “complicated and hard to understand”. I suspect that most numerate people could not explain BODMAS precedence and don’t understand what subexpressions in brackets mean. I have personally taught people to program who did not and could not understand the conceptual relationship between a fraction and a percentage. This abstraction was too hard for them. Ordinary line-numbered BASIC is, I suspect, somewhere around the upper bound of cognitive complexity for billions of humans. One reason for the success of languages with C syntax is that it’s the tersest form of algebraic notation that many people smart enough to program at all can handle. Reorder the operators and you’ve just blown the minds of the majority of your target audience. Game over. I admire Lisp hugely, but I am not a Lisp proponent. I find it fascinating and the claims about it intrigue me, but to me, personally, I find it almost totally unreadable. Those people I am talking about? I say this became I am one. I myself am very firmly in the camp of those for whom simple algebraic infix notation is all I can follow. Personally, my favourite programming language is still BASIC.
- rini17 2y agoMany more people use Excel formulas than any programming language. And I don't believe it's solely thanks to easy notation. Rather something how the data is laid out? Idk I would like for CS to reflect on this more instead of internecine wars on prgramming syntax.
- lproven 2y agoSo very much this. I think programming languages are also long overdue for some controlled trials. They can't be blinded: any experimental subject bright enough to learn to program is probably going to know what language they are programming in. But trials comparing the effectiveness of different languages. How long they take to attain a specified level of proficiency, how long to learn enough to produce working code, and importantly, readability: for instance, how long it takes to find intentionally-planted bugs in existing, unfamiliar code. NeXT did this, way back in the 1980s, and Sun lost badly: https://www.youtube.com/watch?v=UGhfB-NICzg https://www.youtube.com/watch?v=UGhfB-NICzg There is a writeup of some of it here: http://www.kevra.org/TheBestOfNext/BooksArticlesWhitePapers/WhitePapers/files/page646_5.pdf http://www.kevra.org/TheBestOfNext/BooksArticlesWhitePapers/... But speaking as a non-video-liker, this 17min one is worth it.
- lispm 2y ago> I have spent years writing about and studying Lisp, including buying several books. The key is "writing and maintaining" Lisp software. Lisp often won't get learned by reading or writing ABOUT it, but by reading AND writing actual Lisp code. It's a bit like riding a bike. You can study bikes for a long time, but you will typically not be able to ride a bike. That's something which can be learned when actually practicing to ride the bike. This means also not needing to consciously think about it, but by moving tasks to internal automatisms. Lisp code is data and this wants to be "manipulated". This manipulation is a key to learn Lisp. The other key element is to work with a system which gives live feedback -> interactive programming. "Interactive" means to do things, to fail, to improve, to do it again. It's in part the experience of actually using an interactive programming system.
- 2y ago
- TruffleLabs 2y agoI took M490 “Problem Seminar” (a math class) in 1995 with Dr. Hofstadter - we studied triangles, and the definition of a triangle’s center. You would think that there is a limited set of “triangle centers” but he showed us (and he had us discover and draw them out using The Geometer's Sketchpad) dozens of ways to find triangle centers and he had notes on hundreds more definitions of triangle centers. His approach to teaching was fun and made us want to take on challenging problems. :)