5 ms·
[ ] You require the compiler to be present at runtime [ ] You require the language runtime to be present at compile-time The guy never heard of Lisp so I would
by mapcars 7y ago
[ ] You require the compiler to be present at runtime
[ ] You require the language runtime to be present at compile-time
The guy never heard of Lisp so I wouldn't pay much attention to this anyway.
- gdwatson 7y agoI think those were included specifically to poke fun at Lisp. The list isn’t meant to be taken very seriously.
- hardwaresofton 7y agoI also chuckled at the '[ ] "multi-paradigm"' and immediately thought of lisp since it's one of the only languages that's ever had a reason to lay claim to that. If you think about it, lisp is really just the smallest amount of higher-level PL primordial soup you can give to a programmer.
- dkersten 7y agoAlmost every language is multi paradigm (it just takes two paradigms after all, so every imperative OOP language is multi paradigm). All the most popular languages today have a mix of imperative, functional and OOP. Few languages (and certainly fewer popular ones) are paradigmically “pure”.
- seanmcdirmid 7y agoImperative is orthogonal to object-ness, that doesn’t make a language multi paradigm. C++ was considered multi paradigm because it supported both OOP and procedural programming for organizing code. Of course, these days procedural is taken for granted and drops off the radar as a notable paradigm. The dual of imperative is declarative. It is quite possible to have a functional imperative language as Guy Steel points out in his Lambda: the ultimate imperative paper.
- js8 7y ago> every imperative OOP language is multi paradigm I am not sure how you can count imperative and OOP as two paradigms. OOP is an extension of imperative paradigm. I would like to see what language you consider to be OOP but not imperative and not functional.
- jerf 7y agoIn the spirit of a bit of fun, Erlang can arguably make that claim. The processes are easy to view as objects, in the sense that I've often thought that when I read what Alan Kay said about objects, it often seems to be describing Erlang moreso than Smalltalk. But the language those objects are implemented in is functional. (That said, if you read real Erlang code, despite being immutable and nominally functional, the code often is in practice simply imperative code where the code author has manually done the SSA rewrite. This is one of my major criticisms with the language. If you really try to program it functionally, it's quite a pain compared to Haskell.)
- hhas01 7y ago“Almost every language is multi paradigm” Considering most language paradigms are mutually contradictory, this only serves to increase the LOLs.
- zem 7y agothere are tons of multiparadigm languages, but oz/mozart in particular is worth a glance: https://mozart.github.io/mozart-v1/doc-1.4.0/tutorial/index.html https://mozart.github.io/mozart-v1/doc-1.4.0/tutorial/index....
- exdsq 7y agoIt’s also notable in that Mozart is based on Pi Calculus. Except for Pict, I’m not aware of any others.
- zem 7y agoi hadn't heard of pict, but there's occam-pi and jocaml which are based on the pi calculus. (jocaml is based on the join calculus, which has been demonstrated to be equivalent to the pi calculus).
- AzzieElbab 7y agobut those are teaching languages, specifically designed to teach multiple pl paradigms
- shadowgovt 7y agoI'm sure the authors have heard of Lisp. And I suspect the authors are making a dig at the fact that Lisp is now over 60 years old and its popularity has been dwarfed by many, many "worse" languages (partially because Lisp has several properties that are checkboxes in this list ;) ).
- iLemming 7y agoYou're making a classic mistake - Lisp is not a language. It's a set of ideas. Some brilliant ideas. Pretty much every single PL that in use today was influenced by those ideas. There's plenty of Lisp in Python and Javascript. And pretty much there's a Lisp dialect and compiler/transpiler/interpreter for every platform today. Lisp (despite being over 60 years old) never went out of fashion and I doubt it ever will.
- ncmncm 7y agoIndeed, no actual compiler or interpreter is needed. Or computer, really. Like the Lambda Calculus, it's a notation for expressing algorithmic ideas. The only right thing to do with an algorithmic idea is to analyze it. Executing just gets your hands dirty, and makes you smell bad.
- shadowgovt 7y agoOkay, so replace "Lisp" in the above with "implementations of Lisp." We're clearly not talking about the abstract, idealized, unexecuted language for discussing algorithmic theory in the context of implemented programming languages.