9 ms·
I have a suspicion that outside of the 10 people writing lisp seriously—shirakumo, stylewarning, lispm, and some others— there’s more characters of prose praisi
by gaze 4y ago
I have a suspicion that outside of the 10 people writing lisp seriously—shirakumo, stylewarning, lispm, and some others— there’s more characters of prose praising lisp being written than lisp being written. It’s a great language. I really like it and am using it for some projects. I just want people to actually use it rather than talking about using it.
Edit: I’m wrong in the present case! Author has some cool projects on GitHub under themetaschemer. Still though I’m struck by the ratio of lisp project articles vs lisp praising articles hitting HN’s front page.
- weavie 4y agoKinda by definition the people you hear about are the people that are talking about it and not the people that are using it.
- gaze 4y agoWhat? You see tons of rust projects hitting HN advertised as rust projects and a very different ratio of this to “rust is the enlightened choice” articles
- taylodl 4y agoThat's because Lispers don't waste their time re-writing well-worn tools in Lisp just for the exercise of writing something in Lisp. All those Rust posts you're talking about on HN? They're annoying.
- sshine 4y agoWhere would you recommend one starts? With Racket?
- gaze 4y agoEvery lisp variant is a bit different. Racket, Clojure, and Common Lisp are all excellent. Read a bit about the compromises and dip your toes in one and see if it sticks.
- User23 4y agoRacket has more didactic origins but I’m given to understand its a good albeit slow general purpose Lisp. Common Lisp is basically the kitchen sink programming language and with a good compiling implementation like SBCL it’s possible to write high performance code. Clojure is the Lisp that you’re most likely to get paid to write. It’s as performant as any JVM hosted language.
- bmitc 4y agoI like Racket, but it is also a kitchen sink Scheme. It has a ton of features: GUI framework, drawing (although it's slow), event spaces, places, futures, OOP, mixins, traits, macros, #langs, etc. It can get quite complex very quickly. I have mainly used it as a Scheme.
- School-Cotton 4y ago> It’s as performant as any JVM hosted language. Surely not true if you write it idiomatically using the standard “purely functional” collections.
- KingMob 4y agoNo, but it offers a lot of escape hatches to get closer to Java-level performance: transients, mutable fields with deftype, atoms, transducers to minimize intermediate sequences, type-hinting, Java interop, etc. I've seen Clojure sped up to within 20% of Java's speed, at the cost of very un-Clojure-y code.
- Keyframe 4y agoYeah, scheme will do. Racket especially since it has all things to get you started. Once comfortable, try dipping into proper CL like SBCL and then decide on a small self-designed project with a clear goal in mind. That way you'll see the struggles or lack of.
- abudabi123 4y agoLook at the two files in Kandria: ai.lisp, water.lisp. File through the Elite source code. Do tut.txt in Arc. Picture ten billion things and ChatGPT-X, Lisp interacting.
- taylodl 4y agoIt really depends on what runtime you're targeting. If you're targeting the JVM, CLR or Javascript then you might want to check out Clojure. It'll let you interoperate with libraries in each of those environments, which you'll find useful. If you're looking to create a stand-alone executable and have C/C++ libraries you'd like to use then SBCL or Racket may be more useful to you. I started with Common Lisp and PG's online book On Lisp. http://www.paulgraham.com/onlisp.html http://www.paulgraham.com/onlisp.html
- kettunen 4y agoPersonally I feel that Scheme (Racket or some other implementation) is in many ways better language compared to e.g. Common Lisp. Simpler and more intuitive (at least IMO) compared to Common Lisp which is in scale of Java or C++ when it comes to the size of the standard/language. This can be of course explained due to the nature of Common Lisp and how its, according to its standard's author, more about politics than art, since when Common Lisp was being planned they needed to accomodate many features from many different Lisps before it. But despite that, when it comes to real-world code, in my own experience, Common Lisp and especially SBCL takes the cake.
- lispm 4y agoRacket has easily the size & complexity of Common Lisp. https://docs.racket-lang.org/reference/index.html https://docs.racket-lang.org/reference/index.html I would think that it has roughly 4000 identifiers in the Racket language. See the index: https://docs.racket-lang.org/reference/doc-index.html https://docs.racket-lang.org/reference/doc-index.html Common Lisp has <1000 exported symbols in the "COMMON-LISP" package. > when Common Lisp was being planned they needed to accomodate many features from many different Lisps before it Common Lisp is mainly a slightly modernized & portable version of Lisp Machine Lisp, the feature influence of other Lisp dialects is not that big. The main difference is that Common Lisp provides lexical bindings and lacks a few features.
- floren 4y agoI think Lisp has a sort of cachet to it, "lost secret of the ancients scorned by foolish mortals," that draws a lot of people to talk about it endlessly and speculate about how important it is instead of just... using it. I used to see the same thing in the Plan 9 community where people loved to post on the mailing list about all their grand plans for doing stuff with Plan 9, but they never even installed the goddamn thing! If they had, they'd have realized it has some neat ideas but it's also just a software system, and a rough-around-the-edges research system at that. Similarly, Lisp is just a programming language, and regardless of how many blog posts you read about it, you'll still have to actually make the program in the end.
- throw009 4y agoLisp is a research language that lucked into great syntax by accident. I use it all the time to help me think through a problem and then implement it in something brain dead like rust so the average programmer can follow along. From the outside my code bases look 0% lisp, from the inside they are 100% lisp with build artifacts in other languages.
- grugagag 4y ago> I use it all the time to help me think through a problem and then implement it in something brain dead like rust so the average programmer can follow along. Is Rust brain dead language anyone can follow along? Did you mean python? > From the outside my code bases look 0% lisp, from the inside they are 100% lisp with build artifacts in other languages. Can you expand on that? You generate code of other language than lisp in lisp?
- throw009 4y agoNo Rust, warmed over ideas form 40 years ago are just hard enough to make mediocrsties think they are cutting edge. >Can you expand on that? You generate code of other language than lisp in lisp? I write the real program in lisp in two weeks then translate it to a brain dead language over a few months so the average developer contribute to the code base. It's rather impossible to get people used to algol descendants to think about complex programs. It's rather like explaining color to the bilnd.
- neilv 4y ago(I've done a lot of Lisp, for money, and for open source platform&community buildout.) HN articles about exotic things, not just Lisp, do seem to get upvoted disproportionately. Also, PG declared Lisp as something you're supposed to think is important or a superpower, and I've wondered whether that also contributes to some upvotes on HN. But I'm not aware that a single one of the bajillion YC startups used Lisp. Maybe it's like an admirable religious dogma that a congregation affirms each weekend, and then promptly forgets about for the rest of the week.
- jfoutz 4y agoreddit. they switched to python for various reasons.
- thebigspacefuck 4y agoThey’re switching to golang now for other various reasons
- lispnut 4y agoAny links to stories about them switching to golang I can follow?
- justcool393 4y agoso as far as i can tell it's not like a full switch per se but reddit has services written in both python and go. r2 (old reddit, the reddit API, some parts of new reddit, some of their ML stuff), their monolith, is still written in python. some services they have in go include some real time services (like the reddit talk stuff seems to be primarily written in go) reddit kinda seems to have a SOA (not microservices). while there are some codepaths that go through r2 (and indeed this seems to be the case in a lot of cases with regards to old reddit), a lot of newer code uses services. (note: their engineering blog (/r/RedditEng) calls a lot of their stuff microservices and indeed they may be using that for some things but a lot of their stuff have been described as using more of a SOA vs a microservices.) someone like /u/ketralnis may have more information as well?
- owl57 4y agoI feel like there may be more Emacs Lisp being written recently than other Lisps and prose about Lisp combined.
- convolvatron 4y agowhich is a terrible shame and a lesson. of the 10 or so lisp like languages i've used extensively, elisp is by far the worst. it succeeds because it interfaces with something important, and its carried along everywhere.
- asyd 4y agoI agree, but I'm grateful that it exists. After much searching for the perfect languages and perfect tools (while using emacs as a simple text editor), it finally dawned on me that Emacs itself is as close as I'd get to a lisp machine right here in my own back yard. A lisp machine that sits quite nicely on top of linux/unix and plays very nicely with it. There's much that I love about the lisp world, and the author does a great job of articulating the reasons why. There's also much that I love about the unix philosophy. Emacs is a bridge between these two worlds that I love, and I'm old enough now not to give a shit (or need to give a shit) what the rest of the world is doing. This is home.
- pxc 4y agoIt's the lesson of JavaScript as well, famously.
- throwawaysalome 4y agowhich is a terrible shame and a lesson What's the lesson? That a text editor's extension language needs the strong concurrency and immutability models of a Clojure or sbcl? Getting emacs to sit and roll over doesn't exactly require an industrial grade language.
- jimbokun 4y agoIt reflects the beauty of the Emacs design, Taft something written decades ago is still being extended today to completely new use cases, because of the dynamic and flexible Lisp engine interacting with the C core.
- nequo 4y agoI wonder what dialect of Lisp is the most widely deployed and most widely written. Maybe Clojure, or Emacs Lisp?
- fulafel 4y agoAutoCAD uses it for scripting, might be a candidate. Eg https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2022/ENU/AutoCAD-WhatsNew/files/GUID-80F564DA-A5C4-4242-91DB-2331E231E2A6-htm.html https://knowledge.autodesk.com/support/autocad/learn-explore...
- eyelidlessness 4y agoI haven’t written any kind of lisp for years, though I used to do so professionally (Clojure) and have been moderately successful getting some reusable stuff open sourced in that context (every time I look back at the “biggest” of these contributions it’s always amusing because it was not much more than a relatively simple macro). I’d love to write more lisp, and like the article author I’m drawn to Racket, but I’ve just got very little bandwidth for exploring it further. Even so, lisp generally is something I advocate learning especially to mentees, because learning it (in author’s sense pretty much exactly as expressed, but with no strong feelings towards static typing at the time) was so transformative for me. I don’t need to write lisp to reap most of its benefits now… I write code in whatever language with the same attitude the author describes: mostly operate on values, abstract and isolate mutations with particularly high value, enjoy reasoning about code easily. And I’d add: recognize things which are like sexprs for what they are as things you can treat like sexprs because that’s more or less what they are. Granted I’m not posting anything to HN, front page or otherwise besides comments. But I’m still inclined to praise lisp even a few years out from the last time I actually wrote any. Because it’s bound to be as foundational for others as it has been for me.
- bsder 4y agoLisp was probably the first widely available language to use garbage collection as well as generate an ecosystem. As such, it damn near was a superpower compared to everything else available at the time in about 1984--think Assembly, C, Pascal, etc. Garbage collection meant that all the effort everybody else spent on memory management could be spent on your problem. And the ecosystem meant that you had actual data structures to work with right in the language library instead of having to build those from scratch every time. Emphasis on WAS. Right at about 1988, the new languages demonstrated that everybody got the message. Perl, Tcl, Python, etc. all had garbage collection and worked very hard to create a general ecosystem. This roughly negated the advantages that Lisp had. At that point, anybody really well versed in Perl, Tcl, Python, etc. was equally as productive as if they were writing in a Lisp.
- erik_seaberg 4y agoLisp debuted powerful features (GC, lexical scope, closures, destructuring, reflection) back when they were still wildly expensive. Over the decades most of these filtered into everything we use. But I still haven’t seen any rivals for its convenience in providing domain-specific languages via macros.
- ahefner 4y ago...and it did take decades.
- deleted 4y ago[deleted]
- cafard 4y agoSomewhat to my surprise, I ended up writing some script-fu lisp when I couldn't get python-fu to do what I wanted in GIMP. I believe it got some use seven or eight years ago at work for batch resizing of images.
- rosebay 4y ago[dead]
- lukego 4y agoSurely most Lisp hackers /are/ just writing Lisp code behind closed doors. Those 10 highly visible people are the rare exceptions. I'm happy to hear more thoughts and notes like this from the silent majority.
- fulafel 4y agoAt least in Clojure's case, most dev teams are definitely just working on normal (domain-wise) business apps, leveraging existing stuff from the dev community, and not posting on the internet about it.
- distcs 4y ago> Edit: I’m wrong in the present case! Author has some cool projects on GitHub under themetaschemer. Maybe I am missing something but I visited their GitHub but could not find any cool projects. Clearly there are better examples of people who write Lisp seriously instead of evangelizing it. You have given some good examples of them yourself.
- comfypotato 4y agoA portion of it has to be because of Emacs. I read all these front page posts because I love Emacs, and I’m sure I’m not alone. I picked up Clojure because I got familiar with elisp. The gateway has to be Emacs for a lot of people. And it ends up being a very good first impression for the people who stick around so the cycle builds on itself. The tricks my muscle memory does on its own accord with lisp syntax within Emacs makes programming more fun than any other context.