9 ms·
Lisp, like linux, might actually benefit from fewer choices
by clircle 3y ago
Lisp, like linux, might actually benefit from fewer choices
- worthless-trash 3y agoHard disagree on all counts.
- Joker_vD 3y agoSeriously, how many Lisps for the 21st century do we really need? Especially considering that we are almost a quarter into that century already.
- GeorgeTirebiter 3y agoThere's newLISP http://www.newlisp.org/ http://www.newlisp.org/ which takes a fresh look at lisp and has plenty of libraries. Lately, I'm going back to what I used years ago: Common Lisp. There are great books describing it, and implementations like SBCL https://www.sbcl.org/ https://www.sbcl.org/ are solid. p.s. Plenty of time to come with the lisp for the 22nd century!
- anonzzzies 3y agoYep, I regularly try new ones but sbcl and emacs/slime are hard to beat.
- tombert 3y agoI know it's a bit of an oddball in these discussions, but I find that I still have the most fun with Clojure. It's fast enough, relatively easy to get anything I want done, with proper functional data structures built in, with the entire JVM ecosystem to play with if I need it. I got pretty into Chicken Scheme a few years ago, and I did a quick breakout clone in Racket as well, and I think they're pretty cool, but Clojure is the only one that has ever evolved past "toy" for me.
- jjtheblunt 3y ago> the entire JVM ecosystem to play with if I need it. Do you ever need it?
- tombert 3y agoKeep in mind, I'm almost always in the engineering world more than the pure CS world, and yeah, it's often pretty useful. The Apache tools are the biggest things for me; I do a lot of work with Apache Kafka, so being able to directly use the first-party libraries like Kafka Streams is useful. If I need to do any kind of distributed processing stuff, I have Apache Spark or Apache Flink when I need it. It's kind of falling out of favor now, but I still occasionally have a need for Apache Zookeeper as well. Now, I'm sure that there's Clojure-first versions of these things, but the sad truth of the software landscape for me is that a lot of it is still powered by Java. I can either be tasked with reinventing a lot of the infrastructure myself by using a language that doesn't have good Java interop, or I can use a JVM language. I think that Clojure is the least-bad of the latter category. In some ways, Clojure is an even better Java than Java; it's easy to compose together arbitrary java methods, without any kind of fancy fluent interface or anything, for example, and there's lots of helper macros that I think really do smooth over the Java-ness of certain interfaces.
- bitwize 3y agoThis is how I feel about Kawa Scheme. It has very good Java interop without all the... Clojurisms which are like pebbles in my shoe while I'm working. It's what I'd reach for if I wanted to author, say, a large web service from scratch.
- tombert 3y agoClojure was the first Lisp I learned, and I started using specifically for its concurrency support, not the fact that it was Lisp. I later grew to love Lisp and played with other ones. I bring this up, because I am curious which “Clojurisms” annoy you? I probably didn’t notice them because I wasn’t used to other lisps when learning it.
- bitwize 3y agoNewlisp actually revives ancient mistakes in Lisp history. For example, there is no lexical scoping -- and "contexts" are not a substitute for lexical scoping. Lexical scoping ensures that bindings introduced within a scope cannot leak outside the text of that scope, avoiding subtle bugs that may manifest with dynamic scoping. Hence, Newlisp's lambda isn't really lambda, like Lisp 1.5's but very unlike Common Lisp or Scheme (absent side effects). Newlisp's default (and most used) FFI is also... dangerous. You simply import a symbol from a shared lib and it gets bound to a procedure corresponding to a C call to that shared lib. No specifying of parameter types -- and most platforms do not encode parameter type information in shared libraries in a standard universal way. (Things like C++ name mangling, and COM, only apply to libraries written within their respective ecosystems.) But don't worry. Newlisp trusts you to get the parameter types right, because Newlisp is for the practical Lisp programmer. Woe betide you if you don't, though! Guile's (system foreign) module provides a similarly dangerous FFI, but at least you can (and must) specify parameter and return types when you import a foreign procedure from a shared lib that way, allowing for checks for parameter correctness at the call site, if not the import site.
- kazinator 3y agoIf 10 people deciding to make a language invent different new syntaxes, they don't show up on the same radar at once. If they each make it a Lisp: oh no, how many Lisps do we need?
- TylerE 3y agoAll these toy lisps aren't really advancing the state of the art. It's dog bites man at this point, there really isn't much new to talk about. There's nothing wrong with that, but , oh, look, a new scheme, yea. None of the previous 70 changed my life in any meaningful way. Functional programming is easily available in almost any modern lang, virtually all of which have better tooling (and no, I have zero interest in using emacs) and ecosystems.
- zem 3y agogerbil is hardly a toy lisp!
- TylerE 3y agoWhat major real world systems that people actually use are implemented in scheme? Lisp programming environments don’t count. I’m talking general use software.
- zem 3y agohttps://www.lambdanative.org/#apps https://www.lambdanative.org/#apps off the top of my head a bit of googling also came up with https://www.quora.com/How-has-Scheme-been-used-in-real-world-applications/answer/Matthias-Felleisen https://www.quora.com/How-has-Scheme-been-used-in-real-world...
- TylerE 3y agoThat post is from years ago, and even then almost all of it is past tense. (Used not use). The three things that I actually spot checked were form the 80s. Yeah, lots of companies were throwing money at lisp during the original AI boom, not news.
- coldtea 3y agoWell, choice has its charms, but a non fragmented experience, with the wider combined adoption, and all the now scattered resources devoted to it, has more actual benefits.
- smegsicle 3y agoincluding the implication that scheme is a lisp
- entropie 3y agoWe love variance.
- CyberDildonics 3y agoI think you meant to say variety.
- bch 3y agoThe vast array of Schemes available is part of what made me eventually land at Tcl and just dig in there.
- jrapdx3 3y agoInterestingly I've had a similar experience. I used Chicken Scheme for a number of years after programming in Tcl for a long time. Tcl always seemed to be a kind of Lisp, an impression that only increased over time. Eventually I resumed using Tcl when I realized the language had been steadily improved over several years. With Tcl 9.0 on the horizon I see no reason to look elsewhere for accomplishing most programming tasks.
- bitwize 3y agoTcl offers metaprogramming capability that rivals Lisp's, but they way it goes about doing it is... kinda nuts. I don't particularly care to stare into that yawning abyss for too long, so it sits well behind Scheme in terms of languages I'd reach for. Tcl/Tk is still an unrivalled way to prototype a GUI -- and with Snit megawidgets, it's almost like programming a modern JavaScript component framework like React.
- jrapdx3 3y agoYes, you're right, Tcl suffers from lack of Scheme-like macros. While a lot can be done using procedures, methods and introspection "tricks", often enough it's far from elegant. However I haven't been stymied all that often. Missing functionality can sometimes be provided by C-API extensions which I've gotten pretty good at writing. Completely agree about the utility of Tk. I remember reading somewhere that HTML/CSS widgets were influenced by Tk. Don't know how true that is but I can see how it could be.
- a-french-anon 3y agoFun thing is that Tcl was relegated to the role of gateway drug to Common Lisp, in my case. I still use it when I want a more modern stdlib or its well-integrated event loop. (I actually tried to retrofit some of CL in Tcl, heh; https://wiki.tcl-lang.org/page/q3cpma https://wiki.tcl-lang.org/page/q3cpma)
- magpi3 3y agoThat is short-term thinking for both linux and lisp. In the long-term, we need more experimentation, more creativity, and more risk-taking. Always. And what better place for that than on HN (at least for discussion purposes).
- brabel 3y agoHow long is "long-term"? 10 years? 20 years? Lisp has been around for over 50 years. How long do we still have to experiment with Lisp before we're happy we've found the "ideal" Lisp?
- tmtvl 3y agoCarpenters are still experimenting with hammers and other tools. Carpentry has been around a little longer than Lisp (except of course the Ur-Lisp the gods used to create the universe).
- magpi3 3y agoThere is always a need for both short-term and long-term thinking. If I am running a company, I am thinking short-term (at least when it comes to tooling). If I am dreaming or doing cutting edge research, I am thinking long-term. I think we are still just babies in the history of programming. 50 years is nothing.
- beanjuiceII 3y agoIt's actually how lisp plans to take over.. Enough implementations and before you know it you have enough lispers to eclipse all other programmers
- lioeters 3y agoI think I'll call my next Lisp implementation Eclispe.
- d-lisp 3y agoThen, conquer the web with ecljspe.
- boxed 3y agoAll of them writing code that doesn't work for the other's little islands. It sounds like the Discordian battle cry: united we fall, divided we stand!
- beanjuiceII 3y agoand then one day, a Lisp will be created amongst all Lisps One Lisp to rule them all, One Lisp to find them, One Lisp to bring them all, and in the darkness bind them.
- numeromancer 3y agoI think we'll be led by a programmer from another language who comes and unites the tribes against the languages that now dominate, a voice from the outer world. The "Lispan al-Gaib", if you will.
- 54hpk124j32p34 3y agoHasn't worked for Common Lisp.
- audiodude 3y agoI think the wording of the article title helps push people to this conclusion. My first thought was "we're 24 years into the 21st century, I'm sure we already have one of those".
- fulafel 3y agoI wonder how much the existence of the "a lisp" concept/term affects this. We don't have top-level terms that cover Java, C# and Kotlin, or TypeScript and JS, or C/Objective-C/C++.
- ludston 3y agoLisp programmers often call these algol-like languages or c-like languages.
- kazinator 3y agoCurly-Braced Cruft int main() { } \begin{document} cp ${srcdir}/x ${tgtdir}/y .foo p { border: 0px; } /m { newpath moveto } def
- bitwize 3y ago1) C-syntax languages 2) JavaScript family languages 3) C family languages
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]