I've seen so many editors come and go, and yet I've been using Vim for the past 20 years and have never had a problem. As stupid as it sounds, if I could give one piece of advice to any entry level SWE, it would be to learn Vim or Emacs and just stick with it for your whole career.
I find this and the emacs sentiment really weird. I use vim daily for quick edits, but for any sizeable codebase, especially new/unfamiliar, IDE's are just better. It's like depriving yourself of a bunch of tools and helpers for no visible benefit.
My company has banned the use of Jetbrains IDEs internally
191–200 of 201 posts
Re: My company has banned the use of Jetbrains IDEs internally
#192I've seen so many editors come and go, and yet I've been using Vim for the past 20 years and have never had a problem. As stupid as it sounds, if I could give one piece of advice to any entry level SWE, it would be to learn Vim or Emacs and just stick with it for your whole career.
I probably used vim exclusively for about a decade. I've worked with a handful of developers who've only used vim and I've only known one who was anywhere near as effective with it as most IDE users. A few examples -- debugging with print statement because they don't know how to use a command line debugger -- using find and grep to find files/methods -- hand-formatting files because they don't have a inline formatter…
Re: My company has banned the use of Jetbrains IDEs internally
#193Earlier quoted context omitted.
But this is people that use their autocomplete, F8 step through debugging and the like. I was like that about 20 years ago, working with Eclipse and later NetBeans for Java and Visual Studio for C# .net v1 (anyone remembers whole tomato extensions?). I needed the IDE , the autocomplete, the debugger and all that. Nowadays, I do mostly Vim and Vscode for more complex projects. I don't know why, but I "grew out" of nee…
Shudder to think that in 20 years (or less!) there will be a generation of programmers who suckled at the teat of ChatGPT and firmly believe that software is impossible to write without LLM help.
Re: My company has banned the use of Jetbrains IDEs internally
#194I've seen so many editors come and go, and yet I've been using Vim for the past 20 years and have never had a problem. As stupid as it sounds, if I could give one piece of advice to any entry level SWE, it would be to learn Vim or Emacs and just stick with it for your whole career.
Vim is great but I think VSCode really is the one tool to rule them all going forward. It's extremely well designed, snappy, and I think does the correct thing of first treating everything as a text file and allowing plugins to provide semantic meaning. I never liked visual studio because it was too specific to writing software and using the GUI to do what I wanted. Editing msbuild files directly was a pain for examp…
I think you missed the point of my comment you are replying to. You can get things done in any editor. The point is that Vim/Emacs have been around for decades and last your whole career, VSCode has been around for a fraction of the time and killed off the previous editor, Atom, that everyone though was "the editor".
Re: My company has banned the use of Jetbrains IDEs internally
#195I've seen so many editors come and go, and yet I've been using Vim for the past 20 years and have never had a problem. As stupid as it sounds, if I could give one piece of advice to any entry level SWE, it would be to learn Vim or Emacs and just stick with it for your whole career.
I'm one of those people that doesn't like polluting his brain with a ton of keyboard shortcuts and likes clicking with a mouse on stuff and is just more efficient with it. I've seen video clips of "efficient" terminal text editor use, and while it looks cool in a hacker way, it just isn't any faster than what I do without all of the overhead of memorizing a ton of keyboard shortcuts and editor commands. I would defin…
Which is a huge issue. If all you know how to do is crank up a GUI and write code, you are easily replaceable in a world where the demand for SWEs has gone way down. The best thing I ever did in my career is invest in learning how things actually work. Learning how something like Vim works is just a litmus test for absorbing and applying information quickly. Vim is just one in hundreds of tools I've learned how to use and string together.
Re: My company has banned the use of Jetbrains IDEs internally
#196Re: My company has banned the use of Jetbrains IDEs internally
#197Earlier quoted context omitted.
They would have to be rather specific and specialized reasons, and they did not specify anything of the kind, just “Go and Python”.
I don't think anyone is arguing that emacs is *incapable* of being a good editor for Go and Python. I personally just don't want to. These same reasons are as applicable to emacs as they are to (neo)vim (which I used as my daily driver for a while). 1. I don't really want to bother with a DSL for configuring my editor (even if the language is usable outside of that context for other things) 2. I don't have time to bo…
On the contrary, the article said, literally: ”We are primarily a Go and Python shop, which means our only real option is VSCode”. Meaning they do not consider Emacs to be a ”real” option. This is expressing more than mere personal preference; it is, at best, profound ignorance of what Emacs is capable of.
Re: My company has banned the use of Jetbrains IDEs internally
#198Earlier quoted context omitted.
People who write “our only real option is VSCode” about Python and Go programmers are ignorant of what Emacs can do. Some people may prefer something else, but Emacs is a real option.
As a five+ year Emacs user who primarily codes in Go and some Python, and is aware of eglot, other LSPs, elpy, etc: I fully agree that VSCode is the only real option. If you happen to have a passion for Emacs, as I do, awesome. But it's not realistic to start using Emacs when you need to switch off of another editor. I would never suggest to a new co-worker "try Emacs", though I would be more than happy to help them…
I sort of get the other points, but I really don't get this at all. How is Emacs documentation esoteric? Emacs is without a doubt the best-documented application I've ever used. I can't think of a single thing with documentation as comprehensive, accessible, navigable, interactive, searchable, or genre-spanning as Emacs' documentation.
Emacs' documentation is so far from assuming that you already know how Emacs works that it'll literally teach you not only how to use the available configuration options for its built-ins (and any external packages you choose to install) or the language used to set them, or even how to write code in that language, but what computer programs even are.
Someone with zero programming knowledge whatsoever could sit down at a computer with no internet connection, open Emacs and its manuals, and learn everything they need to use, understand, and modify Emacs all the way to the point of contributing their own Elisp code to popular packages or Emacs itself. All that without reference to a single external document or a minute of personal instruction. Emacs documentation covers everything from how to change your colorscheme to what a loop is. How is that 'esoteric'?
Re: My company has banned the use of Jetbrains IDEs internally
#199Earlier quoted context omitted.
I've used GNU Emacs since the mid 80s. It was good in its day, but I think there may be better alternatives nowadays. I can't be sure, though, because using Emacs as an expert is definitely better than using those other systems as a beginner, so I haven't gotten around to getting over the learning curve.
Relatively recent Emacs convert here It is still very very good IMO having been a somewhat longterm user of IDEA, Vim, Atom, and Eclipse The addition of elisp JIT compilation even makes its performance more than adequate
I first started using Emacs in 2015 or so, sometimes still relying on other editors (usually IDEs) alongside it.
I was still in school then. By then, I'd used for varying lengths of time (and had been taught, to varying degrees): DrScheme, BlueJ, Visual Studio, Eclipse, NetBeans, and IntelliJ IDEA. (I'd also used vim, Kate, and Notepad++, but I used those mostly for editing configuration files, plaintext notes, and shell/batch scripts. Vim was the only non-IDE editor I'd ever used for any real programming, which amounted to my coursework for a few classes in college.)
I didn't dive in with writing my own config from scratch, but started with Spacemacs as someone with prior (and merely casual) vim experience. It was better in some ways and worse in others than those 'modern' IDEs I'd used previously. Performance was worse (although resource usage was much better) in that sometimes Emacs would hang or pause for slow operations. Startup time was slow, but client/daemon support made that invisible. The total stack I ran was noticeably buggier than alternatives like JetBrains, because a distro like Spacemacs glues a ton of external packages together. Spacemacs releases were infrequent so I ran against development branch, inviting more bugs.
But the main thing that struck me was how nothing else I'd ever used was as easy to learn as Emacs. I loved all the search-driven workflows and interfaces, how fuzzy-filtering was everywhere. I loved how running commands 'manually' always showed and reminded me what their keybindings were. I found myself learning many more keybindings than I ever did with other editors/IDEs, because they were so easy to look up, and looking for many more 'interactive functions' (commands) than I ever had before, because they were so easy to search. It had quirks, and I was grateful to have a 'starter kit' in Spacemacs (without which I likely never would have picked it up). But overall it was clearly, decisively better than anything I'd ever used in virtue of its radical discoverability alone, and I quickly built up muscle-memory for the Spacemacs bindings.
Automated refactoring and advanced code navigation were clear weaknesses, though. That's why I sometimes used JetBrains IDEs for some languages in the years immediately following.
Nowadays I'd say things look even better for Emacs as compared fo IDEs. It has pretty good performance, and more and more packages do things asynchronously where it makes sense. Virtually every programming language has one or more LSP implementations, so good code navigation functionality is easy to come by and old tools like etags can still be used as seamless fallbacks. (I don't do much work in static languages lately so idk how good the refactoring support for popular LSP implementations really gets, but basic refactoring in Python seems fine.) Emacs even gets along well with the new 'AI' hotness; its documentation culture and fine vintage mean that ChatGPT and friends are better at writing and explaining Emacs Lisp than the vast majority of programming languages, plus they 'know' lots about not only Emacs built-ins and popular packages, but even the configuration idioms and special macros of popular Emacs distributions like Spacemacs and Doom Emacs.
I no longer use any other IDEs anymore because I don't see any reason to for my current use cases, though I do still use Vim a little. Recently, I've started occasionally using VSCode to test things on behalf of my users at work, who are other developers. Far from decaying or falling behind, I think Emacs has become a steadily more attractive alternative to IDEs since I started using it. I don't begrudge anyone their VSCode or JetBrains IDE if that's what they've already chosen, but I'd still recommend Emacs (with a good starter kit) over either to programming novices today.
Re: My company has banned the use of Jetbrains IDEs internally
#200I've seen so many editors come and go, and yet I've been using Vim for the past 20 years and have never had a problem. As stupid as it sounds, if I could give one piece of advice to any entry level SWE, it would be to learn Vim or Emacs and just stick with it for your whole career.
I'm one of those people that doesn't like polluting his brain with a ton of keyboard shortcuts and likes clicking with a mouse on stuff and is just more efficient with it. I've seen video clips of "efficient" terminal text editor use, and while it looks cool in a hacker way, it just isn't any faster than what I do without all of the overhead of memorizing a ton of keyboard shortcuts and editor commands. I would defin…
Would that still be true if the ordering of your menus (and the items within, recursively) were randomly shuffled each day, and which side submenus opened on were also randomized? How about if the speed of your mouse or mouse acceleration behaviors varied?
I think you may be discounting memorization which benefits your workflow because that memorization is spatial rather than symbolic. Perhaps there's an argument to be made that such memorization is more natural, gradual, or easy, but there's definitely memorization involved in mousing around with any degree of efficiency or speed.