practicalli / spacemacs

Content for the book - Clojure Development with Spacemacs
https://practical.li/spacemacs
Creative Commons Attribution Share Alike 4.0 International
110 stars 33 forks source link

Spacemacs for beginners - is it beneficial #235

Open practicalli-johnny opened 4 years ago

practicalli-johnny commented 4 years ago

Do you think it's worth for a beginner developer who still doesn't know much about the big frameworks to spend time learning Emacs? Especially if said developer has been using Emacs' fabled competitor for over four years now?

I was searching for what the best free IDE is, and ended up finding your answer in quora about emacs [1].Ever since I did a few projects in Racket I have been interested in the lisp scheme syntax, and been dancing with the idea of learning Emacs. But since I found my first job, I've been jumping from (the introduction) of one technology or another because I needed them for my role. Now I'm about to be furloughed, and the dance of learning Emacs seems much more attractive, but I don't know if it's the right time for this.So I'd really appreciate to hear your take on this dilemma. :)[1] https://www.quora.com/What-is-the-best-free-IDE/answer/John-Stevenson-12 quora.comquora.com John Stevenson's answer to What is the best free IDE? - Quora GNU Emacs - GNU Project [ https://www.gnu.org/software/emacs/ ] is arguably the ultimate free IDE. Emacs is free in both terms of cost and usage. Emacs has excellent language support for a huge range of programming languages, offering IDE feature...

Short answer: Yes, definately learn Emacs, start with Spacemacs develop branch and read my book https://practicalli.github.io/spacemacs/Longer answer: It sounds like you have the agony of choice, which is a very real problem in our modern world. There are so many things you can do with your time. I can offer my experiences as a guide, but only you know how best to spend your time :slightly_smiling_face:I would certainly recommend looking at Emacs and specifically Spacemacs if you have the time. There are lots of features you can just drop into Emacs that can help with a wide range of languages. Arguably Emacs has the most up to date support for the vast majority of languages (with LSP there is even excellent support for Java).Using a community configuration like Spacemacs helps you stand on the shoulders of giants and use everyones experience to do more. So the learning curve for Emacs can be very shallow.I assume you refer to Vi/Vim as the alternative to Emacs. I find the Vi style editing (multi-modal) to be amazingly productive and feel lost without it. Ironically, I only learnt Vi style editing when I started using Spacemacs.I suggest reasons to move away from a specific Vim tool and to Emacs are

1) vimscript (some people find this less than productive) and Emacs lisp is a very effective and elegant programming language with which to configure your editor.

2) Arguably there are more features / better language support generally available in Emacs than Vim

The single biggest change in moving from Vim to Emacs is that you run Emacs once and keep it open all the time. If you keep closing and opening Emacs, as is often the case with vim, its likely you will find Emacs slow and will be less likely to want to use Emacs instead of Vim. You can set up a persistent server or daemon process for Emacs too, then use emacsclient command.If you use a community configuration for Emacs (Spacemacs, Prelude, Doom) then this can save a lot of time setting up the basics. Using Spacemacs I have discovered lots of very useful features that speed up my work that would have taken a lot longer to discover and configure on my own.Spacemacs has become my config of choice, so much so I wrote (am still writing) a book on using this. Initially for Clojure development, but has broadened to a more general Spacemacs / Emacs guide. https://practicalli.github.io/spacemacs/If you do try Spacemacs, I highly recommend using the develop branch. It is quite stable and has all the latest bug fixes and new features like Language Server Protocol which many languages are adopting (Clojure already has CIDER which already does a lot more than LSP).Feel free to ask any follow up questions. Thanks. John.

Wow, thanks for the long answer. And yes: the agony of choice describes very well where I am.When I started my dance with emacs I did try spacemacs, but ended up spending half a day looking for a 'single source of truth' for learning resources, and then settled on trying neovim because apparently it uses lua, which I could also find a way to do in functional syntax.Then neovim turned out to be more high maintenance than I could use, so I got distracted with some front end frameworks and ended up moving it to the bottom of my pile of 'to-learns'.I'll check out your book, and if I have any more Q's I'll let you know. :slightly_smiling_face:

To manage the agony of choice, I write a list of specific goals or things to achieve. Then priorities them and choose the top 3-5 things. Then capture initial thought on how to achieve them. Spend up to 30 mins doing this, don't spend all day.Using Emacs org-mode is excellent for this task.Then pick a goal and see if you can achieve the goal with your initial approach and spend a few hours or up to a day seeing of the goal is attainable. If so, keep going, ideally until you have finished. Otherwise switch to another goal and give it a reasonable amount of time to evaluate.I'd suggest learning Emacs is too big of a goal. So what is it you want to do with an Editor/IDE that you can't do now (or don't like the way you currently have to do it).It is okay to just have days where you go and explore, but summarizing what you learnt from an exploratory day can be very valuable to feed into your goals.

For Spacemacs you can get a lot of help from the community, via the chat app on the website https://www.spacemacs.org/. And of course you can ask me about things too