27 ms·
LISP has an insidious parenthetical notation, and is well known to be a "write only" language, where nobody but the author can understand large programs written
by magicmouse 6y ago
LISP has an insidious parenthetical notation, and is well known to be a "write only" language, where nobody but the author can understand large programs written in LISP. It is avoided commercially for this reason.
- juskrey 6y agoOr embraced by those who know how to cook this: it is very easy to spot adequate LISP coder and filter self-serving equilibrists. (I am full Clojure for many years)
- ramraj07 6y agoWhat about stuff like clojure?
- _bxg1 6y agoThose are pretty strong words. I wouldn't use Lisp for a project I expect to scale, but I can still appreciate it for its merits, including what it represents.
- zelly 6y agoAnd That's A Good Thing If Lisp were mainstream I'd probably see that as a red flag
- vincent-manis 6y agoThat's why GNU Emacs is written in C and Cobol. More seriously, I have seen a lot of badly written Lisp/Scheme, as much as in any other language. Lisp DOES scale quite well, if the code is well-designed.
- vincent-manis 6y agoBy the way, I'm well aware that there are pieces of GNU Emacs that are mazes of twisty passages, understood by very few people. That's to be expected of a decades-old program that has perhaps not experienced enough refactoring.
- lmm 6y agoEvery language scales well if the code is well-designed, almost by definition. The more salient question is how well large codebases written by mediocre programmers can be maintained by other mediocre programmers, because that's what any long-lived codebase will have to deal with.
- mmphosis 6y agoI agree, however, Greenspun's tenth rule: Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. What are these amazing 'commercial' programs? And why are they so large? And, do they need to be so large? Does the entire team understand all the inner workings of the commercial program? The Lisp eval function is easier to read, understand, and modify than to start over and rewrite it from scratch. ( As for those brackets, well ... https://xkcd.com/859/ https://xkcd.com/859/ https://xkcd.com/541/ https://xkcd.com/541/ https://xkcd.com/297/ https://xkcd.com/297/
- lmm 6y ago> Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. Sure, because C and Fortran are extremely limited languages - no first-class functions, no sum types, pitiful error handling. In a world where language design was extremely-primitive, user-defined macros made sense. Once languages that offered standard ways of doing the constructs that most programs need were invented (i.e. ML in 1973), there were better alternatives. > The Lisp eval function is easier to read, understand, and modify than to start over and rewrite it from scratch. That's not actually true though. The definition in the link uses a bunch of obscure lisp-specific terminology and doesn't really gain anything from doing so. It genuinely is easier to reimplement it from scratch (perhaps with the help of a more neutral reference) than to understand the Lisp version.
- phoe-krk 6y agoSorry, but I strongly disagree. It's possible to write unreadable code in any language, and Lisp is readable once you've spent a basic amount of time with the language to get to know the forms and when your code is indented properly - see my blogpost at https://nl.movim.eu/?blog/phoe%40movim.eu/cd3577f6-fb1d-45f5-b881-7b9a68ee822e https://nl.movim.eu/?blog/phoe%40movim.eu/cd3577f6-fb1d-45f5... for that last one. Also, LISP is a language that's been dead since 1970s. Did you perhaps mean Lisp?
- iLemming 6y agoPeople who cannot read Lisp or find it difficult to scan Lisp code with their eyes, or those who try Lisp for the first time, usually approach it the same way as they've probably done many times with other programming languages. They stare at it and try to make sense of the code. However, that's not how Lispers usually read Lisp code. Lispers would connect to a REPL and start "dissecting" the code evaluating it piece by piece. Lisp is unlike many other PLs where you usually have to follow "write -> save -> lint|compile -> run -> check the results" routine, boils down to "write -> eval -> check the results". You can even say that coding in Lisp is dealing with a "living," "breathing" program, whereas in other PLs - your program is "dead" and comes to life only after it's compiled and ran. > It is avoided commercially for this reason. Lisp is being used today by Apple, Walmart, Cisco, Amazon, Netflix, and even NASA and many other companies. Huge banks and FinTech startups around the world actively using it. Clojure is the most popular programming language in its category of PLs with strong FP emphasis. It is more popular than Haskell, OCaml, Elm, Elixir, Purescript, and recently surpassed Scala. Not a single guru, CS veteran or renowned programmer ever complained about Lisp being hard to read, because they understand - if they know anything about programming at all, publicly saying shit like that would raise many eyebrows. But every single time someone mentions Lisp on HN, there will be at least one dyslisplexic, who has never developed enough patience or inner curiosity to learn it.