5 ms·
Doesn't seem that special to me. Forth has a totally different (but at least as powerful) set of mechanisms for metaprogramming. REBOL, too. And hell, these day
by RodgerTheGreat 7y ago
Doesn't seem that special to me. Forth has a totally different (but at least as powerful) set of mechanisms for metaprogramming. REBOL, too. And hell, these days even languages like Rust and D give programmers first-class capabilities for compile-time metaprogramming.
It's disingenuous to imply that every other language is simply "reinventing Lisp". The Lisp community itself spent decades figuring out elements that are now considered basic, like lexical scope. Lisp is just a ball of mud that can absorb any idea in its vicinity, and Lisp programmers like to retcon history to make every idea theirs.
- dreamcompiler 7y agoMcCarthy invented conditionals. Seriously, if you've ever typed "if" into a program you owe a debt to Lisp. Likewise garbage collection. Lisp didn't absorb that; Lisp invented it. Likewise dynamic typing, first-class functions, recursion, etc etc. It's not even slightly disingenuous to imply that every other language is simply "reinventing Lisp".
- RodgerTheGreat 7y agoThis kind of fallacious blustering is exactly what I'm talking about. "if" statements existed in FORTRAN (hell, even FLOW-MATIC), which preceded Lisp. The earliest Lisp implementations didn't have garbage collection, and while mark-and-sweep was being developed for Lisp there were other high-level peers like APL experimenting with similar ideas. Same deal for dynamic typing. First-class functions were explored in the Lambda Calculus decades before Lisp programmers applied them, and mathematics has known about recursion since antiquity. Programmers were expressing recursive algorithms in machine language in the 50s. None of this sprung fully-formed from the head of John McCarthy: Lisp borrowed from a rich preceding tradition of mathematics and computer science, and the rest of the world wasn't twiddling their thumbs while McCarthy worked on his machine-algebra system.
- dreamcompiler 7y agoThe first Fortran had arithmetic IF. Fortran didn't get logical IF (the structured if-then-else that every language uses today) until McCarthy proposed it. Of course recursion and first-class functions were known to mathematics. But we were discussing programming languages, not mathematics. And specifically high-level languages, back when there was a lot of skepticism as to whether they were even a good idea. Fortran got there first. Lisp was second and provided the existence proof that abstract features Fortran didn't even attempt were nevertheless viable. And then it went on to become the standard language of AI. Sure, there was a lot of creativity happening back then, and Lisp didn't cause that creativity to happen. But being the second-oldest programming language and the first viable implementation of so many high-level features made Lisp a crucial development in the history of computing that's still quite relevant today.
- deleted 7y ago[deleted]
- lisper 7y agoMcCarthy introduced conditional expressions, not conditionals. But what he really invented was functional programming.
- lisper 7y agoI didn't say that other languages were reinventing Lisp. I said they were reinventing Common Lisp. Not the same thing.