all 35 comments

[–]yyoncho 22 points23 points  (7 children)

Top 20 bug by thumbs up in VScode - https://github.com/microsoft/vscode/issues/871 . This will make every Emacs user laugh.

[–]clemera(with-emacs.com 8 points9 points  (4 children)

Here is another amusing one - "VS Code fails to start/open when offline". It's fixed, but when the Editor does not start because I'm offline, I would start to worry.

[–]andreyorst 14 points15 points  (0 children)

No worries, I got you covered:

(require 'cl)
(when (not (remove-if (lambda (el)
                        (string-match-p "lo.*" (car el)))

[–]yyoncho 0 points1 point  (0 children)

Yeah, remember that bug.

Even more, due to the lack of extensibility on the vscode side a lot of the language server protocol extension are forced to write bizarre code because you do not have the required extension points, you cannot access one plugin from another, extension X cannot call a method of a language server from another extension, and so on.

[–]kidsincatacombs 0 points1 point  (1 child)

"VS Code fails to start/open when offline"

Wait. Does VSCode need an internet connection to work properly? (I don't know because I don't use VSCode)

[–]andreyorst 1 point2 points  (0 children)

Not VSCode, but pretty much every Electron based app had this bug before Electron fixed this in version 3.

[–]zck 0 points1 point  (0 children)

Yeesh, and the whole thing is stringly typed.

[–]r-zip 0 points1 point  (0 children)

Oh my god.

[–]EnoughUnit5 6 points7 points  (0 children)

I guess it depends on what you use it for?

For instance, I know nothing about ELisp and barely anything at all about Emacs internals. Yet I've got my GTD system implemented using org-mode, and don't really see why I'd ever move to another tool. I've tried several over the years (Evernote based, various online checklist type tools, FacileThings) - Emacs has them all beat without really trying, and that's including the few hours I had to spend up-front to learn to use Emacs. Certainly no text editor is likely to ever come close to enabling my productivity system like Emacs does. I'm not really counting the time I've spent customizing my .emacs file as investing in Emacs, rather it seems to me like an investment in my own productivity system which just happens to be based on Emacs. If I were using some other tool that allowed such flexibility, I'd have spent similar time customizing it to my needs.

Now if I were writing a novel, maybe it would matter less which editor I was using, and in fact something simpler might be better - as there'd be no investment at all needed to learn to use it, and you'd get similar productivity.

Writing code is yet a different question - e.g. Eclipse takes some time to learn to use properly, but this I think is true of any IDE and is more down to the complexity inherent in creating software, rather than the editor being used.

[–]fergie 6 points7 points  (2 children)

VS Code is more _beginner_ friendly, Emacs is more _user_ friendly.

For more experienced developers VS Code has some advantages if you are working a lot with Microsoft products/technologies, and also if you are working on large code-bases that lack sufficient tests and documentation (which is basically why TypeScript is a thing)

You couldn't spend as much time learning VS Code as you could learning Emacs- Emacs is so much bigger.

[–]gepardcv 2 points3 points  (0 children)

To paraphrase an old quote from hacker folklore: "Emacs is user-friendly — it's just choosy about who its friends are."

[–]deaddyfreddy 0 points1 point  (0 children)

"Simple made easy", eh? :3

[–]andreyorst 12 points13 points  (1 child)

Most of us know that to use Emacs efficiently one have to spend quite some time learning it.

Not entirely true. All you have to learn is some basic shortcuts, and wordings used to describe things. Emacs itself is pretty generic editor, that one can use as most of other editors. Shortcuts are bit different, but that's it.

I also think that Emacs power comes from elisp, i.e. that Emacs is not just and editor but a lisp machine. And to master it you have to learn Elisp and Emacs internals.

Again, not entirely true. While Emacs power comes from elisp, you do not have to master elisp in order to master Emacs. Emacs Lisp will make you more efficient though, but it's not that required today.

Is it applicable to other tools as well?

All tools need you to invest time to be proficient. Not because they are complex, but because you need to learn how to use those in your advance.

For instance, if you are a VScode user and you spend as much time learning it as someone spend on Emacs, what will be the difference?

VSCode is a bit wrong example, but I get why you've mentioned it. There's another editor, which is also based on Electron, but much more Emacsy, than VSCode. It is Atom. For Atom you can write scripts in JS, and it has init script in the same way as Emacs. You can hack upon Atom pretty much the same how you can hack upon Emacs. VSCode is way more restrictive, becuse it want to provide OOTB experience, while Atom declares itself as "the most hackable editor".

I think if I could go back in time, clone myself, put in parallel universe, and in one start using Emacs, and Atom in another, after several years, I think, Emacs would sitll beat Atom. Not because of elisp though. Just because in Emacs everything is a buffer. In atom it is not. In Emacs you can do much more with text than in Atom. Yes, Atom has better display capabilities, since it includes web engine, but it also means that everyting that you will develop for it will need to keep up with it and thus result in more complex code which is harder to develop. Here elisp comes and it is actually better to develop in lisp language than in non lisp because of the nature of lisp. I'll not go into depth here, but I think that lisp is superior.

[–]Tatrics[S] 0 points1 point  (0 children)

Of course I'm overgeneralizing a bit. I could say it more accurately, maybe like *..compared to more wide used editors...*, but I think my general idea was clear.


This is interesting point, thanks!

[–]quokka70 4 points5 points  (1 child)

I've been using Emacs since the 80s and I don't feel I know Elisp (or any Lisp dialect) beyond the most basic level.

I can poke around in a .el source file to see what is available and why my config might not be working. I can take .el snippets I find online and modify them a little for my own init.el. I have written little pieces of .el code in the past, but only with great effort and lots of trial and error.

I feel very productive in Emacs but I don't claim to have learned Elisp. Maybe this means I'm not a power user. Recently I've had terrible problems with flycheck because my development environment (in Ruby) uses rvm, and Emacs doesn't seem to be able to keep up with as paths change from project to project. Attempts to work out what is going on in code have left me bewildered. But I have no plans to leave Emacs.

[–]fergie 0 points1 point  (0 children)

Same here. Been on Emacs since 2000. Would love to learn lisp, but somehow never quite get round to it.

[–]F0rmbi 5 points6 points  (5 children)

I think Emacs is more flexible

[–]Tatrics[S] -1 points0 points  (4 children)

In what sense?

[–]blablook 6 points7 points  (3 children)

You can start using Emacs for coding PHP and endup planning projects in org-mode, managing calendar, reading email and debugging C on AVR using JTAG and gdb frontend.

I recently enjoy emacses in tmuxes and ability to connect and use them on 8'' tablet anywhere over a mosh connection. Killer feature for me, unattainable with strictly graphical editor.

[–]arbv 2 points3 points  (0 children)

This is a killer feature for me as well. I can run Emacs on my machine in GUI mode on both Windows and Linux or remotely on Raspberry Pi via SSH. All the instances use the same configuration. There is nothing as flexible as Emacs.

[–]celibidaque 0 points1 point  (1 child)

You're using Emacs in console, without X?

[–]blablook 0 points1 point  (0 children)

All the time. Within tmux, with a 256 color terminal. And if I feel like it i can M-x server-start and connect graphical frame with emacsclient -c.

I rarely do though.

[–]char1zard4 2 points3 points  (0 children)

I’ve only been using emacs for a couple of weeks, and I switched from VS Code. There are several things I’ve liked so far, including the level of customization and work I’ve needed to put in already, but it does what VS Code did for me and goes above and beyond. I tried TRAMP mode for the first time yesterday and it did exactly what I needed. If I want a sidebar, I go find the package that has that. I understand and can change every single aspect of my editor without a settings menu

[–]purcellMELPA maintainer 2 points3 points  (0 children)

I think about long-term payoff of the time investment. I started using Emacs seriously maybe 20 years ago, and I suspect I'll still be using it 10 or 20 years from now. I've spent a lot of time learning elisp and tinkering, but given that timeframe, it seems worthwhile.

[–]crimefighter_sweden 2 points3 points  (0 children)

The first 25 years I used Emacs, I didn’t bother to learn but the basics of elisp, yet I felt I had mastered the editor - it seemed useful in every way. I was wrong. The following 5 years I made an effort to learn to program elisp on an intermediate level. Since then, Emacs is a completely different program. Instead of adjusting myself to the available functionality, I make my own functions on the go, sometimes new, sometimes leveraged on existing building blocks. Tasks get done smoother and faster. I still feel like a beginner though. If I could give my 30 year younger emacs-using-self one and only advice, it would be to learn elisp straight from the beginning.

As for other editors like VSCode, Idea etc, it feels very frustrating not to be able to modify them beyond the configuration on the go.

[–]clemera(with-emacs.com 1 point2 points  (0 children)

The difference is that in Emacs you have more control and exercising control is way easier and immediate than in VSC. The reasons for that are partly because Emacs is developed with Free Software principles in mind and partly because of Emacs Lisp which is a programming language that evolved as an Editor extension language. Things like macros, lots of implicit state, dynamic-binding and other features turned out to be quite useful for an application like Emacs because they make it easier for the user(=developer) to modify and control the Application.

[–]igna92ts 1 point2 points  (0 children)

I have used a lot of vscode and theres not much to learn really. You could learn most useful shortcuts in one afternoon. Also on emacs I didn't really want to configure my own but I wanted to make the switch so I just used spacemacs, which still took me some time to get used to but I wouldn't go back to vscode ever except for unity development

[–]snippins1987 1 point2 points  (0 children)

I think the different between Emacs and other tools is that you will never stop finding new ways for Emacs to help you. Other tools usually has some limit on how much they can help.

For context, I use all kinds of IDEs and VSCode (for debugging) together with emacs (for writing actual code). I have a shortcut to switch between IDEs and Emacs and jump to the the same file and position. IMO this is 100x better than trying to set up Emacs for debugging.

And despite using all kind these development tools, it seems like Emacs is the only tool that can continue to gain me some meaningful productivity boost. This is because with a little elisp I can bend it to deal with what ever I am currently working on, in the way that I found the most suitable. For other tools I could only function in the same ways regardless of the problem.

[–]sikespider 1 point2 points  (0 children)

I'm not a software engineer but I do a lot of operations and automation(SRE?) so take this with that in mind.

Probably 80% of what I do with Emacs isn't even "emacs". I spend a heck of a lot of time writing docs in Org Mode, keeping track of tasks with Org Agenda, and, lately, email with mu4e so that I can do very detailed emails using Org Mode.

So, y, emacs -- for me -- it's just the thing that let's me do Org Mode. ;) But its also a pretty good editor.

[–]ftrx 1 point2 points  (0 children)

IME spending time in Emacs means learn something that remain as a valid, solid and useful base for the future. Spending time in any other editor but Vim family editors is simply wasted time. You learn something that might be useful today but not something that can really last longer.

It's the same classic paradigms: learn first, it might be hard, but it pay of for your entire life, vs try to take the easy path, it's easy at first, but you'll pay it every day of your future life.

[–]kcin 0 points1 point  (0 children)


If you want to extend vscode like emacs then you'll have to spend time learning it too. With Emacs you have to learn the emacs api and elisp to program it. With Vscode you have to learn the vscode api (the documentation is pretty sparse, you'll have to hunt for examples), javascript and the javascript ecosystem if you don't want to code everything yourself.

I tried vscode and it's nice that it can be used with the keyboard efficiently. They paid attention to that. I tried to program it too and it's adequate, but very restricted, because you can do only with windows and stuff what the vscode devs allow.

[–]sollidsnake 0 points1 point  (0 children)

Editors like VS Code are made to work out of the box, with no need to spend extra time learning and customizing it. Most people just want to open it and get work done.

Vanilla Emacs is a pretty bad editor in comparison, and much harder to learn. You have to dedicate some time into it in order to be as productive as a first time VS Code user. You have to spend some time learning and customizing it, and I think that's when end up discovering the beauty of your editor. You see how much fun is to make your editor adapt to your needs, and not the other way around. After a while you are going to want to create your own packages. I would say that the percentage of Emacs users that contribute back to the community is much bigger than VS Code's.

I believe this is the reason why Emacs and Vim users love so much their editors and dedicate so much time to them.

[–]gavenkoa -5 points-4 points  (2 children)

Don't go for Emacs unless you want to learn Elisp.

I remember only long debug sessions with Emacs and reading elisp code to make things done.

[–]blablook 5 points6 points  (1 child)

That's untrue for me. And I've got colleagues with no elisp skill at all using happily spacemacs. Tweaking defaults in vanilla emacs can be daunting, bit itst not really necessary nowadays. Hardcore emacsers might frown, but this helps people.

[–]Asteridae 0 points1 point  (0 children)

So true! I used Emacs effectively for about 8 years with little to no knowledge of elisp. I finally got to learn it because I was interested in lisps but quickly directed my attention towards Clojure.