15 ms·
Some thoughts about raising the profile of Lisp
- taeric 5y agoI always feel these sorts of posts are misguided. They portray VSCode gaining market share as something other than an marketing investment by Microsoft. Similar vibes go for why Java rose to popularity. At some level, to build a market, you have to invest in marketing.
- AnimalMuppet 5y agoYou need marketing. Someone has to know your language exists, and is useful, and why it's useful. But to build a lasting language, you need a language that solves real problems better than other alternatives. Java promised three things, and delivered two and a half. It promised - and delivered - an end to manual memory management. It promised and delivered a huge, thorough, useful library. And it promised and kind of half-delivered "write once, run anywhere". That worked well enough to be at least somewhat useful, and failed enough to be really annoying. Marketing can get you in the door. To stay there, though, you need something that is actually useful.
- taeric 5y agoI feel you are dodging my assertion. Java promised those, with a stupid large marketing budget that shoved it down the throats of anyone near computers at the time. VSCode probably has more money going into developer reach out than I can imagine. And I can imagine big numbers. Am I claiming that intrinsic quality is fabricated? Not intentionally. I am claiming that it only goes so far.
- pjmlp 5y agoThere was no "stupid large marketing budget" in 1996, when the only thing available was the JDK, and we had to use emacs/vi/Ultraedit to write our Java programms and rely on makefiles to build the whole thing. Yet our distributed computing department decided to move right away into Java from C to teach distributed systems, thanks RMI and a coherent toolchain across the platforms we had on the labs. Similarly by 1998 the compiler development classes had moved from C into Java, thanks tooling like SableCC. By 2000, IBM that used to be a big Smalltalk vendor, and used Smalltalk as foundation for their Visual Age IDEs, moved into Java, and from Visual Age ashes Eclipse was born. Borland added a Java IDE to their collection, while Symantec not only did the same, they also created their own Java implementation. Ah, and then there was this fellow called Anders Hejlsberg that left Borland to Microsoft, and joined Visual J++ team. That is real work, and people paying real money for products. We didn't need someone shoving it down our throats to appreciate what it brought into the 1996 - 2000 computing landscape.
- taeric 5y agoYou are comparing the budget to push Java, the language, with every other editor. My assertion is there wasn't a journalist, college student, or product manager even closely related to computers that wasn't courted with regards to Java being the best language of all time. You do hint at another angle I left out. Getting Microsoft to pour money into this landscape, in the form of Visual J++, was probably more key than makes sense. It is very much like real estate, in that regard. You want to spend where other people are spending, if you want the best return.
- robomartin 5y agoA tangent, yet I think it is in the same domain: When I see a new movie advertised incessantly, I conclude it must be bad-to-terrible. A good movie, product, language needs little to no marketing.
- taeric 5y agoDepends how much you trust the marketing channel. I recall back in the day, if Penny Arcade promoted something, I probably liked it. (Note, this may still be the case.) Similar, if a few of the trusted artists and such I have on Twitter recommend something, in willing to buy it near instantly. Otherwise, the marketing budget is merely correlated with the product budget. And, to a large extent, big budget productions are predictable. In that you can usually easily predict if you will like it.
- kamaal 5y agoOn a tangential note, Java doesn't even have a decent documentation site these days. The documentation page feels like its from 2002. In fact its more like non existent. I'd like to think that's a non starter for some one new starting a project in Java.
- simiones 5y agoAre you talking about the API docs[0]? Or about some official tutorial page for Java the language [1]? The Java tutorials are seriously out of date (they even mention explicitly that they were written for Java 8, and that they may refer features that are no longer available). However the Javadoc is well maintained and quite useful, discoverable and thorough in my experience. Certainly one of the best native library docs that I've seen. [0] https://docs.oracle.com/en/java/javase/12/docs/api/index.html https://docs.oracle.com/en/java/javase/12/docs/api/index.htm... [1] https://docs.oracle.com/javase/tutorial/ https://docs.oracle.com/javase/tutorial/
- kamaal 5y agoI got -2 points for stating the very noticeably obvious. That pretty much sums up just how rusty and old Java has become over the years. So what is the way to learn Java in 2021? Buy 2 - 3 Paperback books? These days even Perl has documentation on a site that belongs to 2021. These are some things that you need to do to make your language accessible to people wanting to start new projects. As of now the only real way to read something about Java on the internet is adhoc answers on StackOverflow.
- mixedCase 5y agoNot everything successful is due to marketing. VSCode is extremely accessible, performant enough, has a huge ecosystem tuned for a plug'n'play experience and is free, among other graces. It's just a great text editor for programmer's to get productive fast, both beginners and experts.
- taeric 5y agoI'm torn. I'm not meaning to claim that marketing is the sole requirement for success. That said, when the topic is raising the profile, I see profile as market share. Which... Needs a marketing budget.
- xvilka 5y agoIf only it wasn't Electron...
- p1necone 5y agoIt may be an Electron app, but a lot of custom engineering has gone into the core text editing stuff - https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation https://code.visualstudio.com/blogs/2018/03/23/text-buffer-r...
- evilduck 5y agoWhy do you care? Serious question. Have you ever compared the system resource demands of emacs and vim or neovim when you add enough plugins or extensions to reach feature parity with VS Code? They get to be just about as demanding on your disk space, ram and idle cpu.
- p1necone 5y agoI don't give a shit about Microsoft but VS Code is really good. It's performant, easily customizable and has a healthy extension ecosystem for most popular languages. Microsoft doesn't exactly have a fantastic rap with developers, especially OSS developers - do you really think it would have become this widely used if it wasn't good?
- taeric 5y agoI feel I can claim the same on emacs. Such that this rings kinda hollow for me. :(
- p1necone 5y agoI'll concede the healthy extension ecosystem is possibly a result of the marketing budget ("Developer Outreach" being the preferred euphemism). I suspect the learning curve is probably a big part of Emacs lack of mainstream success (same with Vim/Neovim).
- taeric 5y agoPretty much this. When called "developer outreach", it doesn't trigger nearly the backlash as calling it "marketing." But... these are the same things. The learning curve on all software is stupid hard to pin down. Consider, arduino has been a massive success in the embedded hobby market. Why? Nothing really easy or clever about it. Just cheap and clearly marketed for what it can and intends to do.
- sokoloff 5y agoI think the Arduino example might be stronger on the “they finally made it easy” than you give it credit. I had done some electronics and micro-controllers work in college, so I wasn’t starting from zero, but the simplicity of the open an example, click upload, and watch it succeed was pretty magical. I’d tried with only modest progress to do some PIC development (as a hobbyist) a few times in the years in between. Arduino was an undetectable amount of effort to get the examples to work. That, in turn, enables a bunch of GitHub and YouTube style of collaboration among regular, non-wizards who can hack something to a basically working condition, share it, and have someone be semi-confident that they can do it too. Professionals sneer at the Arduino IDE (and its inherent removal of gatekeeping), but it’s massively popular because it’s easy. (It’s not because it’s a great IDE for sure; it’s the least pleasant program that I use somewhat regularly.)
- mbrodersen 5y agoWhat marketing? I use VSCode because it is really really good. Better than anything else I have tried (including Emacs). Emacs feels like it hasn’t evolved for 50+ years. The kind of thing that my grand dad might have appreciated but not something that a modern person would use.
- mbrodersen 5y agoWow apparently some Emacs lovers don’t like it when somebody points out that Emacs is the Ford T of editors :)
- diskzero 5y agoJust don't start criticizing vi next. Then you will be in real trouble!
- mbrodersen 5y agoDon’t worry. I am brave but not stupid ;)
- overgard 5y agoThe only marketing I've ever seen for VSCode has been word of mouth
- mhh__ 5y agoI have never seen an official emacs Youtube Short, whereas Microsoft are making some for VSCode
- smlckz 5y agoTry Racket and DrRacket.
- diskzero 5y agoRacket and DrRacket are great, but Racket has a ways to go if you want to package and ship desktop and mobile applications. It can be done with a lot of work, but the result isn't great. Racket continues to improve. I would love to see more energy put into making it viable as a commercial application development system.
- kamaal 5y ago>>I would love to see more energy put into making it viable as a commercial application development system. From what I learn from reading about Racket from people in this forum. It's supposed to be a language to develop other languages. The other uses are to teach introductory programming classes. It's not designed to be a full fledged production grade programming language. They also seem to be working on discarding the Lisp syntax entirely and making a new language out of Racket with a new syntax called 'Honu'. The project name is Rhombus/Racket2.
- TurboHaskal 5y agoI dare you to build a several thousand LOC project using DrRacket.
- dmux 5y agoI've spent way more time with Racket than Common Lisp (just picked it up over the last month) and Racket just doesn't have the same development experience as Common Lisp. There's no iterative / interactive development in Racket, by design [0]. That means you have to stop-and-reload-the-world every time you make a change. [0] https://blog.racket-lang.org/2009/03/the-drscheme-repl-isnt-the-one-in-emacs.html https://blog.racket-lang.org/2009/03/the-drscheme-repl-isnt-...
- PaulDavisThe1st 5y ago> I think hardcore Lispers see stuff like a Lisp GUI and natively-graphical Lisp editors as pointless bells and whistles – Emacs was good enough for John McCarthy and it still is for me! – but they really are not in 2021. That's almost the last line of the article, but it hasn't established any credible argument about why "they really are not in 2021" other than a much longer form of the same assertion. > Summary: You have to get in there and compete with mainstream, play their game by their rules, if you want to compete. 1. Why does someone want to "compete" ? 2. What would you be competing with? Convincing people that they could & should use Lisp instead of Python or Swift is facing stumbling blocks far, far larger than the user-experience in an editor/IDE.
- aidenn0 5y ago> Convincing people that they could & should use Lisp instead of Python or Swift is facing stumbling blocks far, far larger than the user-experience in an editor/IDE. It is a perennial complaint among those learning lisp that they didn't want to have to learn a new editor too. It's certainly possible that lots of other hurdles keep people from ever getting far enough to complain, but given that growth begets growth, fixing any hurdle would potentially have outsized gains.
- LAC-Tech 5y agoEmacs is a huge stumbling block for me. Everyone used emacs and expected you to as well. Common Lisp seems great - I'm so curious about CLOS - but I cannot get along with emacs, and I have tried.
- nerdponx 5y agoIf you happen to already be a Vim/Neovim user, the Vlime plugin + Parinfer (or at least Paredit) is pretty good. If you don't use either Vim or Emacs... that's harder. You can use the Lispworks IDE, although that's limited if you're not paying for it. I don't think the lack of tooling in Common Lisp is for lack of trying, but for lack of person-hours dedicated to open-source. That said, there are a lot of gaps in the overall Lisp experience: - Quicklisp is very unusual, and while it's quite an impressive effort (and definitely a good thing to have in the world), it's a bit odd coming from other programming languages. - Roswell is great, but under-documented in some areas, and appears to be outright missing features that are actually specified in the docs. - Qlot, like Roswell, is under-documented in some areas. In particular, using it in conjunction with Roswell can be unintuitive, and there's no guide out there (that I know of) to help with this. - ASDF itself has the weird restriction that all of your source code has to be in one single directory. A lot of Lisp users I've spoken to don't see this as a problem, but that in and of itself I think is a problem and a reflection of the problems with the Lisp world when seen from the outside. Of course, Qlot alleviates this issue, but see above. - There is a huge documentation discoverability gap in general. Docs tend to have very trivial examples, and hardcore reference material, with nothing in between. Figuring out how to use even popular libraries like Hunchentoot is not a trivial task. - There's no actual spec for the SWANK protocol (that I know of), which makes it difficult to build new tooling around it. - Editing s-expressions efficiently requires special tooling. Paredit is table stakes, but Parinfer is really what you need once you learn the basics and you understand how indentation works in Lisp code style. Experienced programmers don't need a GUI IDE to get started. But they do need a base of sensible tooling. There will always be a push and pull between "harnessing the full power of Lisp" and "making the power of Lisp accessible outside of some very specific text editors".
- Mountain_Skies 5y agoHanding out Dale Carnegie books to Lisp evangelists would be a good first step.
- deertick1 5y agoI laughed out loud. Working through SICP right now and yeah... All the forum posts I've seen when troubleshooting my lisp code make the community seem insufferable. I don't mean this in any sort of derrogatory way at all but I honestly think Lisp programmers might have a higher rate of autism. Also, seemingly higher IQs, cause it seems like anyone who actually builds software in Lisp extensively is some kind of savant.
- tomlin 5y agoIs this what people want, though? Why wouldn't we push for more open, expressive and semantic languages, instead of trying to dust off older languages because of some abstract warm and fuzzy feeling?
- aidenn0 5y agoTFA seemed neutral to me on this question. It was merely trying to answer "why isn't Lisp more popular" not making a judgement on whether or not doing so would be a good thing. [edit] And the source of the question of Lisp's popularity was here: https://www.reddit.com/r/lisp/comments/pdpl5w/hell_is_other_repls/hascujx?utm_source=share&utm_medium=web2x&context=3 https://www.reddit.com/r/lisp/comments/pdpl5w/hell_is_other_... [edit2] And the fact that the author was reading comments in /r/lisp is a pretty strong indication that they have positive thoughts about lisp...
- linguae 5y agoI remember seeing this post on r/lisp earlier today, and the thought that I had then was that perhaps the reason why Lisp hasn't embraced "modernity" is because many Lisp programmers have not only embraced Lisp the language, but also Lisp the ecosystem, one that came from a world completely different from today's popular commercial systems. Lisp's heyday was during the time of Lisp machines and interactive environments/operating systems such as Xerox Interlisp and Symbolics Genera. While we don't have these things today (though thankfully Interlisp Medley was made open source), we still have Emacs as a surviving and thriving vestige of that world. I see the same thing in the Smalltalk community, except Smalltalk still has modern evolutions of the Smalltalk-80 environment in the forms of Squeak (which is more conservative) and Pharo (which has gone beyond Smalltalk-80 in terms of features). Many Smalltalkers relish the "other world"-ness of Smalltalk environments. These Lispers and Smalltalkers, among others, are still the keepers of the "the right thing" (coined by Richard Gabriel of "Worse is Better" fame) and "The Unix Haters Handbook" flames, and they want to evangelize their world. I disagree with the notion that in order for a programming language (or any other software product, for that matter) to thrive, it must conform to the "standards" of the most popular platforms and tools. In fact, I argue that providing a compelling difference that is substantially better than the competition is what makes a programming language or software product thrive. Why are Lispers so attached to Emacs? Why are Smalltalkers so attached to their environments? For them, they feel that these things are compelling enough to provide an advantage over "standard" tools. I love vi, but I have great respect for Emacs' extensibility through its own Lisp. I also disagree with the notion that a tool needs to be "modern" to be popular. Now, if modernity means running on current operating systems and adhering to current protocols, then I agree. However, if modernity means conforming to mainstream expectations at the expense of a tool's identity, then I disagree. Here on this forum we have a sizable, vocal segment who speaks out against "modern" trends such as the flat UI aesthetic, desktop environments that are designed for mobile computers instead of workstations, Electron apps, Web framework churn, and large siloed applications. Many people find Lisp, Smalltalk, Plan 9, and the suckless (https://suckless.org/philosophy/ https://suckless.org/philosophy/) community of traditional Unix users refuges from this type of "modernity," and they want to keep things the way that they are. Now, this does not preclude Lispers (and Smalltalkers) from embracing mainstream platforms and tools and building solutions that will make Lisp a more attractive solution within these worlds. After all, I love these "other world" environments, but my livelihood relies on coding for mainstream platforms. However, I wish the author had a better appreciation regarding why Lisp programmers evangelize the Lisp world instead of making efforts to have Lisp conform more to mainstream platforms.
- brundolf 5y agoI've flirted with Lisp over the years. I appreciate its simplicity, I'm always casting curious glances when lispers talk about slinging code around, editing it live, this (alleged) blissful nirvana of pure digital expression. I used to work at a company that used lisp (I worked on other things, but I poked at it occasionally), and I've done a couple of small projects in Clojure, just to try it out. I've even made a couple interpreters/transpilers of my own. But advocates always seem to emphasize how fun and effortless lisp is, how that's one of its biggest strengths. And frankly, that has not been my experience. Mainly because of the tooling. I don't have the dedication to dive into learning emacs for something I'm merely curious about. Clojure's experience was less esoteric in some ways, but the tooling was more complicated in other, more Java-flavored ways. If somebody made an all-in-one Lisp toolkit tomorrow, complete with a modern editor experience that just worked, I would revisit Lisp in a heartbeat. Who knows, I might become a convert. I doubt I'm the only one.
- yourapostasy 5y agoCheck out Portacle [1], or if you already are rocking Emacs and SBCL and just want the bare minimum dot-emacs to kick around Lisp, check out emacs4cl [2]. There is an older project called "Lisp In A Box", but it hasn't been kept up to date so most beginners start with Portacle these days. [1] https://portacle.github.io/ https://portacle.github.io/ [2] https://github.com/susam/emacs4cl https://github.com/susam/emacs4cl
- mst 5y agoYesterday, I installed Portacle and then worked through the emacs C-h t tutorial, and then started playing around. This is probably attempt five and the first time I haven't bounced off without even getting through the tutorial, but damn if it isn't fun. So I think "we need to find a way to get people to the 'damn if it isn't fun' part faster and more reliably" is a worthy goal.
- cbrozefsky 5y agoSounds like you're jealous of our lisp swagger and want your mom to buy you the Hot Topic t-shirt version.
- mbrodersen 5y agoAll good ideas. However nobody in the Lisp community seems to actually want to do the work. Despite claims that Lisp is so much more powerful than anything else that it should be “trivial” to do. A bit like people introducing themselves as book writers, without actually ever, you know, having written any books. They are brilliant writers in their own heads but just can’t seems to actually deliver their masterpieces to the real world. While dismissing the rest of us who actually deliver every day.
- diskzero 5y agoIt is hard for me to want to work on an open source Lisp IDE, when I can pay a relatively small amount of money in return for a professional and well-maintained commercial product. It just doesn't make sense for me. If all of the commercial Lisp vendors vanished one day, then it would become much more important.
- amatic 5y agoApparently, there are some VS code extensions for Common Lisp, e.g. Alive: https://marketplace.visualstudio.com/items?itemName=rheller.alive https://marketplace.visualstudio.com/items?itemName=rheller.... I will check it out.
- mbrodersen 5y agoLisp enthusiasts don’t get why Lisp isn’t popular. And they keep repeating the same thing over and over again: that somehow it isn’t Lisp that’s the problem but something else. Nope. The problem is Lisp. I have written my own Lisp interpreters just for fun. An it is nice how you can built a language from very little. However it still doesn’t make me want to use Lisp for real projects. The same way I admire Lambda calculus but would never use it for real programming.
- pjmlp 5y agoI am yet to see a lambda calculus compiler.
- mbrodersen 5y agoTrust me you don’t want to program in pure Lambda Calculus!
- amboo7 5y agoWhenever I used Lisp for real projects over past two decades, the development was an order of magnitude faster and powerful. To stay on the positive.
- mbrodersen 5y agoSo why isn’t the world full of brilliant software written in Lisp? Surely having a powerful language like that will make developers use it? And even if the non-Lisp enthusiasts don’t “get it” how come the Lisp enthusiasts isn’t blowing the rest of us away with awesome software? Honest question.
- diskzero 5y agoIt is a good question and one with many nuances. There are large software applications out there written in Lisp and other "fringe" languages that intersect with everyday life but they are hidden away in various corporate infrastructures. Software trends develop for many reasons, not all of them logical. The time for Lisp being used as a general programming language may have passed, or the right set of circumstances have not yet come together. It is very difficult to predict programming language winners. What seems obvious in retrospect was not clear at all at the moment. I would like Lisp/Scheme/Racket to blow people away with awesome software. Questions raised about price are quite valid. Forcing people to use Emacs is not a path to greater Lisp adoption. There are those of us who have found career niches using Lisp, but there needs to a better effort both in education and tools. Resurrecting old Lisp environments and dragging them into the present day probably isn't the best solution. Perhaps the best solution is a VSCode environment coupled with real-world examples. More Todo lists and CRUD editors as examples haven't done a lot of good in driving adoption. Your questions might make some uncomfortable, but I like that you are asking them!
- qPM9l3XJrF 5y agoWhy not just use Clojure?
- nerdponx 5y agoThis is like asking "why not use Haskell?" in a Kotlin thread.
- qPM9l3XJrF 5y agoI don't follow. For context, I've been thinking about learning Clojure. I'm pretty new to the Lisp world--I went through most of SICP in Scheme years ago, but that's about it. In 2012 Clojure was HN's second favorite programming language: https://i.imgur.com/toGKy21.jpg https://i.imgur.com/toGKy21.jpg What's the best argument for me learning a Lisp besides Clojure? Serious question, I'm not particularly attached to Clojure, and I want to know what I will miss out on by going with it instead of some other Lisp.
- cbrozefsky 5y agoLearn it, it's great, productive, wonderful ecosystem and community, and it will get you a Lisp variant that runs in a modern deployment context and has access to maybe the biggest ecosystem of libraries out there. You'll miss out on some of the details of cons cells, symbols and macros and such, but you'll get the meat of learning to work with a REPL, macros and all that.
- nerdponx 5y agoFair enough, I thought it was snark so I responded with snark. I think you should try both. Lisp as a language gives you a lot more freedom than Clojure, but Clojure has a more consistent and elegant language design. Clojure focuses on mostly-pure functional programming with immutable data structures, while Lisp lets you do pretty much anything anywhere, including hacking deep into the runtime itself (Clojure lets you do this to some extent too, but not as much as Lisp). Some videos that are worth viewing, which together I think provide a good sense of how the languages differ: - "Common Lisp for the Curious Clojurian" by Alan Diepert. A very lucid side-by-side comparison of Clojure and Common Lisp; assumes some but doesn't really require much knowledge of Clojure. https://www.youtube.com/watch?v=44Q9ew9JH_U https://www.youtube.com/watch?v=44Q9ew9JH_U - "Maybe Not" by Rich Hickey. An unusual but thoughtful take on "types" in programming, which I think cuts to the heart of what Clojure is all about. https://www.youtube.com/watch?v=YR5WdGrpoug https://www.youtube.com/watch?v=YR5WdGrpoug - "Immutable Conversations - Common Lisp" interview with Alejandro Serrano and Michał "phoe" Herda. Demonstrates the deep programmability and flexibility of the Common Lisp runtime, including its unique "condition system". https://www.youtube.com/watch?v=pkqQq2Hwt5o https://www.youtube.com/watch?v=pkqQq2Hwt5o
- oscribinn 5y agoHas this guy heard of spacemacs? At least for people familiar with vi bindings, it can get their foot in the door with a more IDE-like experience quicker while retaining and emphasing the unique advantages of emacs as a platform. I think for a lot of users, getting that taste of the tool's capability early on is what motivates them to embrace the platform as a whole, even if they don't stick with a heavy, general purpose emacs "distribution" in the long run.
- pjmlp 5y agoWell, he doesn't seem to even be aware of Allegro, LispWorks and Clozure CL.
- srcreigh 5y agoThe point of Lisp is to use it to create good tooling. Whether it's MOP or Racket's macro system or ELisp... the point has always been maximal power and customizability. Lisp is the system to create systems. It's not the endgame. It's not a finished product. That is the point. What is better tooling? What improvements can be made? How can it be done? These questions are wonderful questions to consider and experiment with. Every lisper does - it's the entire point of using lisp. Everybody has answers. There are, however, some lispers who, never thinking they could provide all the answers, spent countless days to create tools to make it easier for other people to express their answers. Macro systems... ELisp... MOP... We shouldn't expect all the answers to be given to us. It's not wrong, but it's so limiting. (P.S. JavaScript is what happened when Brendan Eich was tasked with adding Lisp to the browser, but was asked by the suits to make it look like Java. The entire area of thought comparing JavaScript tooling to Lisp tooling runs really deep. Are they even different?)
- overgard 5y agoThat sounds kind of nice in a weekend tinkering project way, but what about getting actual product made? If I'm using something like typescript, I download a free IDE, optionally install a couple plugins, and in ten minutes I'm productively actually making something and I can easily share it with the world for them to modify. The Lisp thing sounds like I spend the rest of my adult life trying to build the perfect setup instead of getting on with actually making something?
- diskzero 5y agoIt sounds like you have found a solution that works well for you. I don't like to tinker around with my coding environment, which is why I pay someone to do that for me. The primary purpose of my software development efforts is to ship products and generate revenue. Anything that I can do to optimize this process, I will do. If I thought using VSCode and Typescript would reduce costs and increase efficiency, I would use it. This simply isn't the case for my use case. If your primary use case is developing websites, then VSCode and Typescript are perfectly good solutions.
- pjmlp 5y agoHere are the colour versions of that screenshot. https://franz.com/products/allegro-common-lisp/acl_ide.lhtml https://franz.com/products/allegro-common-lisp/acl_ide.lhtml http://www.lispworks.com/products/lispworks.html http://www.lispworks.com/products/lispworks.html https://ccl.clozure.com/docs/ccl.html https://ccl.clozure.com/docs/ccl.html https://apps.apple.com/de/app/clozure-cl/id489900618?mt=12 https://apps.apple.com/de/app/clozure-cl/id489900618?mt=12
- overgard 5y agoOof, screenshots that haven't been updated since the Windows XP era do not inspire confidence.
- pjmlp 5y agoMuch better than the article one.
- Jach 5y agoI feel you on your dismissiveness, I had the same reaction years ago. Even using modern Windows UI (which it does) doesn't improve things that much though. Of the two, I like Allegro's UI a bit more, but it's still dated. I haven't convinced myself to buy a license for either of them, and I don't get the sense that for either of them their IDE is anything close to a cash cow, and hence there's little motivation to invest more effort into it or even updating the screenshot. But if I were running a business using Lisp, I'd cough up licenses for employees if they wanted to use one (and encourage them to try the free demos if they're new and aren't sold on emacs or vim or one of the other newer plugins for VS Code/Atom/Sublime). It's similar to how many Java shops cough up licenses for IntelliJ, except JetBrains has a sane business model that's not straight out of the 90s, you can trust they'll continue to make improvements to it and not drop a Big Update at some point that you have to debate whether to pay for, and for both an organization or an individual it's very affordable.
- overgard 5y agoI don't think I'm being dismissive. Windows XP came out 20 years ago, and it's been practically out of use for a decade. Things like that scream "unmaintained"
- s17n 5y agoIf you're worried that Emacs is what's holding Lisp back, the answer is definitely to build first class VSCode support, not to try to make a new modern Lisp environment.
- diskzero 5y agoThere exists a product that meets most of the suggestions in this article called LispWorks. It has an IDE runs on multiple platform and has the features that a majority of Lisp programmers would consider mandatory. There is a listener, editor, debugger, various browsers and more. You can deploy stand-alone binaries for the supported platforms. The user interface library uses native widgets for each platform. There are iOS and Android runtimes for core library code. There is FFI support for calling code outside of Lisp. LispWorks is a high-quality, professional product. So what are the downsides? It isn't open source and you have to pay for it. At some point developers decided that they wouldn't pay for development tools. This has mostly been positive, but languages on the edges have suffered because of it. Yes, you can cobble something together using VSCode and various plugins, or use an Emacs environment. To me, the ergonomics of these solutions are inferior to an integrated solution like LispWorks and perhaps some of the other commercial Lisps I haven't used. Some of the examples the author mentions were also tightly integrated environments. If you ever used Dylan, or Self, of any of the other commercial Lisps that have come and gone over the years you can see the allure of an integrated IDE. LispWorks has been almost magical for me. It was expensive, $3100 for the 64-bit IDE and another $1000 for the mobile runtime, but the ability to develop/debug the core engine code in Lisp with the benefits of an integrated IDE, live code editing, REPL, etc. is more than worth it. The mobile products have native UI for the platform, but everything else is Lisp. You can most certainly develop and ship modern applications for desktop and mobile using LispWorks.
- overgard 5y ago3100 is absurdly expensive when the price of development tools for pretty much every other language is zero. Even if it's that much nicer (which I'm skeptical), to practically use it I'd also have to convince other people its worth paying that much since I want a community. And then it's proprietary on top of all of that? Yikes.
- nerdponx 5y agoDon't forget, that's an "enterprise" price and it's meant for "enterprise" users. Individuals aren't going to be paying that kind of money, unless they're independent Lisp consultants. By comparison, IntelliJ IDEA Ultimate is something like $3000 for an individual license over the course of nine years. If you're not strapped in for a decade or more of Lisp, then the $3100 IDE probably isn't for you. 0: https://www.jetbrains.com/store/#commercial?billing=yearly https://www.jetbrains.com/store/#commercial?billing=yearly
- na85 5y agoI really think Lisp's strength is also its biggest weakness. It's so flexible that it causes massive fragmentation. Everyone has their own toy interpreter. There's a massive schism between Lisp and Scheme. Nobody really seems to have rallied around Common Lisp, and thus it's not actually very Common in any sense of the word. On top of that there is no canonical implementation of "Lisp". Lispers love to say "Lisp is a family of related languages" which is great but daunting to a beginner, and I think also deters people from contributing to the ecosystem, which is where I feel Lisp really falls down. There's just no ecosystem of reliable, standard-ish packages. There's Ironclad for crypto, but in the readme it explicitly says not to consider it secure because there are trivial side-channel attacks against arithmetic depending on your implementation (again, fractured ecosystem) There's lquery, CLSS, and plump for web scraping, but you can't scrape anything modern with them and the author seems to have abandoned the libraries There's a GPIO library that simply doesn't work Et cetera, et cetera, et cetera. Compare that to something like Go or Python, where there are rich, polished, full-featured libraries for nearly every application you can think of. I thought about writing a bot to scrape finance data in Common Lisp, but I didn't want to have to write the scraping and DOM traversal logic from scratch. I thought about using Lisp to have my raspberry pi monitor my hobby garden, but the GPIO library doesn't work at all and I didn't want to write my own. I picked different languages and was immediately productive thanks to wonderful community libraries.
- taeric 5y agoThis is a weakness that is talked about more than it actually matters, to my mind. In diving into libraries for Common Lisp, I'm finding more in the realm of "basically works as I would expect" than I would have expected based on how much this weakness comes up. What is still jarring for me, is that image based development is just not taught or cultured. The iterative based approach that can be used in such an environment is just... so foreign to everything I have ever seen/done before. Oddly, jupyter notebook style build ups are getting there. With the scary realization that a linear realization of the cells in your notebook is something that simply takes effort. Not something that is required for results.
- Jach 5y agoI invite you to read https://www.dreamsongs.com/Files/Hopl2.pdf https://www.dreamsongs.com/Files/Hopl2.pdf which was submitted for the History of Programming Languages conference in 1993. I don't see how you can say with a straight face that no one rallied around Common Lisp given knowledge of Lisp history. (Edit: Uncut version: https://www.dreamsongs.com/Files/HOPL2-Uncut.pdf https://www.dreamsongs.com/Files/HOPL2-Uncut.pdf or you can just read this from 2008 which is the main thrust of the uncut content, mainly that there's a cycle of diversification and consolidation with CL consolidating a lot https://www.dreamsongs.com/Files/PatternOfLanguageEvolution.pdf https://www.dreamsongs.com/Files/PatternOfLanguageEvolution....) I'm not sure what you mean by "no canonical implementation" -- there's the ANSI Common Lisp standard, of which there are multiple implementations. Is this somehow a bad thing to you? > Lispers love to say "Lisp is a family of related languages" Not really. I think it's slightly more common for Scheme or Clojure programmers to claim Lisp relations, but it's just advertising. If having s-expression-ish syntax (with nothing being compatible to CL like a real Lisp dialect would be, and was given how much code in pre-CL Lisps could be run in CL unmodified) makes it part of the "Lisp family", then why not speak of the ALGOL family? It's tiresome semantics and from what I've read Common Lispers at least don't tend to do it. > There's just no ecosystem of reliable, standard-ish packages. Here's everything on Quicklisp: https://sabracrolleton.github.io/short-descriptions https://sabracrolleton.github.io/short-descriptions and a curated list: https://github.com/CodyReichert/awesome-cl https://github.com/CodyReichert/awesome-cl Yes, it's not as impressive as Maven. Yes, not everything is as well-documented as, say, PyGame (http://www.pygame.org/docs/ http://www.pygame.org/docs/ -- though not every Python library you'll find with pip is, either) or even the Common Lisp Hyperspec (http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm http://www.lispworks.com/documentation/HyperSpec/Front/Conte...). Yes, some things are broken, or even abandoned, though in the latter case it may just be that they're "done" pending anyone coming up with a new issue or feature request. I've happily used web scraping libs to save my HN comments with their context, there's a good Twitter API lib I moved to when something broke the Python one I was previously using, I've orchestrated Selenium, I generated some FFI bindings to FMOD and had it working within a few minutes... My point here is just that there is an ecosystem for CL, and many things are reliable, when something works it's rare to stop working. Sorry about your GPIO experience, it happens, I had a bad experience trying to quickload a library that depended on iolib which opaquely depends on a custom C library the author also made and is not in my distro's package manager. I'm not sure what you mean by "standard-ish" -- is Python's urllib3 "standard-ish"? What about urllib and urllib2? Do they qualify merely by being part of the standard library, or is it something else? My other guess is you mean something like "X is a common area of development in the current year, are there any packages dedicated to that area, what are they, and are they any good?" But this is a shaky categorization and in other languages changes all the time, not worthy of the attribute "standard" or even "standard-ish". You're right though that what does exist is small and limited, and that's a natural limiting factor to growth, far more I think that what editors are available or easy to use. Quicklisp came about way too late. Yet the ecosystem continues to grow, so maybe you'll be willing to give it another chance in another 10 years.
- math-dev 5y agoGreat article - thanks for sharing!
- Glench 5y agoI've been really impressed with Chialisp, a functional smart contract language that's really really cleverly designed to be auditable, safer, and more efficient than Ethereum/Solidity. There's not a lot of tooling for it yet but this would be a great place to add it. https://chialisp.com/ https://chialisp.com/
- ncmncm 5y agoEveryone who could possibly care about Lisp already knows everything they care to know about it. It is trivial to install a fully functional development environment on any machine, and be up and coding in minutes. Anyone curious has done it, some many times over. Lisp has had six decades to take the world by storm. It is at full saturation already. There is absolutely no need to raise its profile, or room to raise it in.
- travv0 5y ago> Everyone who could possibly care about Lisp already knows everything they care to know about it. I think you're in a bit of an HN bubble if you honestly believe this to be true.
- askonomm 5y agoAnd yet, Clojure keeps growing, year after year.
- Aditya_Garg 5y agoNot true, I’m a couple years out of college, and only recently stumbled on it because of a Paul Graham essay. I’d say a lot of people (including professional software engineers) have no idea about lisp
- cbrozefsky 5y ago<lisp greybeard rant> People complain about this editor shit because it's the first thing they hit when trying out CL. As if multiple symbol namespaces, macros, CLOS and all the other things are going to somehow be easier to grasp and use effectively. If you bounce off of that, then you don't want it, go away. Yah, nobody in the community wants to waste their time appealing to whiners, building "modern IDEs" when half the shit in your modern IDE we had for decades and it works just fine over a terminal. Shut up, and get real work done in the problem domain, not tool wanking. Meanwhile I'll be using a real interactive debugger over ssh to live debug in production, loading patches with no restart, and writing DSLs for my domain experts. Saying this as someone who has built product and teams in Scheme, Common Lisp (WebCheckout) and Clojure (ThreatGRID/Cisco) and will do it again, and love it.
- at_a_remove 5y agoI'll bite by answering a different question: What brought me to Python? 1) The Standard Library. I should say this while biting my lower lip with a "That ass!" look on my face, nevermind the usual xkcd. I do not have to hunt down twelve packages on CPAN, wondering if any of them will work on Windows, or require an enormous set of dependencies, or if the eighty percent of the topic it actually accomplishes overlaps with my needs. Nope. The Standard Library just has all of that, in a fairly conventional syntax. I do not want to re-implement a spec from scratch, either. 2) My first IDE was Notepad. Now I use Notepad++, largely because it auto-saves. I do not want an IDE that looks like the cockpit of an F-15, I just want to write a few lines, see if they work, and continue. 3) One of the PEP 20 bits, goes something like "there should be one obvious way to do it." And if there isn't, there's some strong cultural idiom that pushes it. 4) I could make it work on Windows. I didn't have to defend my choices to a bunch of people who will relentlessly shill their own distro. I work in a Windows shop, I am not going to jump ship just to use your language, for fuck's sake. I curse here because you would not believe the number of times I have had to have that incredibly irritating conversation. 5) There's just Python, no need to pick. (Okay, now I have to deal with Python 2 and Python 3, for what are Very Good Reasons that, no, I'm not going to explain to you, but in the beginning, that's all there was). According to The Lisp Curse, Lisp falls afoul of #3 and #1. Nothing really stops it from correcting these. We have enough Lisps that #5 is a problem. All of the odd-numbered ones are really a variation on a theme, the Paradox of Choice. #1 is a lot of hard work, on top of it.
- p_l 5y agoGood thing reality seems to disagree with Lisp Curse. Wonder why more people don't point out the much larger scale of the problem in C++ (yes, they do point it out, but where are the capitalics about "The C++ Curse"?) As for #5 - that's mostly a problem with Scheme, where implementation specific issues abound, but most other languages in the family don't have multiple differing quality implementations. In fact, a common argument for Common Lisp instead of Python, is that unlike Python Common Lisp has a standard and implementations adhere to it - and the rest is handled by common portable libraries. One doesn't have to deal with spec that amounts to "what's the actual emergent behaviour of PyEval_FrameEx".
- Guthur 5y agoI love lisp and emacs but saying that all the good tooling is in emacs and emacs is not like modern ui and so should be made like the modern ui is arse about face. Making emacs like other ui would be wholly counter productive, it's just not the paradigm the whole system is designed for. The tooling for other editors should be created or updated to allow developers to use their editor of choice. And I know the come back will be that all the developers are in emacs and won't develop for the other editors and unfortunately that chicken and egg scenario needs to be solved. Sticking an ipad on a horse and cart will not make it a Tesla just like updating emacs to have some buttons and CUA won't make it appealing or useful to a sublime user.
- ducharmdev 5y ago> The tooling for other editors should be created or updated to allow developers to use their editor of choice. Doesn't LSP enable this, to a certain extent?
- mbrodersen 5y agoHere is a challenge to the Lisp community: Show us your Lisp on Rails. Show us how much more productive you will be using Lisp on Rails compared with Ruby on Rails. People learned Ruby just to use Ruby on Rails. People will learn Lisp just to use Lisp on Rails if (and that is a big if) it truly is much more productive than Ruby on Rails.
- mbrodersen 5y agoAnd copy how Ruby on Rails was promoted. It worked.