reddit / emacs

Ditch learning Linux and just use emacs?

HollywoodKizzle · 2022-02-28 02:56
I have an intermediate level knowledge of bash scripting and use of the linux command line.I know given enough time i could eventually become a power user but my dilemma is this: im also falling deeper in love with emacs. The more i read about it the more i get the feeling that it would be much more time-efficient to just master emacs and forego going deeper down the rabbit holes of bash shell scripting and the various Gnu utilities and .etc. It seems to me that with emacs I pretty much get a entire environment in which all packages,commands,config files and etc are all written in one language(e lisp). So that being said, can I just go "all in" on learning emacs and e lisp and just more or less ignore bash scripting and learning more about the various linux terminal commands?
[deleted] · 2022-02-28 03:15
I'd recommend just doing whatever you're interested in the most which in this case seems to be emacs. I think you should just use linux but focus more on emacs and whatever else you like, by learning emacs and playing around with different packages, you may even learn more about the gnu/linux ecosystem and gnu software aswell.
jonbonesjonesjohnson · 2022-02-28 03:27
emacs if you don't need to cooperate with non-emacs users, bash and GNU tools if you work with people.
jackofthebeanstalk · 2022-02-28 03:56
My personal experience has been that using and learning Emacs has also automatically made me better with bash and GNU tools. These tools integrate quite well with emacs and will enrich your emacs usage the more you call them from within emacs.
HM0880 · 2022-02-28 03:57
Because Emacs is cross-platform, I can work equally well either on Linux (home) or Windows (corporate). I do light scripting in Bash, but I put a lot of effort into a cross-platform workflow. I'd recommend learning both but focus on Emacs.
[deleted] · 2022-02-28 05:25
[deleted]
Craksy · 2022-02-28 05:44
Definitely. Most people didn't learn Linux by sitting down 4 hours a day with the “Linux Power User“ handbook. It just sort of happens as your interests and/or job makes you learn bits here and there. If Emacs is what interests you right now, then just focus on that. Emacs and GNU are so closely related that you'll almost certainly improve with Linux as well. Who knows, perhaps some months or a years down the road, you'll have some newfound appreciation for something strictly Linux related and decide to take a deep dive. Whatever the case, let passion and curiosity drive you. Learning is something that happens automatically when you geek out with shit you think is cool.
javajunkie314 · 2022-02-28 06:14
Does a plumber ditch all their other tools just because they can get by with only a mallet? Sometimes a pipe wrench is handy, and sometimes a shell script is handy. Learn what's necessary to do what you want to do effectively and correctly. Init scripts come to mind. Whether systemd or sysvinit, you'll need shell scripting to do anything advanced. If you ever write an init script in Emacs lisp you fully deserve all derision and scorn that comes your way.
7890yuiop · 2022-02-28 06:20
The two aren't mutually exclusive, so no -- I wouldn't recommend ditching everything else. I still write plenty of shell scripts (and occasionally an Emacs front-end to go with them). You should use whatever you think the best tool is for the job. Also, Emacs is excellent at interfacing with other tools, so *knowledge* of those tools can enable you to do more in Emacs (an obvious example being the various `find`/`grep` tooling, where you might want to pass in custom options to those commands). Finally, as wonderful as Emacs is, it doesn't (by a long shot) contain alternatives to every shell command. All that said, go ahead and dive headlong into elisp -- just come up for air at some point, and look around.
JohnathanDee · 2022-02-28 06:25
OR? C'mon. Or XOR?
HollywoodKizzle · 2022-02-28 09:36
May I ask why? Why couldnt I write an init script with Emacs lisp? Have you yourself attempted such a thing? Im only vaguely familiar with what an init script does but I'm curious about any limitations Emacs lisp has. So far i cant discern any but i definitely dont know enough to make that call with any certainty.
RabbitGone · 2022-02-28 10:29
Consider this as part of the learning curve for linux? What would it take to execute lisp at boot-time. There are very limited resources for processing. The lisp execution framework requires things that not available until the completion of the init cycle. While lisp requires very little to run, it must be set up to execute. There was a linux distribution that did use lisp. It is possible. try it out.
Gold-Ad-5257 · 2022-02-28 11:39
Till you get to company with strict security and software management or some non PC based infrastructure stuff and all you get is Vim and bash defaults. As many have said/implied , Learn whatever you can/want, but don't limit and lock yourself in.
ftrx · 2022-02-28 12:15
Mere shell scripting is and will be useful for many, many years so knowing enough to been able to read/debug a *badly written* script from a third party, not much a bash one more a kind-of-sh one (witch means POSIX + various bashism, kshism, ... typically found in the wild) and knowing a more spread shell like zsh is a useful skill almost everywhere. Knowing GNU/Linux enough to been able to solve issues, deploy their own domestic infra (if IT it's not your job) is a valuable skill, GNU/Linux per se is probably the worst unix-like OS out there, but it's widespread everywhere and due to hw on sale and IT evolution it's almost the sole option that remain to craft an almost-FLOSS infra so knowing it a bit is a valuable skill. The rest depend on your actual career and expectation, Emacs still need a bootloader OS, but many, many tasks normally done in unix (CLI+script) can be done in Emacs in a more flexible and powerful way, probably learning Emacs before or together is a VERY good thing: personally I'm an *nix users since the start (a gift-ed SGI O₂ was my first computer as a teenager) and then my job (sysadmin), I'm full in Emacs for personal desktop since around 4 years and still have issues really mastering it, too often fall back to my beloved shell and scripts simply because I know them enough to craft anything the New Year's night a 04:00 drunk and get it right (or right-ish enough to work) in seconds while on Emacs I have often to think, look for docs etc so probably not having such uneven legacy might be of help and advance in both environment together better teach the good and the bad of both. If you can't do study both, well, you already know the GNU/Linux world, try to reach the same level in Emacs and then you'll decide, but remember that in general knowing is useful. I do not use Windows, I viscerally hate it if sometimes I have to use someone else Windows desktop, but I still know a bit of it and still remain a bit up-to-date simply because it's part of the game, and while we live in a small area of the world knowing the Earth is still useful. While we almost only speak one or two languages knowing many is still useful :-)
javajunkie314 · 2022-02-28 12:39
It's not that you *couldn't* — It's just that it's the equivalent of trying to tighten a pipe connection using a mallet rather than using the pipe wrench. Beyond the performance implications of requiring your computer to repeatedly load the Emacs lisp runtime at boot (which isn't exactly light), and that the idea of needing to have Emacs installed just to boot is *absurd*, shell scripting is so ubiquitous here that trying to use Emacs lisp would just leave people scratching their heads. Every init script installed on your computer uses `sh` or similar. Every init script you might install probably will too. You'll have to learn shell scripting if you want to understand them or modify them. And if you were to write any Emacs lisp init scripts, you couldn't share them with anyone. No one would want to learn Emacs lisp for this purpose, and they wouldn't want one weird outlier init script that is so different from all the others they maintain. Beyond init scripts specifically (they were just an example), I guess my point is that programming for Linux is often a social exercise. Remember that programs aren't *just* written to execute; they're written to be read by other programmers. You're communicating when you code. I suppose if you're just working on an island — just tinkering with your own system — then none of this matters. Do what makes you happy. But if you want to work with Linux professionally or share your work with with others, there are conventions, expectations, and constraints that you'll have to learn and understand. Knowing shell scripting is one of those conventions that you'll likely have to learn to be effective at Linux.
darudesandstrom · 2022-02-28 14:46
This is the way. I cannot for the life of me sit down and learn Linux through a book. I thought it would give me a more well-rounded understanding but it just stifles any interest in learning. Make cool stuff, document what you do, think of yourself as your own sysadmin.
AuroraDraco · 2022-02-28 16:30
Yes you can definitely do that. I myself would say that I know only the basics of bash scripting and the core utils, but would consider myself an advanced emacs user. So if you are just interested in emacs, go ahead
jacksonbenete · 2022-02-28 19:00
Even though Emacs can be much more, it still pretty much a text editor. Yeah, a great ecosystem of tools happened around Emacs and they're all great. I never saw anyone saying "I have Vim, so I'm ditching Linux", or "I have VSCode, I'm ditching Linux". If you want to put 100 hours into Emacs and Elisp, go ahead. Nothing to lose, except that you're now a master of a text editor and nothing else. If you're not interested in learning bash or any other shell scripting, maybe that's because you don't need to learn it. If you needed, you wouldn't be asking. If you're a system admin or devops, or something like this, you'll need more tools than a text editor. If you're a software developer maybe you don't need to have as many tools in your belt apart from a text editor/IDE and a compiler, even though knowing other tools would make your life easier and would make your work more efficient and powerful. I thought it was a waste of time learning sed, until I needed it. The same just happened to a lot of other Unix tools. If you're asking the question and are pretty much already convinced that Emacs is the way, nothing we say will be of help. But if your mind is open, you'll eventually understand, either alone or by accepting other people suggestion, that only having mastered a text editor might not make you thrive. Having everything in a single programming language might sound cool but it makes less sense than you think. When you turn more senior in your career you'll (hopefully) understand that you should just pick the right tool for the problem, and it means knowing a lot of tools well to know when to use one over the other, and to know a lot of programming languages well to know when to use one over the other. The one language (or tool) "for it all" normally end up with you having a mess of a project in your hands, and a lot of problems (bugs) that you have created yourself by using the wrong tool and making poor decisions. Don't fall into cults and religions in IT. Emacs is a great text editor but you might find yourself in situations where you don't have it or you can't have it. The same for a programming language, or a design pattern, or an architecture. If you think that your programming language of choice is the best one over anything else you're already in trouble. There are a lot of cults in IT. People that will try to use Scrum even though Scrum is not making the team move faster. People that will try Microservices even though it's not the best architecture for the problem they have in hand. People trying to apply hexagonal architecture in any project that don't need that. There will always be a buzzword, or a new (or old) cool text editor, that people might want to adopt and ignore everything else. Those are traps you need to avoid. Nothing wrong by using Emacs if you like it, but ignoring everything else because you think that Emacs it's the answer for everything, it's another trap.
El-Raton · 2022-02-28 19:08
Go emacs all the way. But don't try to force your way through emacs just to avoid learning something else. Whenever I make a shell script is to group several commands that are run in sequence to complete a task. I've never considered that any advanced form of shell scripting. The most I've done is making rc.d scripts, which are rather basic but are also quite complex. I've never missed that skill in 20+ years, and I don't think you would either. Emacs is filled with unix idiosincracies, it will flatten your unix learning curve.
sunnyata · 2022-03-01 00:36
One limitation is that Emacs is single threaded, so if you need to do anything concurrently you'll have to call external processes. As most others have said, you should learn both, it isn't either/or and actually isn't that much of a big deal over time. Use the right tool for the job.
HollywoodKizzle · 2022-03-01 02:16
Thanks for the red pill.This one reply was the straw that broke the camel's back in my [convincing.](https://convincing.My) My aim is to become a web developer and then ultimately a software engineer.Lately i've been obsessing over becoming more productive with the tools i use and i can't lie the "one language for it all" was definitely alluring to the lazy side of me.I guess subconsciously i'm looking for a shortcut around the burdern of contending with learning multiple programming languages,config file syntaxes,command line utilities,as well the Windows vs Linux ecosystems.But my gut instincts are telling me you're right.There is no one-size-fits-all solution to IT i guess.
Camel-Bulky · 2022-03-01 09:48
As much as I like Emacs, being professional UNIX engineer I almost never have a chance to use it. I am getting paid to work on other people's Unix servers. And in 20+ years I am yet to see Unix (Linux, Solaris, AIX, HP-UX...) server with Emacs pre-installed. So no, unfortunately you can't just use Emacs... Unless the only Unix workstation you ever plan to use is you own personal computer.
Camel-Bulky · 2022-03-01 09:54
Well, Guix went all in and wrote everything in lisp, including init scripts (admittedly in guile scheme, not Emacs lisp). They seem to be doing ok.