5 ms·
Why You Do Not Use Lisp -- a survey
- pilif 17y ago(because(as(my(coworker(said:(the(human(brain(is(no(f*ing(pushdown(automata))))))))))))) SCNR
- dreish 17y agoThat's the easiest and most superficial rationalization for not bothering to try a Lisp (any Lisp), but also the least compelling argument against it, and likely not even the most significant actual reason you haven't bothered to learn it.
- huherto 17y agoIt may not be a fundamental problem for people that know it well. But, first impressions matter nonetheless. Edit:Spelling
- pilif 17y agoI was joking about the syntax and the way how I just can't wrap my brain around reading lisp and matching parentheses. I was not joking about the recursive and functional nature of Lisp, both of which I'm finding very interesting (and my coworker is, in fact, a big fan of Haskell)
- peregrine 17y agoThe editor should help you use parens. http://code.google.com/p/counterclockwise/wiki/ScreenShots#Source_code_Editor http://code.google.com/p/counterclockwise/wiki/ScreenShots#S... Rainbow parens are really helpful and so is automatic paren matching....
- swannodette 17y ago<and yet="people"> <like> <writing> <html></html> </writing> </like> </and>
- pilif 17y agolike? Not really. But at least I have a chance at spotting syntax errors by eye without the help of an editor.
- authentic 17y agoautomaton
- spitfire 17y agoNo support for formal proving methods. Some of the software I develop is life-crtical. "Works here, passes my tests" Isn't good enough. For offline analysis and general cocking about though, it's the bee's knees.
- wynand 17y agoThough I haven't programmed in Qi (which runs atop a Common Lisp environment), I have read up about its extensible type system. It looks powerful and might be useful for what you're doing.
- spitfire 17y agoYou also have to worry about memory usage and runtime determinism - When restarting an engine at 10,000 feet or on takeoff[1] some things MUST happen at certain times as quickly as possible. GC isn't an option, and "oops out of memory" isn't an option either. It comes down to it that lisp doesn't have the ecosystem behind it for life-crtical applications. I doubt it ever will. What it is useful for though is analysis tools - helping keep people out of those life endangering situations. 1. See Diamond da-42 takeoff crashes.
- mechanical_fish 17y agoSo, are you legally obligated to tease us mercilessly or can you tell us what you do use? This does not sound like a job for PHP. ;)
- jcromartie 17y agoI'm curious now: what do you use? C? ADA?
- alphaBetaGamma 17y agoWhile I have personally never programed life critical stuff, I interacted closely (on the algorithmic side) with people who did. This was in the railroad industry. They used a subset of C (no malloc...) and had a safety certified compiler. If you crash two trains because of a compiler bug at least you can pass the bunk. They did not use formal proof methods. The documentation was massive, substantially longer than the code, to the extent that doing the actual implementation from the documentation seemed relatively trivial. Writing and analyzing the documentation on the other hand... I had the impression that writing documentation to that level of detail must have taken substantially longer than implementing it directly in code. And this was probably a good thing as it forced people to think more about every details. Once a system was written it had to be certified. Any changes, no matter how trivial, meant you had to go through the whole certification process again: slow, painful and expensive.
- cousin_it 17y agoI mostly do client-side Web development - JavaScript and Flash - and prefer to write in the native languages of the platform to leave less space for bugs to hide. (Even MTASC, the very good indie Flash compiler, turned out to contain obscure bugs after I abused it for a couple years.) And my server-side stuff is simple enough that Lisp wouldn't be a big win space-wise over the handful of PHP one-pagers that I tend to write. Lisp also loses to PHP on maturity, documentation and support - whenever I stumble on some exotic webapp-specific problem, chances are it's already covered in detail on php.net. It looks like Perl and Python have ecosystems of similar quality, and some of my friends swear by the Microsoft tech stack, but unfortunately I can't trust Lisp to the same degree. If I ever encounter a problem where cleverness of programming is the limiting factor, I'll probably use some advanced language (yep, I can handle Lisps, ML/Haskell or even APL/K passably well). But such problems just aren't very common. On most projects I spend most of the time figuring out how to solve this user problem on that programming platform as directly as possible, not solving mathy type puzzles.
- mahmud 17y agoLisp also loses to PHP on maturity, documentation and support Lisp is 50 years old and standardized for 15 years. Has both an ANSI and ISO standard, freely available books and manuals written by the best and the brightest of the Art. There are 4 commercial Lisp companies and a total of 8 standard-compliant implementations. There is absolutely no comparison, and it's both telling and sad you would utter them in the same sentence. Take it back.
- protomyth 17y agoA better way of stating it, is that while Lisp is older, there is a lack of real world experience, documentation, and support for using Lisp as a language for web development. The volume of material, understanding, and optimization strategy for PHP is far and away greater than Lisp. As an example, search for a simple question on how to do some developmental task on google for both PHP and Lisp. PHP will have more informative pages.
- frig 17y agoPHP.net landing page for string documentation: http://www.php.net/manual/en/book.strings.php http://www.php.net/manual/en/book.strings.php (also available in 7-8 other languages). Note all useful string concepts are one click away, and the documentation allows user commentary (much of which is quite helpful). Common Lisp Hyperspec landing page for Strings: http://www.lispworks.com/documentation/HyperSpec/Body/16_.htm http://www.lispworks.com/documentation/HyperSpec/Body/16_.ht... CMUCL string documentation: http://common-lisp.net/project/cmucl/doc/cmu-user/unicode.html#toc311 http://common-lisp.net/project/cmucl/doc/cmu-user/unicode.ht... SBCL's manual has no "table of contents" item that even mentions strings. Stuff like this matters if you care about accessibility. It should be trivial to google yourself a well-documented list of a given language's standard string functions without a lot of work.
- anonjon 17y agoI use lisp and every time I tell another programmer that I use lisp their face morphs into a mask of shock and horror. They're all like 'how do you use lisp all the time' and I'm like 'well lisp is very powerful', and they say 'yeah it is, but how can you stand to use lisp all the time!' and I really don't know how to respond because using lisp seems more natural than something like C or Java where I have to be very explicit about everything that I want and put in very specific syntax.
- JulianMorrison 17y agoHe dismisses "lack of support for modern programming practice" far, far too easily. Clojure is modern. CL is not. That lack of modernity is a serious reason not to use it.
- mquander 17y agoI interpret "Lisp" to mean "any Lisp," since none of the reasons he gives are really related to CL in particular.
- KazimirMajorinc 17y agoIt is true, Lisp means any Lisp, and it is specifically noted on the advertised poll that all Lisp dialects are included. It is also specifically noted that Lisp programmers who use Lisp part time have right to write why they do not use Lisp - when they do not use it. There is a huge variety of reasons and ways people think.
- JulianMorrison 17y agoExcept that the answer would simply be nonsense if applied to Clojure. It does too have safe, fairly lightweight concurrency, FP and immutable persistent data, both a standard library with all the trimmings and scads of add-ons (via Java), yadda yadda, modernity out the wazoo. What's it missing? (I think the actual answer here is: mindshare. Respondents heard Lisp and assumed CL, maybe Scheme.)
- huherto 17y agoIf I wanted to used Lisp, I wouldn't know which version to use. That would be a problem to me.
- mahmud 17y agoYou are a programmer: your primary responsibility is problem understanding, searching the solution-space and evaluating your options. Even an automaton like the Google algorithm can search data and correlate them. When I type "Common" it auto-completes "Lisp". You should be able to search, find, and compare technologies on their own merit. The entire programming fora are burning with altruistic recommendations for free Lisp books, some of them classics of the field.
- stefano 17y agoJust pick one of them randomly. Once you know enough about the language, you will be able to choose the implementation that better suits your needs.
- mahmud 17y agoA very convenient "have you stopped beating your wife" type poll. Isn't it funny how one can create a movement from ether by just setting up a loaded questionnaire online? Instead of an anonymous and questionable poll setup by someone with an axe to grind[1] I give you The Road to Lisp. Real names, real people: http://wiki.alu.org/The%20Road%20To%20Lisp%20Survey http://wiki.alu.org/The%20Road%20To%20Lisp%20Survey -- [1] The author of that blog is a NewLisp user who made it a habit to troll comp.lang.lisp and other Lisp fora, demanding people treat NewLisp as an equal/real Lisp.
- brown9-2 17y agoShouldn't this survey have a "I never learned it" option? I can't vote on / use something that I don't know.