reddit / emacs

Benefits of learning Elisp besides hacking Emacs

AsterOps · 2022-09-29 09:52
Hi, I am sysadmin dreaming about shift my career into software development. I have some basis in bash, sql and python and I am using Emacs as an IDE and org mode without deeply hacking my init.el Now I decide to learn Elisp from an excellent [An Introduction to Programming in Emacs Lisp](https://www.gnu.org/software/emacs/manual/eintr.html) inside Emacs Info mode and it's quite a lot of fun for my but I am also wandering on my maybe future job or general programming skills will benefits from it and looking for additional motivation.
soundslogical · 2022-09-29 11:32
It won't be the clincher in getting any particular job - there are so few positions out there with 'Lisp' in the requirements list. But, along with experience in other more directly-relevant-to-the-job languages, it will help demonstrate curiousity and wide ranging knowledge. 'Lisp' still has a slightly magical air about it that makes you seem like a hacker. But more important than any of that, it will help make you a better programmer. _And_ it will supercharge your capabilities in the world's best text editor, and that has to be good for learning and development, right?
jsled · 2022-09-29 11:47
Knowing lisp will expand your concepts of what programming languages can be, and how they can work, and how simple things can be. It's not deep /practical/ experience, since lisp is simply not used practically anywhere. But it's extremely valuable experience. Every programmer I've encountered who knows lisp is better than their peers.
in-some-other-way · 2022-09-29 12:01
Emacs lisp is a great UI toolkit for hacking interfaces. If you have a task you do 40x a day, then spending an hour automating it is worth it. A couple examples I've done: find the module that owns this file, switch to it. Switch back on keypress. Completing read for file. Find module that owns that file. Insert it into deps of module that owns the file I'm looking at.
Dj_Optimus_Rhyme · 2022-09-29 12:02
Learning new skills is never A Bad Thing, especially with programming languages (who knows what new paradigms you will learn). But are there many production codes written in Elisp? I doubt it.
ideasman_42 · 2022-09-29 13:09
With emacs lisp you can write bespoke utilities that help with your own workflow, I think that's enough on it's own and doesn't especially have to help in other areas, although I suppose digging into lisp exposes you to some new concepts of how a language can work. In general I use Python for performing automated edits, however once I found emacs+lsp mode handy for batch migrating [doc-strings into headers](https://gitlab.com/ideasman42/emacs-relocate-docs) as part of our projects change in policy.
-w1n5t0n · 2022-09-29 13:12
I'll add that Emacs is not necessarily just something to hack *on*, but also something to hack *with*. If you think of Emacs as an extensive library of code for editing and manipulating text, then you can use Elisp to script some pretty amazing things, like refactoring code, cleaning up data in text form, or various other tasks that one often comes across in development jobs (and not just related to text, since Elisp can be a general-purpose scripting language to work with directories, files, processes etc). As others have said, it's unlikely that you'll land a job just because you put Elisp on your CV, but 1) it *will* make you a better programmer and developer just by virtue of changing the way you think about code, and 2) you can start building up a little arsenal of powerful scripts that can make you more productive, not just in learning but also in doing a job, and *that* can certainly help you career-wise.
Litanys · 2022-09-29 13:13
Tell me your an org mode user without telling me your an org mode user.
grimscythe_ · 2022-09-29 13:15
Couldn't agree more!
WallyMetropolis · 2022-09-29 13:42
While Emacs Lisp is a truly single-purpose language, it's still a Lisp and learning one Lisp will make learning any other Lisp a relatively easy transition. Common Lisp and Clojure are both reasonably well-adopted languages in industry (though not exactly common). For dev ops, CL might make a nice scripting language, though your colleagues would likely be pretty upset with having to maintain or use any of those scripts. The mindset of Lisp, however, is extremely useful for thinking about how programming works. Though don't expect enlightenment to come easily. In my view, the two major ideas that are paradigm-shifting in lisp are programs-as-data (homoiconicity, the thing that allows for lisp's powerful metaprogramming) and interacting with running programs. Both of these can take some time to get your head around. Of course, any time you learn a new language you'll benefit as a programmer, so even without fully grokking the really heady stuff, you'll get something out of it.
FrozenOnPluto · 2022-09-29 13:42
Lisp is one of the kings of Functional Programming; you may also notice that javascript has many functional properties, and many non-functional languages have been hadding functional methods for the last decade (c++, java, etc) ... so functional programming styles have been leaking into the mainstream, and they all borrow from Lisp. Like speaking other languages or trying different things, it provides more tools for your toolbox, more way to approach a problem.
tdrhq · 2022-09-29 13:43
At BigCorp I wrote a quick elisp script to manage some build files in my editor, kept building on it, and at one point made the script into an automated job running in the CI. Yep, running through Emacs. Eventually, I naturally rewrote it in a more maintainable language, but I respect the path that I took to get there, so I wouldn't change a thing. Emacs Lisp gave me the ability to prototype things really quickly and get immediate usefulness with shitty code. Since I've left BigCorp, I've been doing Common Lisp exclusively (with still Emacs Lisp for my editor stuff), and I don't think I can go back to a programming flow where I'm not interactively editing a live program.
kamui78 · 2022-09-29 13:54
In my case it is all about the workflow and the flexibility that Emacs offers. It truly is a platform to build upon. By using Emacs I get to shape my own user experience. Last thing I did is to automatize downloading bibtex files and papers from arXiv.org. I installed the arxiv-mode package and modified the existing functions to make them fit my workflow. Now I do not need Zotero anymore. Emacs can cover that role the same way it covers my agenda, note taking, academic writing and reference managing, pdf annotation, terminal emulation and multiplexing, editing and programming, being a better juypter notebook, etc. Before I picked Emacs I wanted to try to do the same thing with Xmonad+Haskell. But Emacs+Elisp is much better because you can modify it at run time. It truly is unique in what it offers, nothing I tried so far offers a similar set of features. Any drawback it might have is mitigated by how powerful it is. And the more I learn Elisp, the more my horizon widens. Right now my Emacs is integrated in i3 and the two complement each other. I would gladly use EXWM if it did not have the issue of blocking from time to time when it is waiting for a process to finish.
chaorace · 2022-09-29 14:22
If you ask me, one can only truly "learn" programming three times: once for dynamic languages, once for static languages, and once for low level languages. Once you've mastered one of each, you're basically halfway done with learning every programming language ever designed (except perhaps Haskell, which arguably constitutes a fourth, forbidden category). Everything else is merely syntax and best practices. All developers are polyglots, even if they don't know it yet. Viewed in this way, elisp is a great stepping stone. You will have genuine reasons to write code using it every single day and soak up FP culture as you do so. One day, when you start getting bored with elisp, you can have your pick of any other dynamic language (JS, python, etc.) and be able to learn everything you need to know within the span of a few weeks.
Faumpy · 2022-09-29 14:29
This subreddit's style on old.reddt should make org-mode syntax function here, change my mind.
nnreddit-user · 2022-09-29 14:33
It's one of the great ironies of life that the only way to appreciate something is to live it -- having someone tell you never works. Seared into my undergraduate memory is the introduction of Paul Graham's *ANSI Common Lisp* in which he attempts (to no avail) to convey the awesomeness of functions as first-class objects. He later wrote that while technical merits rarely result in business success (see Betamax versus VHS), Lisp proved the kingmaker for Viaweb, the outfit he sold to Yahoo, the proceeds of which seeded ycombinator. For myself, a maintenance perl programmer at the time, his ramblings were those of an academic Lisp simp. As an emacs user who cut and paste elisp from stackoverflow, I distinctly remember seeing oddities like "save-excursion", and saying to myself who in their right mind would invest in learning a language whose *only* application is within the confines of an old text editor. It was insane then, and well, despite having spent the last three years working on emacs, it's kind of insane now. And with all that laborious backstory out of the way, here's my take on Lisp, which like Graham's, is worthless to anyone who's never programmed Lisp. As a proximate translation of the lambda calculus, Lisp is the shortest, most direct expression of computation. Ultimately every programmer thinks in Lisp terms; they just don't know it yet. When given a leetcode like question, I always reason about it in Lisp, not because it's the language I know best, but because it unclutters my thinking, and distills the problem to its barest parts. This obviously has salutary effects on how briefly and clearly I can express something in another more syntactically encumbered language. A related concept is Greenspun's Tenth Rule.
YakumoYoukai · 2022-09-29 14:51
I think that's why I like programming in JavaScript: it very much *feels* like Lisp to me.
klikklakvege · 2022-09-29 15:20
emacs as a tool is superior to any shell to do stuff you do at work. Elisp is the language to operate this tool. If you want to become proficient in using emacs you should learn elisp. It is not hard to learn elisp. You will benefit from it. Your programming skills will also benefit a lot by learning a lisp. I think only those who didn't try would disagree here. People rather describe learning lisp as a "profound experience". Only something like 1% of programmers go for emacs and elisp. Do you think these are the dumber 1% or the more productive 1%? Or just some random average devs? Have you read what Richard Stallman had to say about lisp? Or other hackers. I can't promise you any career, since this is a completely different topic, but I can assure you that learning elisp will make you become a jedi. Yes, a real jedi like Obi van Kenobi or Luke Skywalker. Doing crazy magic stuff and seeing the whole world through different eyes.
rberaldo · 2022-09-29 15:22
I wonder if nonchalantly mentioning Lisp might not impress the interviewer if they're a programmer or knows about programming. Then again, it might also make them roll their eyes! Haha
arthurno1 · 2022-09-29 16:07
Depends on what kind of "benefits" you expect. If you think it will help you lend a l"isp" or "emacs" jobb chances are probably minimal. But you can use Emacs, and Emacs Lisp for automation, instead of Bash or in symbios with Bash to write more maintanable and bigger shell scripts/programs, especially if you do a lot of text processing. You can also lern Lisp programming with Emacs Lisp. It is not Common Lisp, nor Scheme, but learning those when you have knowledge of Emacs Lisp might be a bit easir, since there is lots of common ground. Why I think this route: it is because the tooling; Emacs Lisp is so well integrated in Emacs, so it is really easy to write it, execute it and debug it. It just my opinion.
00-11 · 2022-09-29 16:20
+1 for learning Elisp and reading the embedded Intro book! Yes, it will not only improve your general programming skills, it will give you a better *understanding* of programs (procedures) and data structures. And of what's possible beyond the limits of any particular language. Lisp is nearly language-less, syntax-wise -- its code and its data structures look, and can be manipulated, essentially the same.
mahmoudimus · 2022-09-29 17:16
As a software developer myself, this was why I switched 15 years ago to Emacs instead of continuing my investment into vim. Maybe things changed over on that side, but realizing that knowing a Lisp (albeit elisp is not the best kind of lisp) would make me a much better, stronger and versatile programmer then it was a no brainer to learn Emacs and elisp as well.
github-alphapapa · 2022-09-29 18:10
I don't think that can be done with CSS, but it's a nice idea. BTW: https://github.com/alphapapa/reddit-emacs-css
bocxorocx · 2022-09-29 18:35
In my experience in interviews (and being told about it at the end a couple of times), Lisp on a résumé is a _red flag_ to technical interviewers. The team doesn't want the new guy to come on board and muck things up with things like functional programming, especially when the version of Java they use either doesn't support it at all (Java 8 is *still* the new hot stuff they're reluctant to upgrade to) or discourage it (try to justify a Stream in a Java 8 codebase during a code review; I'll wait to say I told you so). That and the cult of the Great Parentheses in the Sky™ spoiling its reputation. You only impress other Lispers with it. The real world sadly doesn't operate on our fantasies. You can't even translate most of the tricks you picked up to these environments.
sunnyata · 2022-09-29 18:55
ISTR the first version was written in lisp.
Litanys · 2022-09-29 18:58
Haha. Not saying it's bad. Just noticed. I read it's syntax, so of all places, it should work here. Even without reddit rendering it right.
Faumpy · 2022-09-29 19:18
I said "change my mind" for dramatic effect :P
Faumpy · 2022-09-29 19:19
Ah bummer.
holgerschurig · 2022-09-29 19:40
Not much. Lisp is not used widely in the industry. You don't use it for embedded. Not for web frontends. Not for backends. Not for number crunching. Nowadays no longer for AI. So there is little left, only niche things. It might be able to make you better reason about programming. Maybe. It has some advantages (like macros), but also it lags heavily in other areas (e.g. namespacing).
deaddyfreddy · 2022-09-29 20:44
> since lisp is simply not used practically anywhere well, as a Clojure programmer, I don't agree
deaddyfreddy · 2022-09-29 20:46
> For dev ops, CL might make a nice scripting language try Babashka!
Nondv · 2022-09-29 20:47
Yeah, as others pointed out, it'll just sharpen your general programming skills. But if you want a change of career soon, you should look into specialised options. For instance, many of my colleagues (current and former) here in London have made a transition (some in their late 30s or early 40s) from a completely different (not even in IT) by attending a bootcamp called "Makers academy" (disclaimer: im not advertising them, it just happens that those colleagues of mine mostly attended this particular one). I've been told that they just focus on very practical parts of software developing so that you can land your first job and then move from there. For instance, they don't give people any computer science knowledge (or so I was told). Basically, depends on your plans. If you wanna change career soon, you need a plan. If you're just enjoying coding with no particular agenda, just enjoy it :)
Nondv · 2022-09-29 20:52
depends on what sort of companies you are working at. More technologically progressive (usually startups) companies that follow trends and being technologically agnostic, are really into functional programming skills. There's no win formula. As long as your resume matches requirements, you will be given a pass to the next stage. Then, everything is up to you
jsled · 2022-09-29 20:57
[TBQH, Clojure is way higher up than in my mental model](https://redmonk.com/sogrady/2022/03/28/language-rankings-1-22/), but OTOH, I think this should be on log scale on both axes.
nnreddit-user · 2022-09-29 21:40
1. Makes no sense to take the log of an ordinal like pop rank. 2. Pop rank is inherently logarithmic. There's no way javascript is only twice as popular as common lisp.
Acetylene · 2022-09-29 22:54
Not exactly, but Brendan Eich *was* recruited to Netscape specifically to build a Scheme interpreter into the browser. Around the same time, however, Sun released Java. It was a really big deal at the time, with lots of publicity around it, and so Netscape started negotiations with Sun to include that in the browser as well. That started a debate within the company about why it was necessary to have *two* languages embedded in Netscape. The answer they came up with was that Java would be for big compiled components, and the language Eich was working on would be for lightweight scripting embedded directly into HTML. But because Netscape had just spent a lot of money getting the rights to use Java, they wanted the scripting language to *look* like Java. In theory, this would make it easier for programmers to transition between the two languages. They also gave Eich ten days to implement the new language. So what he came up with was a language that sort of looked like Java, if you squinted a bit—it had curly braces, and it was object oriented, although it had a different class inheritance system—but also had some ideas borrowed from the world of Scheme and other functional languages, like first-class functions.
rberaldo · 2022-09-29 23:12
And here I am interested in yet another thing that can't make me money! /s Seriously though, I think that might make sense from the standpoint of a manager keeping a team of programmers in line. There might also be a touch of prejudice related to the stereotypical Lisp user.
Both-Level4667 · 2022-09-30 02:05
No, it won't. However, learning will get easier with emacs documentation habit.
deltille · 2022-09-30 15:49
Learning any lisp is useful for a software career the way that learning algebra is useful as a basic life skill. You may not use it often directly, but you'll be able to recognize problems in terms of it instead of stumbling through reinventing the wheel each time. That said I would echo the advice in this thread it might be unappealing in a hiring context. It has a reputation for being academic and counterproductive in business spaces, if it's recognized at all. But as a matter of background, it's helped me make up for years of lost time even when I'm not using it, personally.
steve-ddit · 2022-09-30 18:23
>You don't use it for embedded. there is ulisp "Lisp for microcontrollers". http://www.ulisp.com/
bitwize · 2022-09-30 21:28
For standalone application development, use another Lisp such as SBCL or Guile. But Emacs Lisp *is* a full-fledged programming language, and a really fun thing to try is to bend Emacs to perform some task or application that's not really adjacent to text editing. For example, try writing a web server or graphical game that runs on Emacs. If you work as a professional programmer, your production code probably won't be written in Emacs Lisp (or any other kind of Lisp unless you rolled a 20 on your job search), but you can use Emacs (and Emacs Lisp) to help automate away the tedious parts of your workflow -- for example, end-to-end testing, deployment, scaffolding a new application, etc.
holgerschurig · 2022-09-30 23:01
Oh, there exists many things. But are they used? Or are they niche? If you go to your boss and say "Hey, I want MicroPython in this embedded device" or you say "Hey, I want uLisp in this embedded product" I think it's easy to say what project is more likely to see a go.
oantolin · 2022-10-02 01:52
You should try APL and Prolog next.
Embarrassed-Week839 · 2022-10-02 21:00
If you are in need of professional hacking services, I will urge you to contact him He is currently one of the best hackers out of Houston, Texas, . You can easily reach him on Email- dragonhackerz557@gail.com I am recommending this man because I promised to do so if he truly helped me out. I needed evidence from a particular cellphone to save myself in court and he made this possible. He hacked the entire cellphone and linked it to my computer. I had access to -Text messages -Whatsapp messages -Facebook -Twitter and there was also an option to record phone calls. Alex also helped a friend of mine repair his credits and boost his scores over 800. I am forever grateful and if you are out here in search of a good hacker, you need Artur. He offers so many other hacking services like -Website hack -Changing school grades without leaving traces -Email hack -Phone cloning -call tracking -Retrieval of lost documents to mention a few.
Embarrassed-Week839 · 2022-10-03 19:06
Hi everyone, how are you all doing? I just want to use this medium to say a very big thank you to dragonhacker who is one of the greatest hacker and very calm when it comes to his clients. He changed my school grade and also helped me with my driver’s license for over speeding and I also recommended him to a friend for her criminal recodes to be cleared and I can’t stop saying thank you to mr. dragonhacker for this great and wonderful job he did. I want to let everyone know about him and according him his good with any hacking services you require in full result within 48 hours. I only have his email dragonhackerz557@gail.com Please I hope everyone understands the email when contacting him. Don’t forget to say my name please because he does free hacking for anyone who directs clients to him. Carla Houston. Good luck to you all as you work with a good man.
a-concerned-mother · 2022-10-04 08:00
I'd say so for the following reasons: - Once you learn one lisp learning another can be done in a matter of minutes - Better problem solving :: skills as you get more into lisp (especially if you take an interest in common lisp) you start to see the power in the language it's self and you are able to apply a tone of compiler theory to general programming - New paradigm exposure :: related to the last one but nearly everything in programming has been done in some way first with. As a result it's a great language to learn for the sake of learning because you don't have to go learn some obscure language to try out a new approach to programming. - Application :: while other languages may not be as powerful as lisp a ton of its ideas can be applied in other languages but often require a different mindset to do so. Lisp opens this up to you. - Automation :: for emacs lisp specifically learning emacs lisp means you can start saving time with day to day tasks. At my last job my environment setup and transition between projects became so smooth that I would at multiple points in a day be an hour ahead of the tasks my team mates needed to do just because I wasn't doing it all manually with it editor clicking through buttons and waiting. When you are comfortable with it elisp can completely change how you work.