6 ms·
It's a bit sad that this ecosystem has fallen out of favor for mainstream software development. One could have designed OOP like frontends to this fairly easil
by fooker 3y ago
It's a bit sad that this ecosystem has fallen out of favor for mainstream software development.
One could have designed OOP like frontends to this fairly easily, and I'm sure there are existing ones. How did Java and C++ take over?
- FredPret 3y agoI’ve tried multiple times to get into SBCL, but every time I run into the problem that I have to learn Emacs first. I know there are lots of other ways to work with SBCL, but they are either second-class citizens or paid.
- ngcc_hk 3y agoVim plus sbcl has been ok. Follow this I am happy since https://susam.net/lisp-in-vim.html https://susam.net/lisp-in-vim.html Not 2nd class and I can use it mostly on mac; linux and windows (linux side)are ok. All good.
- taeric 3y agoWhy would you have to learn emacs? You can largely batch compile and run lisp code same as any other language, if that is what you want to do. In many ways, the workflow can be very similar to python, if you don't want to get too advanced in the repl. And, to stress, you don't have to get too advanced to get going.
- aidenn0 3y agoYou can use emacs just for the REPL/debugger, and another editor for editing files. I did this for a couple of years, after previously using CLISP for its REPL. You can use the menus for things; the only keyboard shortcut you MUST know is CTRL-G (which if you hit enough times will cancel whatever operation you accidentally started). Alternatively try geany-lisp[1], it was created specifically for those with emacs phobia. There are probably some sharp corners using it, so feel free to file issues if you run into any. It should work with Geany 1.26-1.38; when posting this, I just noticed that there is now a Geany 2.0; I'm assuming the major version bump broke plugins so it may not work anymore. 1: https://github.com/jasom/geany-lisp https://github.com/jasom/geany-lisp
- rayiner 3y agoYou don't strictly need to learn Emacs, but you should probably just join the cult. I bit the bullet and did it about 20 years ago now, and it's been a good thing. Heck, I've got a non-programming dayjob now, but I've still got a keyboard that puts the control key under my thumb: https://x-bows.com https://x-bows.com.
- potta_coffee 3y agoI'm in the same boat. I just don't care about EMACS, don't like it, and there's little incentive when I'm just playing around. It's a shame because Lisp is really fun and interesting. I just don't want to spend so much time dicking around with an editor just so I can write some code.
- treadmill 3y agoTry neovim + vlime!
- aredox 3y agoThere is Lem too. https://lem-project.github.io/ https://lem-project.github.io/
- FredPret 3y agoI really want to like lem, so I followed all the steps at both https://lem-project.github.io/installation/sdl2/macos/ https://lem-project.github.io/installation/sdl2/macos/ and https://lem-project.github.io/installation/ncurses/macos/ https://lem-project.github.io/installation/ncurses/macos/. Neither ends in a working development environment or even text editor. Compare this to learning Python or Javascript or the C family. VSCode or even just your standard OS text editor is all you need. You can decide to start learning, find a tutorial on Youtube, and execute your hello world in 60-120 seconds.
- wglb 3y agoPaul Graham used VI and clisp when he built viaweb.
- FredPret 3y agoIt's because of his continual praise of lisp that I wanted to check it out. What I'm complaining about is that it's much harder to "check it out" than it perhaps could be. At one point many years ago, I wanted to check out this new Python thing. It was so easy, I've been hooked ever since.
- wglb 3y ago> It's because of his continual praise of lisp that I wanted to check it out. I can't argue with that. It did take me a long time to get comfortable with Lisp. But I felt it was worth the efforts.
- Qem 3y ago> At one point many years ago, I wanted to check out this new Python thing. It was so easy, I've been hooked ever since. IDLE is a underrated feature of Python. The default install includes a barebones IDE together with the REPL, making setup for beginners nearly zero effort. On the other hand, in lisp land, step 0 to learn most lisps is to learn emacs beforehand.
- reddit_clone 3y agoLearning Emacs is not a bad thing you know.. It has a lot of other goodies like : Org, Magit etc which makes it worth while.
- cess11 3y agoI agree that it's a hurdle. Portacle, https://portacle.github.io/ https://portacle.github.io/ , is a way around config and whatnot, lowering the threshold a little.
- whartung 3y agoI normally dabble with CLISP (notably because of its built in readline), and if I could SOMEHOW get it to build with SSL, I'd play with it more. This is what I stick at the top of my Lisp files when dabbling. (defun l () (load "file.lisp")) (defun e () (ext:shell "vi file.lisp")) And then I just muddle my way through with a (e) and (l) cycle. Since I tend to not work on 10,000 line files -- this works fine (my files are < 5K lines). More than fast enough, and I get to retain any work variables within the image (plus my command history). It's quite effective really. (print...) debugging works because you can run your code at whatever granularity you like (and you can always refactor it to a finer grain if you want). Don't doubt it until you try it. Turn around is very fast. That said, I discovered that for some reason, firing off something as simple as "vi file.lisp" from SBCL is stupifyingly complicated. I made several 10s google searches and 5s GPT attempts to make that work, but gave up. So, can't say I can recommend that style of development in SBCL unless someone is willing to chime in with the, apparently, paragraph of code necessary to launch vi on a file.
- tmtvl 3y agoIt's not that bad: (require 'uiop) (defun c () (uiop:run-program '("emacs" "-nw" "file.lisp") :output :interactive :input :interactive)) EDIT: note that SBCL comes with UIOP included by default, but if you want to use SBCL's implementation-specific facility, it's only slightly different: (defun c () (sb-ext:run-program "/usr/bin/emacs" '("-nw" "file.lisp") :input t :output t))
- anthk 3y agoIf you don't want a full emacs, jmacs from 'joe' an do the trick.
- vindarel 3y agoThe plugin in Pulsar (Atom) is pretty good: https://lispcookbook.github.io/cl-cookbook/editor-support.html https://lispcookbook.github.io/cl-cookbook/editor-support.ht... (Sublime, Vim, Jupyter notebooks, VSCode (OKish), Eclipse (simple)…)
- deleted 3y ago[deleted]
- Qem 3y ago> I’ve tried multiple times to get into SBCL, but every time I run into the problem that I have to learn Emacs first. I have the same problem with Hylang.
- hedora 3y agoJava took over by targeting large teams of inexperienced developers. C++ took over by adding OO to C with zero cost abstractions, and then evolving into modern C++ (which discourages OO and encourages composition via template instantiation) without leaving programs behind. Lisp has supported composition forever (it is one of the big advantages of functional programming), and the macro language is similar to templates. I think the big problem is that it is difficult to scale lisp projects with inexperienced developers (loses to java) and is not zero cost (has a GC, is often interpreted; loses to c, c++ and now rust).
- pfdietz 3y ago> is often interpreted Every competitive Common Lisp implementation has compilation. SBCL defaults to not even using an interpreter for eval.
- hayley-patton 3y agoSBCL eval interprets until you hit a lambda form, at which point it will compile (last I checked). But you are much more correct than who you replied to :)
- TeMPOraL 3y agoUnless I'm misremembering, this is only true in REPL, which should be better read as "SBCL is actually sometimes *AoT-compiling in interactive REPL sessions!!!"; #'LOAD-ing files would AoT-compile them by default.
- pfdietz 3y agoThis is reminding me there is the sb-fasteval feature, which I have not been testing.
- p_l 3y agoIt didn't use to - for various reasons, evaluator inherited from CMU CL had bitrotted at one point, and for many years every form more complex than essentially single function call resulted in compilation. Few years ago there was work to fix the evaluator and now EVAL has limited evaluation back.
- ilrwbwrkhv 3y agoWell take over is relative. I built my startup using SBCL and it is very profitable. Couldn't have done it without SBCL.
- fooker 3y ago>Couldn't have done it without SBCL Could you elaborate this part?
- ilrwbwrkhv 3y agoI still haven't found an environment which lets you build the system as seamlessly as SBCL. The REPL allows you to build the code at runtime and update the system in place. Since I was a solodev, bug fixing and building the thing without going on the wrong path was worth I think months and years of my time. edit: Once you get the idea of a running Lisp image and you are updating the image it's a game changer. You are not writing a program, then compiling it and then running it anymore (even though those steps happen seamlessly).
- igouy 3y ago> image and you are updating the image it's a game changer. Also Smalltalk. https://lists.cuis.st/mailman/archives/cuis-dev/2023-August/007885.html https://lists.cuis.st/mailman/archives/cuis-dev/2023-August/...
- cess11 3y agoAlso Factor. https://factorcode.org/ https://factorcode.org/
- igouy 3y agoNot obvious to me that it provides the same experience: "The image is a map of the memory after the code was loaded. Unlike in Smalltalk, Factor code is always distributed in files rather than in the image." https://concatenative.org/wiki/view/Factor/FAQ/Install https://concatenative.org/wiki/view/Factor/FAQ/Install
- linguae 3y agoLet’s make a trip back to the early and mid 1990s when C++ was a young language and Java was under development (it was released in 1995). At the time the most popular object-oriented language was Smalltalk, Common Lisp was at its peak of commercial popularity (largely in symbolic AI niches), and there were other niche OO languages that were heavily influenced by Smalltalk and Common Lisp (Objective-C in the NeXT world, Apple’s Dylan under development). However, if I know my history correctly, Smalltalk and Common Lisp implementations were generally not cheap. Objective-C was largely tied to NeXT, which required buying into a niche ecosystem. Dylan was a casualty of Apple’s mid-1990s business struggles. C++ benefitted from inexpensive implementations from vendors such as Borland and Microsoft, and it also benefitted from its close relationship with C, which already gained a foothold in the 1980s. Java benefitted not only from Sun’s marketing machine, but also from its free compiler and runtime from Sun. Java overtook Smalltalk, despite the fact that Java lacks Smalltalk’s dynamics. I think had there been solid cheap or free Smalltalk and Common Lisp implementations around 1992, Java wouldn’t have gained a foothold, though C++ would have still been very appealing to C developers, though perhaps if Objective-C were more broadly available to non-NeXT developers, it would’ve been a formidable competitor to C++ in terms of providing a “C with objects” environment.
- medo-bear 3y ago>I think had there been solid cheap or free Smalltalk and Common Lisp implementations around 1992, Java wouldn’t have gained a foothold, though C++ would have still been very appealing to C developers, though perhaps if Objective-C were more broadly available to non-NeXT developers, it would’ve been a formidable competitor to C++ in terms of providing a “C with objects” environment. 100% agree. i think it is also interesting that in comparison to before lisp community of today is so supportive of free software, standing more on the left wing of the open source community.
- linguae 3y agoInterestingly enough, the free software movement came about due to Richard Stallman’s frustrations with Symbolics, one of the Lisp machine companies that came from the same MIT AI lab he worked in. It’s just that RMS chose to reimplement Unix (GNU) instead of creating a free Lisp operating system, though one could argue half-jokingly and half-seriously that GNU Emacs is that free Lisp OS.
- deleted 3y ago[deleted]
- akira2501 3y ago> for mainstream software development. LISP feels like both an "assembly language" and a "higher level language" at the same time. It's excellent for solving unusual problems, but it carries a lot of baggage when aiming for "usual" problems.
- coliveira 3y agoThe big problem for Lisp is that it was too slow during the 80s and 90s. At that time, C and C++ took the market share and maintained it since then. New languages had to conform to C, since Lisp has its own independent way of doing things.