4 ms·
What help is needed for Lisp community in order to make Lisp more popular?
I'm learning Lisp in order to do one big thing that I don't think would be possible without Lisp. But I want to abstract from my magnum opus and get an answer to another question. Suppose I have learned Lisp plus computer science very well (at least having the SICP book fully solved) - how can I help the Lisp community to make Lisp the most popular programming language using only Lisp?
The first thing that comes to my mind is to make emacs multi-threaded, but I'm a big fan of vim, so this task is not going to be mine. I'm also not sure if this task should be solved at the Lisp level and not at the C level.
The question is about writing Lisp code and nothing more, not about organizing hackathons or writing books or something not related to programming itself.
- fithisux 4y agoI refactored a big project by using sane DDD and Domain Modeling practices in Python 3.10. I also used a lot of type oriented design as means to cement my domain modelling. I do not think it would have been possible without mypy or the facilities of Python. I also believe Scala 3 would be even better fit here. Can CL / Racket /... whatever be useful here? Any examples? I also do not think that Bartosz Miliewski's book could be rewritten for some Lisp.
- harriet1 4y ago[dead]
- throwaway81523 4y ago> I'm learning Lisp in order to do one big thing that I don't think would be possible without Lisp. You might have to say more about that: Lisp's decline in popularity is because other languages have caught up and can now do pretty much the same stuff. So Lisp's attractions atoday re more spiritual than practical, imho. I do think there is value for every programmer in spending some time with Lisp. But, its features like extensible syntax lost their charm some decades ago. See for example Wadler's 1987 criticism of SICP, "Why Calculating is better than Scheming", https://stuff.mit.edu/afs/sipb/project/reading-group/past-readings/2009-05-25-scheming.pdf https://stuff.mit.edu/afs/sipb/project/reading-group/past-re... I can't think of any significant projects I'd choose Lisp for, except things like Emacs extensions that depend on specific Lisp environments, or else maybe quick prototypes of things with DSL's. To misquote somebody, anyone who is not a Lisper at 20 has no heart. Anyone who is still a Lisper at 40 has no head.
- shagie 4y agoThe "popularity" of a language has to do with its utility and the availability of people to code in that language. This is why Java and C# are so popular. They have a lower barrier to entry for doing the 80% of stuff (simple CRUD from an appropriate database) which allows for more people to get to that point. Secondly, there are well developed frameworks for supporting that 80% of stuff. Given a database and its tables, I can go from that to being able to spin up a service that could be deployed in production in a day. Java, Spring, grab the DB driver, write the query or use some ORM to do it, build a docker image, and it's done. A key part of that is that I can go to any company that uses a similar stack and not only be productive rapidly, but not need to relearn the language. Likewise, I can get a person who knows that and have them up and running in the environment that my team works in fairly rapidly. --- Language Popularity and IDEs Using Lisp isn't about using Emacs. Aside from issues of observability in non-free languages and the debugging tools, in suggesting working on Emacs, you are competing with IntelliJ and VisualStudio rather than Java and C#. Let's look at Java IDEs for a moment. https://www.jrebel.com/blog/best-java-ide https://www.jrebel.com/blog/best-java-ide IntelliJ 65% Eclipse 48% VSCode 27% NetBeans 13% Browser 4% Other 2% Emacs is a small fraction of that 2%. Improving Emacs will not make it an environment that will compete with the others to any significant degree. --- And so, it isn't the IDE... You could make Emacs a better environment for doing Lisp development - but that doesn't solve the problem that Lisp is too powerful. In my days of dabbling with Lisp I found that every company that makes use of it (and even each team within a company that makes use of it) is mutually incompatible DSLs built within it. I couldn't take what I learned and the frameworks I understood from one place and apply it to another. Yes, I could do quite a bit and understood, but the onboarding process would be much longer to learn the nuances of this codebase. This is where Spring (in Java) excels. Yes, its boilerplate and Java is a verbose language and all the other criticisms that you may apply to it I'll let go by with "ok". But, I can go from one company to another or one team to another and be productive rapidly. That is what makes it a popular language. If you want to make Lisp as popular as Java, make a framework and library that is so compelling that it will have teams abandon their own DSLs for writing CRUD apps and switch to this way of doing it. Make it so that one can go from "here is an Oracle database" to "here is a docker image supplying a REST or GraphQL endpoint and the data" within a day without requiring any magical knowledge.
- al2o3cr 4y agoThe question is about writing Lisp code and nothing more Adoption is not about "writing more code", and if it was than surely Lisp would have a giant head-start being 60+ years old. A more promising place to start would be understanding why it isn't the most popular currently - I doubt "Emacs isn't multithreaded" is anywhere near the main reason. You might also want to look into why Lisp-likes (for instance: Clojure) haven't gained more traction.
- mgsouth 4y agoPutting on my architect's hat--what is it the customer really wanting to do? So.. "Why do you want to make Lisp more popular? If you were sucessful, what would be different in the world, and why is that desirable to you?" Normally at this point I'd listen to the response, and ask more questions based on that. That would wind up with a very, very deep thread, so I'll break a cardinal rule and pre-guess at some answers. This kind of question comes up pretty frequently. In many cases, I suspect the motivation behind the question is "Wow! Here's this cool tool I've discovered. I want to make something really useful with it. I want to do it as part of a community effort; share my excitement with others, share in their excitement, and know that what I'm making is useful because others find it desirable and are excited by it." The field could be cooking, sports, old machine tools, tiny homes, or demo scene. Its the fundemental driver for most content on HN, YouTube, Instructables, and such. It is a Good Thing. If that is your motivator, then my suggestion is to find something that bugs you and fix it. You've already decided you're only interested in code, not other aspects. You said you preferred vim, but the emacs ecosystem has a very rich set of sharp edges that need filing off, and a rich set of tools with which to attack them. One example: even after 50 years there's no open IDE which allows you to easily globally rename a Lisp identifier. I don't know about LispWorks or other proprietary environments, but you can't in emacs or vim do a right-click on "foo" in "(defun foo ()...)" and select a command which automatically renames it in all invocations. [Queue lots of "but you can..." replies here.] I don't think vim is up to the task of doing this internally. It would be possible in emacs; but would require a huge effort with lots of help from other people. If you emerged alive from that rabbit warren you'd join the company of Certified "How Hard Could it Be?" Mad Scientists such as Dr. "I just want to draw molecules" Meister [1] and "Wouldn't an OS in Lisp be Cool" Froggey [2]. [1] https://github.com/clasp-developers/clasp https://github.com/clasp-developers/clasp [2] Mezzano https://github.com/froggey/Mezzano https://github.com/froggey/Mezzano
- eimrine 4y ago> Why do you want to make Lisp more popular? To make this happen faster. If I would not do it soon, somebody does it later. > If you were sucessful, what would be different in the world, and why is that desirable to you? I believe that the governments may be wisely replaced with one short script. I think I know how to do it with Lisp, at least for those citizens who want it so. But I need to clarify a few minor questions like this one.
- twangist 4y agoWhat's needed is some compelling reason for people to write LISP and not Python, Java, JavaScript, Rust, C++. An attractive Web framework with an ORM, or a tool for scientific computing, might do it. I don't think any amount of fiddling with Emacs (or for that matter vim) would have an effect at all: both have small market share (imho deservedly) and I'd wager even that is dwindling. If programming LISP has to be done in Emacs then, yikes, good luck. I like LISP a lot but strongly dislike Emacs, and would love to have a reason to write it but none has presented itself in decades.
- daly 4y agoYour question seems to be about how others feel about Lisp. It's not clear to me why that's even an interesting question. That's like choosing a hammer based on how popular its color is. The language you use decides what you can think. Unlike other languages, Lisp doesn't decide for you. I can, and have, programming in every style I've seen while writing Lisp. Most programmers won't find that a feature. Also, Emacs. If you're gonna Lisp, you really want Emacs. I've been a Lisper for 52 years.
- eimrine 4y agoIt's awesome for me to have a talk to a man who programs twice as long as my life. Can you share your views on the future of Lisp? Maybe you have unfulfilled hopes about the future of this language? What was the biggest breakthrough in your 52 years of watching Lisp? (I understand that this is a garbage collector and tail optimization, but as far as I remember, these inventions happened earlier than 52 years ago). What is the biggest limiting factor to your productivity when writing Lisp in Emacs? (for me it's not touch typing oriented enough compared to vim). How can you personally explain the fact that for all the objective power of any dialect of Lisp, there is still no free software that has utilized the language's capabilities in the same way that Wolfram Alpha does?
- daly 4y agoI don't see a need to change lisp. It does everything I've ever tried to do. The biggest breakthrough was Common Lisp. I don't quite understand your Emacs question. The biggest limiting factor of any lisp programming is me. Lisp is clay for the mind and sometimes my mind-clay is too dry. Lisp and Emacs don't limit me in any way. That said, other languages "get in the way" all the time. It is nearly impossible to think of certain ideas[0] . Try merging your rule based expert system approach with your subsumption based knowledge representation system so that rules and knowledge are two surface representations of the same (lisp) structure[1]. I have no comment about Wolfram software. [0] The Sapir-Whorf hypothesis states that the grammatical and more verbal structure of a person's language influences how they perceive the world. It emphasizes that language either determines or influences one's thoughts. [1] Integrating rules and inheritance networks in a knowledge-based financial marketing consultation system https://www.computer.org/csdl/proceedings-article/hicss/1988/00011946/12OmNAJVcEx https://www.computer.org/csdl/proceedings-article/hicss/1988...)
- fulafel 4y agoProgramming langugaes make it to the mainstream due to having some killer app, or having really big corporate sponsorship, or being a native language of some big platform. So your parameters make this is a bit like the paperclip problem. If your target is to make Lisp the #1 popular language and to do this by writing Lisp code, one way would be to create a product that makes enough money to become the biggest tech company, keep control of the it, and then task management to surpass or take down competing tech platforms and languages.