7 ms·
Lisp for the Web (2008)
- phoe-krk 8y agoPart 2 on the Internet Archive: https://web.archive.org/web/20171109223946/http://msnyder.info/posts/2011/07/lisp-for-the-web-part-ii/ https://web.archive.org/web/20171109223946/http://msnyder.in...
- jdormit 8y agoThank you!
- melling 8y ago“Lisp is actually a family of languages discovered by John McCarthy 50 years ago.” McCarthy was deep in the Amazon when suddenly out of nowhere...
- combatentropy 8y agoI've seen the same thing said about Unix, that it was not invented, it was discovered.
- Proven 8y agoOnly Windows was copied.
- jhbadger 8y agoThe distinction between discovery and invention is somewhat arbitrary. Yes, it would be weird to talk about people inventing a new species (except in synthetic biology), but people talk about "discovering" a mathematical concept, so why not a family of programming languages?
- melling 8y agoThere’s a reason for that in mathematics: https://english.stackexchange.com/questions/16768/discover-or-invent-in-mathematics-context https://english.stackexchange.com/questions/16768/discover-o...
- aidenn0 8y agoComputer Science is just a subfield of mathematics...
- winceschwab 8y agoThere's this mythical belief that programmers like to tell themselves: "I'm as good at math as I am programming." It turns out that for many, this idea is far from the truth. The similarities are superficial. The notation is abstract artifice. Math is not programming. Programming is not math. If you try to take what you know, and instictively use in one context, and try to walk it over to the other, and directly reapply it, you'll surprise yourself at the amount of disappointment experienced.
- deleted 8y ago[deleted]
- Barrin92 8y agoI'll gladly accept that Lisp was discovered, but PHP was definitely invented.
- craigsmansion 8y agoI know it seems like one of those Lispers' idiosyncrasies--"discovered" instead of "invented". I first heard it explained by Philip Wadler, and upon reflection it was one of those "enlightenment" moments that Lispers always go on about: Lambda calculus is a discovery, and should we ever encounter an alien space-faring species, we could read their programs in spite of their alien processing architectures (given that they use a functional language, but let's face it, they have the tech to cross space, they know what they are doing, i.e. they're in the functional camp) "Propositions as Types" by Philip Wadler, Strange Loop. (https://youtu.be/IOiZatlZtGU?t=1678 https://youtu.be/IOiZatlZtGU?t=1678)
- agumonkey 8y agothen you can add a layer of Kay "Lisp is the maxwell equation of computing" I do agree that lisp being super tiny and quite mathematical at heart is probably less a social invention than the rest.
- s-shellfish 8y agoYes, there's a real reason for using the word discovered instead of invented. Depends on how webbed in you are intellectually to people around you. Which is often highly dependent on language, logic, and math. Lambda calculus. Enlightenment. Discovered, not invented. If it already exists somewhere... Everything coming together in the same patterns. Influence.
- agumonkey 8y agoI wasn't that sudden, other than that yes
- bitwize 8y agoMore like mathematics: the iron laws of points, lines, angles, and triangles existed -- and were used by the Egyptians -- long before Pythagoras gave them succinct expression. So it is with Lisp. Representing algorithms as ordered n-tuples of functions with their arguments is such a trivial transformation of ordinary mathematical practice that it hardly merits consideration as a novel invention on its own. The rest is deriving rules that apply to these transformed expressions. Attitudes may change, of course; had Nathan Myhrvold discovered Lisp, he'd have it locked up in patents till well after 32-bit time_t's overflow.
- dan-robertson 8y agoI think this is a mischaracterisation of Lisp and the history of mathematics. Saying that lisp is all about writing (function arguments...) misses the point. One can write function application in ML in this way too. The key things are approximately that all syntax could be written as sexps, including things like let and lambda which in other languages require special syntax; and that the semantics (somewhat) corresponds to the lambda-calculus and so includes lambdas. I would not say that Lisp is fantastically succinct. There are many ways to express things and the main advantage of lisp is that you can choose how to do this, so long as you express things in sexps. Yes the (very) ancient Egyptians sort-of knew about Pythagoras’ theorem, although I would perhaps say that the babylonians knew it better. I don’t know whether it is known if they knew that it held for right triangles both ways or just that one could make a right triangle from a^2+b^2=c^2. However I wouldn’t say that Pythagoras made it succinct. For one thing he likely didn’t exist. Also the main contribution of the Greeks to this would be the notion and formalisation of proof (which evolved over time in Greece), rather than the theorem itself. Indeed I would say that the modern expression of the theorem is more succinct than the one one will find in eg Elements
- carapace 8y agoNot quite... McCarthy thunk up a beautiful self-evaluating eval function for lambda calculus and wrote it down. (The page-long "Maxwell's equations".) Then he showed it to someone (I forget who) who said, "I can implement that." and did. Suddenly: LISP. Same pattern with Smalltalk: Alan Kay thought it up and someone wrote a little VM in C and suddenly Smalltalk was a thing in the world.
- tosh 8y agoSteve Russell https://en.wikipedia.org/wiki/Steve_Russell_(computer_scientist) https://en.wikipedia.org/wiki/Steve_Russell_(computer_scient...
- carapace 8y agoAh, one of the actual literal original Hackers. I doff my cap.
- alankay 8y agoThe "someone" for Smalltalk was Dan Ingalls. I came up with the Smalltalk half-pager because John McCarthy had shown how to do it -- and because message-passing OOP can be a not too crazy perspective on Lisp (especially a variant of "apply", and especially if you use the FEXPR and closure ideas).
- carapace 8y ago(OMGOMGOMG Dude, Dr. Kay, sir, your excellency, sir! I'm a huge fan! HUGE! You have made my day. I'm going to be telling random strangers in the street "Alan Kay responded to m'comment on the intertubes today!" and whistling and dancing on lampposts. Okay, deep breath, calming down...) Apologies for my glibness, I meant no disrespect. I knew it was someone I should remember. (He of BitBlt fame, damn I'm getting old and forgetful!) - - - - So... "discovered" or "invented"? FWIW, I think the point turns on one's metaphysics. Is there some Platonic realm where e.g. each of the "Turing Drawings" ( https://maximecb.github.io/Turing-Drawings/ https://maximecb.github.io/Turing-Drawings/ ) has always existed, just waiting to be discovered? Or did Maxime Chevalier-Boisvert invent them? All of them? What is the ontological status of the vast set of TDs that have never (yet) been seen by any eye, or that have never been run on any real machine? - - - - Er, on a tangent, may I make bold to ask you, did you know that Prolog Discrete Clause Grammar rules are very similar to the OMeta parser generators? https://en.wikipedia.org/wiki/Definite_clause_grammar https://en.wikipedia.org/wiki/Definite_clause_grammar
- tmalsburg2 8y agoSounds interesting. Has anyone used the approach/stack described in the book and can report on pros and cons? Edit: I'd be especially interested in hearing opinions about ParenScript.
- dcooper8 8y agoWe are using a slightly different set of libraries. CL-WHO for generating HTML and XML for sure. AllegroServe for the webserver (with zacl, a new Allegro CL compatibility layer, for non Allegro CLs).
- blihp 8y agoI'm doing dynamic web apps on a different stack but dabbled with doing web apps in Lisp and found the tradeoffs to be quite similar. Pro: rapid prototyping and development, excellent debugging capabilities (both for your web app and network requests... can be extended to browser-side with effort), your app can have capabilities that are difficult to implement with static languages/frameworks Con: small user community which results in limited selection of frameworks all having their own quirks/limitations, when things break you're often on your own, in dynamic languages performance often won't scale as easily or as far vertically (the recommended approach is often to be sure your design can scale horizontally)
- lisper 8y agoI started writing something similar a while back: https://github.com/rongarret/BWFP https://github.com/rongarret/BWFP If there's enough interest I'll pick it back up again.
- serialdev 8y agoPlease do, there is sadly not enough stuff related to lisp, specially valuable stuff from people that were working during the AI boom. I for one would more than welcome any thorough project/info from your perspective
- lisper 8y agoOK, let me see what I can do. Anything in particular you'd like to see in the next chapter?
- serialdev 8y agoWell for me, I'm super curious about compiler development, and I think, in the topic of this thread, maybe a chapter on writing a recursive descent parser for JS? building a transpiler? or using lisp as a intermediary with LLVM IR? somewhere where either DSL || "Code is data" and the true advantages of lisp shine through, and I would love that from an experienced lisper. Also if you could go into some use cases for tunable compilers that is seldom elaborated when that is mentioned as a huge lisp advantage! Thanks for giving the community your time in advance!
- cnasc 8y agoThis is exactly the book I wish I had right now
- lisper 8y agoWell, you have two chapters :-) I will try to find some time to write more. Anything in particular you'd like to see in the next chapter?
- WalterGR 8y ago(2008) Though the 45-page book was finished in 2015, according to https://leanpub.com/lispweb https://leanpub.com/lispweb.