8 ms·
Why we hate Lisp
- spacehome 11y agoI'm slightly unclear why this website exists.
- teraflop 11y agoIn case you're not joking: https://en.wikipedia.org/wiki/WikiWikiWeb https://en.wikipedia.org/wiki/WikiWikiWeb
- ExpiredLink 11y agoAs expected, a page for Lisp fanboys.
- PeterMrltyHitch 11y agoDo you ever comment more than a sentence or two? You are recognisable as the archetypical "low-effort" contributor.
- coldtea 11y agoWell, considering that yours is a throwaway account, he's at least reconginsable!
- Marazan 11y agoSmugLispWeenies is why we hate Lisp. People who, when writing Lisp tutorials, spend a condescendingly large time telling the reader that they are going to have their mind blown by the concept of first class functions. In the space year 2015 people are still doing this. Also they have apparently never heard of Forth either.
- DonHopkins 11y agoOr PostScript, which combines the best of Lisp and Forth.
- ICWiener 11y agoI can build strawmen too: - SmugCeeWeenie: I am so fast, look (oops, core dumped) - SmugGoWeenie: abstractions are so nasty we should get rid of functions, so that everyhting is laid out clearly. Hopefully, I have copy/paste. - SmugAdaWeenie: Functions are not procedures and records cannot store objects. Real engineers do not "prototype" code. - SmugHaskellWeenie: Yeah, it compiles! Job done. > In the space year 2015 people are still doing this. About first class functions? citation needed.
- bbcbasic 11y ago- SmugHaskellWeenie: cabal sandbox init, cabal install this, cabal install that, write code, add ghc pragma, wtf! add ghc pragma, wtf! add ghc pragma ... Yeah, it compiles! Job done. Almost, time to get rid of the warnings. add ghc pragma, and another, and one from the top Carol and ... yeah, it compiles with no warnings.
- AKrumbach 11y agoYes, you still find articles praising first class functions in "space year 2015" because those websites were written from an Earth year 1997 perspective. Yes, maybe with Java, Python, and Ruby all having first class, anonymous functions -- making that feature well-known -- it is less mind blowing. That doesn't mean that Lisp (by which I mostly mean Common Lisp) doesn't still have potentially "mind blowing" things to teach. Consider error handling. I would say that coming from any language where this is limited to the "try...catch" paradigm, seeing the separation and possibility provided by restarts is absolutely a mind blowing experience. (The stack doesn't unwind during the error handler search? Huh?) Another "enlightenment" moment can come with understanding the way Lisp uses macros. No, I don't mean understanding writing macros, I mean looking at the language itself and seeing standard language features like "loop" or even CLOS being implemented using just macros. The idea of extending your language with entirely new abstractions, using just a few lines of code rather than some compiler update, should be mind-blowing. (Just the idea that "I have access to the full range of tools the language implementer used" can enlighten how to approach certain problems!) Yes, exposure to Forth can also do all of this... but personally, I mentally filed Lisp and Forth together from the start. They both seem to be approaching the same peak "optimum" in code expressiveness (brevity / power), but from opposite sides of the mountain.
- willvarfar 11y agoPython: sum(range(1,11)) I think this more explanatory than the Lisp. Perhaps that's just me.
- jokoon 11y agoYes, this article shows several different ways to do one same thing, you can't really expect programmers to remembers all this syntax. from https://www.python.org/dev/peps/pep-0020/ https://www.python.org/dev/peps/pep-0020/ : > There should be one-- and preferably only one --obvious way to do it. I don't know if common lisp is an "easier" lisp, but I sure would like to have a watered down version of lisp so I can learn its paradigms. I don't even know if that's what haskell is.
- willvarfar 11y agoI picked Python as its the language I think most easy to write and read. Concise enough without being write-only.
- m0skit0 11y agoI disagree. You say so because you're used to Python. In Python you need to remember quite a few syntax rules. How many different symbols you need to write a relatively complex program? How many symbols/words are reserved? In LISPs there's much less syntax to remember.
- whostolemyhat 11y agoYep, in Lisp all you need to remember is (). Python has more syntax to remember than in Lisp, but ends up being a lot more readable (eg lists, dicts etc)
- SSLy 11y ago> lists, dicts Clojure does them right, imho.
- millstone 11y ago> Unfortunately a Russian spy stole the last meg of a LISP program for controlling our nuclear defense systems. Fortunately, it was all right-parenthesis.
- simonh 11y agoThats a nice variation of a joke about German. "I normally skip to the back of a novel to find out what happens at the end, but in German that doesn't work because the last few pages are just full of all the verbs".
- emersonrsantos 11y ago> Reddit is proof that lisp is really powerful. Paul Graham originally wrote reddit, in lisp, on the back of a napkin while he was waiting for a coffee. it was so powerful that it had to be rewritten in python just so that ordinary computers could understand it. Because it was written in lisp it was almost no effort to rewrite the entire thing, and the rewrite was completed in-between two processor cycles. Paul Graham himself was completely written in lisp, by an earlier version of himself, also written in lisp, by an earlier version of lisp. It's lisp, paul graham, lisp, paul graham, all the way down. (from http://www.secretgeek.net/lisp_truth http://www.secretgeek.net/lisp_truth)
- agumonkey 11y agoMIT went from scheme to python. I heard an old lisp based recursive class went to python too (people want numpy and other libs, too much pressure). Maybe the next wave will have some sml/haskell/idris.
- brudgers 11y agoMIT restructured its curriculum to be more hands on. The new curriculum included a module programming robots. Python provided an interface and is a good general purpose language. The fact that robots entered the reasoning indicates how different the new curriculum is from SICP.
- agumonkey 11y agoGreat point.
- hga 11y ago"MIT restructured its curriculum" because after the dot.com bust, EECS enrollment dropped by more than 1/2 after being a solid 40% of undergraduates for more than 2 decades, and the department panicked. And, yeah, punting teaching the fundamentals for some hand-on work (robots, communications) was part of that. There was also a commandment from on-high, don't know if this was above the department or in it from long simmering resentment, to entirely purge Scheme from the curriculum. Given all that, Python was perhaps the least worst choice (although using Java to teach the rest of what's in SICP is not even wrong), although I personally wonder about the wisdom of purging functional programming from the curriculum at the same time that multi-cores may be making it a lot more relevant.
- th0waway 11y agoThe one thing that I take away from all of this is that the people complaining just don't 'get it'. I don't know whether it's a personal failing of the individuals involved or something about lisp that is orthogonal to most people's thought processes, but the page reads more like (to me) sour grapes than a reasoned discourse on why lisp sucks. Compare that to the article posted yesterday about CLASP (https://drmeister.wordpress.com/2014/09/18/announcing-clasp/ https://drmeister.wordpress.com/2014/09/18/announcing-clasp/) - a brilliant piece of engineering that the creator said was just not doable in other languages, and you have a huge cognitive dissonance. But then, ymmv.
- th0waway 11y agoOoops, an old link to CLASP. Here's a newer link: https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-on-clasp-and-my-chemistry-at-google-in-cambridge-mass-last-week/ https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-on-...