3 ms·
Slight tangent: Am I the only one that's a little bit annoyed that it seems like you need to start using the complex beast that is Emacs to get first class Lisp
by Karunamon 9y ago
Slight tangent: Am I the only one that's a little bit annoyed that it seems like you need to start using the complex beast that is Emacs to get first class Lisp support? There are one-off apps, but everyone swears by SLIME mode or similar.
Yes, I get it. The editor itself is written in Lisp. It's the most hackable thing out there. Yes, fine. It is a masterpiece of technical achievement. That's all well and good, but...
I just want to learn the language, not the language and an editor that seems entirely alien at the same time. If I had to learn vim as a prerequisite to learning and writing Python (specifically using the debugger and a REPL), I probably would have never learned Python.
- lispm 9y agoIt makes sense to use Lisp-specific tools with Lisp, otherwise the whole experience is underwhelming. The best Lisp tools are usually written in itself or some variant of it. On the Mac you can download Clozure Common Lisp from Apple's Macintosh application store: https://itunes.apple.com/us/app/clozure-cl/id489900618?mt=12 https://itunes.apple.com/us/app/clozure-cl/id489900618?mt=12 It comes with a small IDE written in itself. A lot of people who use CL as a serious hobby or for work use one of the commercial development environments: Allegro CL or LispWorks. There are several other (some are obscure) options, but many use GNU Emacs / Slime or its fork Sly.
- SomeHacker44 9y agoI would love a proper "hobbyist" priced license for a full 64-bit LispWorks at around $200. Stephen Wolfram did it for Mathematica (Home license)...
- lispm 9y agoThe LispWorks 64bit hobbyist license costs 600 Euro. It is not tied to a single machine and can run more then one process.
- DigitalJack 9y agoTry intellij with the cursive plugin for clojure. Tim Baldridge has a video or two on how to set it up.
- jcadam 9y agoAgree. I've been using IDEA + Cursive, and it's great and easy to use and all that, but lately I'm starting to get tired of it -- it's just so heavy weight, to the point the entire IDE will sometimes hang on me for seconds at a time while I'm trying to enter code. I've been thinking of trying out vim + fireplace (since I already know vim well enough). Emacs + CIDER will be a last resort as the learning curve for emacs is fairly steep, which is the reason I chose vi all those years ago when I was starting out with *nix and needed to choose an editor to learn :)
- flavio81 9y agoSLIME + Emacs user here. I always wondered if there is something similar to SLIME for Clojure, because soon I'll try Clojure as well, despite knowing the tortures of having to deal with the Java platform. Slime is awesome, however... I can feel your pain, because that's what i thought when I first tried to use Emacs. My feelings ranged from "hideous horrible monstrosity" to "looks interesting but can't use it." Really, after one or two days of using Emacs to write Common Lisp, Emacs became second-nature to me. And you start to appreciate how easy is to have a separate concept of "buffers" versus "windows". In short, arranging your screen to work quickly, is very easy and quick. At the end, the shortcut keys for Emacs do have some sort of logic. Thus i present a *EMACS/SLIME KEYS PRIMER in 5 MINUTES, FOR SANE PEOPLE* in the insane world of Emacs ----------------------------------------------- This assumes that you're running Emacs on a windowing system like X or Windows. Thus you have a nice menu bar that you can use with the mouse. The first you need to know is that "Meta" is the "alt" key. So "M-a" means "press Alt+a". The first key combination you need to know is "Control-H b" (_H_elp me with the _B_indings). This will make Emacs open a window which will tell you ALL the key mappings. That is, which key combination does which thing. Since this window is HUGE, press Control-S (_S_earch) and write the string you want to search, if you are looking for a particular command. Press Control-S several times until you locate it. To search in _R_everse, Control-R. The next key combination you need to know is "Control-G" (_G_o to hell). This cancels any command that is prompting you for input on the status bar. Now, the other thing you will need is to do COPY and PASTE. Easy to do this is with the "Insert" (Ins) key. Control+Insert == COPY Shift+Insert == PASTE Now, the EMACS keys do have some logic, and this can help you remember them. Control-X for commands that have to do with Emacs itself, like editing commands. For example "Control-X U" is _U_ndo. "Control-X S" is _S_ave. Alt-X (called "Meta-X") executes a command, for which you write the name of the command. This can execute any of the thousand commands available on Emacs. Each command is basically a LISP function that you will invoke. It is very simple to invoke a command, and if you don't know the full name of the command, you just write the beginning of the command, press TAB, and Emacs will list you all the available commands. So, if you want to start SLIME, the command is "slime". Alt-X "slime" ENTER. Once you're in SLIME mode, you have SLIME commands at your fingertips. Most of the SLIME commands start with "Control-C". So, for example to load and compile the current file into Common Lisp, you do: Control-C-K , which "K"ompiles the file. Or for example you want to compile just a small part of the code, for example a DEFUN you have wrote. Just select (using the mouse or keyboard) the complete definition (or part of the code) and press Control-C-C to "C"ompile that section. Now it is available so you can use that function/macro/etc on the REPL, which is the "buffer" called *slime-repl*. When you are writing code, SLIME auto-completes as much things as it can, you just need to press TAB to invoke the autocomplete. Also, SLIME will tell you what are the arguments of each function you call, as you are writing the code. If you want, SLIME can also _S_upply all the required function/macro parameters, just press Control-C-S. There is also an ALTernate _I_ntelligent auto-complete, that you can invoke using Control-C ALT-I. See? Want to know which functions are in a package and describe a simple _D_ocumentation for each function in the _P_ackage? So, Control-C, Control-D, P. Or want to look the Common Lisp _D_ocumentation for _H_elp? Control-C, Control-D, H. Etcetera. ------------------------------- SLIME is really an mind-opening experience for me, after having used MS Visual Studio, Visual Studio Code, Netbeans, Eclipse, and PyCharm. SLIME enables to work interactively, very quickly. As for Emacs, final words are some wisdom words of HN user "Karunamon" which wrote: "The editor itself is written in Lisp. It's the most hackable thing out there. Yes, fine. It is a masterpiece of technical achievement. "