Readit News logoReadit News
teddyh · a year ago
> We are primarily a Go and Python shop, which means our only real option is VSCode

I’d like to echo the sentiments of Reddit user tikhonjelvis, who commented¹:

“Man, I knew CS programs were skimping on Emacs fundamentals, but I hadn't realized it was this bad.”

1. <https://old.reddit.com/r/ExperiencedDevs/comments/1gqj7qa/my...>

awestroke · a year ago
Believe it or not, ignorance is not the main reason people don't use emacs
brazzledazzle · a year ago
The main reason is that Vim is better, right?
teddyh · a year ago
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.
dizhn · a year ago
Thinking VS Code is their only option though? (To support two wildly popular languages too.)
pjdesno · a year ago
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.

binary132 · a year ago
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

zkry · a year ago
I started using Emacs in the late 10s and I can definitely say that depending on your values there are no alternatives that even come close.

If you want the absolute minimum learning curve then perhaps there are better options, but I'm pretty sure you'll be stuck at a local maximum there.

Deleted Comment

winocm · a year ago
Doctor mode...
nnf · a year ago
Useful link to the JetBrains blog from the Reddit discussion: https://blog.jetbrains.com/blog/2022/12/06/update-on-jetbrai...

From that blog post (2022):

> In addition to terminating all sales, all of our offices in Russia, including Moscow, Novosibirsk, and St. Petersburg were shut down. Work on the new campus in St. Petersburg was also terminated. All R&D activities were gradually stopped and liquidation papers for our Russian legal entity were filed in August 2022.

mananaysiempre · a year ago
And a fair amount of people were relocated, Russian and Ukrainian both. I wanted to be mad at JetBrains for joining the “screw the closest Russian we can get our hands on” wave[1], but I’m not really able to because of that.

[1] A contemporary joke went (hope the translation works): “Durex has announced it is leaving Russia. When asked for comment, the company’s representative responded, ‘Not our fucking problem now.’ ”

stackskipton · a year ago
My guess is continued heavy employment of Russian citizens is the problem. Risk of state putting pressure on their families and turning them may be too high for certain government agencies.
toprerules · a year ago
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.
twelve40 · a year ago
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.
llm_trw · a year ago
Since I graduated, I've had people try to sell me on the following editors, which were going to be the future: BBEdit, TextMate, Sublime Text, Atom, Komodo Edit, NetBeans, and Eclipse.

Each was going to kill Emacs.

Somehow, I think I'll be using a version of Emacs until the day I can no longer type.

Meanwhile, everyone else is wasting months getting up to speed on the latest and greatest thing every 8 years or so.

This adds up over a career.

Oh, and by the by, this was written in Emacs using GhostText as the link between Firefox and Emacs.

bitwize · a year ago
There are a number of neurodiverse hackers who've "switched off the targeting computer" precisely because it's disruptive to thought to always be having to constantly juggle the state of code in your head with the fucking video game appearing before your eyes as you type. I am one of them.

Recent research has confirmed that this is an actual phenomenon: https://link.springer.com/chapter/10.1007/978-3-031-35017-7_...

Discussed on Hackernews: https://news.ycombinator.com/item?id=36721055

If IDEs help you work better, that's great. Do not presume your experience and preference generalize to all.

bawolff · a year ago
Maybe i just never gave the heavyweight ide tools a fair chance, but i always found them more distracting than helpful. Focus is king for me, and vim gives me that.
packetlost · a year ago
idk, I find I don't miss anything from heavyweight IDEs. I switched to neovim like 6 years ago. 95% of working with a codebase, familiar or not, is navigation and editing. LSPs enable pretty much any editor to intelligently navigate to definitions and find usages of a given construct. Anything beyond that is quickly hitting diminishing returns.

The one exception is maybe untangling particularly gnarly git conflicts.

gedy · a year ago
Not OP, but I was confused as well, but found that a lot of people who did this had basically created an IDE-like experience with tmux, etc around vim, etc.

Not really my thing but I guess it works for them.

toprerules · a year ago
What tools, what helpers? I hear this comment a lot and it's just ignorance on the part of people who clearly have never tried to actually learn how to use (Neo)vim or Emacs. I've used Jetbrains, VSCode, Atom, Xcode plenty and there's nothing that I can do in those IDEs that I can't do in Vim besides things related to platform specific SDKs.
acuozzo · a year ago
My current codebase is a liberal mixture of C, C++, Java, and mksh. The whole project uses CMake and GNU Autotools and ndk-build and whatever the heck calling mma with AOSP does.

There's no way to unify it given how many different moving parts are involved. Trying to fit this all within an IDE would be a project of its own...

Lio · a year ago
How? What tools do you have that you can’t plug into any editor that supports LSP/DAP like emacs or vim?
camgunz · a year ago
Everyone's brain is different, but I'd bet you'd be surprised by how good you are at things you rely on an IDE for (autocomplete, go to definition). For other stuff, sed and grep will cover 90% of your needs. Source: me, and I'm pretty good at this.
csdreamer7 · a year ago
Strongly disagree, but I am in a niche field, Linux kernel development. Emacs is really struggling with it's tools. But for Neovim: the plugins and good keycombos are absolutely essential to get certain functionality for my productivity.

* rg with telescope window to quickly find text in very large code basis is essential.

* Pressing spc, spc, to bring up a telescope window of my open buffers and typing in text to narrow them, very important.

* To date I still struggle to get the LSP to work the Linux kernel on VSCode, but on Neovim I got it working.

IDE's have a lot of menu clutter that I struggle to make good use of-most programmers working on user-space apps, it is likely fine, but for the kernel, we often need more control.

mixmastamyk · a year ago
Most tools work at the command line, making scripting a freebie.
nineplay · a year ago
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 or something to notify them when they've missed a semicolon or spelled a method wrong.

I strongly encourage them to move to an IDE because I can't stand looking over their shoulder and watching them code so inefficiently. There probably are vim plugins to handle many/all of these things, but if a developer doesn't put the effort in to find them than they're just hurting they're own productivity.

bawolff · a year ago
I'm kind of doubtful of this. Just to take print debugging as an example. While there is definitely a time and place for debuggers, i think print debugging can be shockingly efficient in many circumstances.

Besides, typing speed is usually not the limiting factor in programming speed. I think overall efficiency needs to take a broader look.

mixmastamyk · a year ago
A person not using an IDE is more likely to be proficient in command line tools, not less.
toprerules · a year ago
Those developers frankly sound like idiots, I don't think they should be coding at all. Also yes, all of those things are easily done in both vim and emacs.
imp0cat · a year ago
Care to elaborate what's wrong with find and grep?
xtracto · a year ago
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 needing an IDE.

bitwize · a year ago
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.
trey-jones · a year ago
The weird thing about comments like these is that of course you can do all of this stuff with Emacs, you just have to figure out how.
nomel · a year ago
I suspect it’s also about the type of work you do, if you don’t need a debugger.
rad_gruchalski · a year ago
Are you using Vim and VSCode in plain text for everything? Or do you still like the language server, syntax highlighting and the like?
bramhaag · a year ago
As someone who programs Java daily and uses Neovim daily, I don't think I could be any less productive than when programming with Java in nvim.

Some features that I do not have in nvim, but use daily in IntelliJ: Run configurations, proper debugger, SQL integration, hot reloading, and most importantly everything just working OOTB (auto complete, snippets, docs, ...). Can (n)vim do these things? Probably, but it'd take me days or even weeks to get it configured to the point where it's as seamless as IntelliJ.

I do use the IdeaVim plugin, so not all of my muscle memory is wasted.

sagarm · a year ago
Java is really unpleasant to program in without IntelliJ IMO. I strongly prefer NVim for Python and C++, but still use IntelliJ for anything non-trivial in Java.
sitzkrieg · a year ago
one thing missed is intellij can cross-complete over several domains, like correctly showing tables in a sql statement in a java string in your project, if you also have the database added, etc.

ive never seen any vim-with-plugins setup come close to this

ironman1478 · a year ago
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 example. If I wanted to do some shell scripting or system debugging, I had to leave that environment.

Whereas with VSCode, I really never have to leave the VSCode environment to do what I want. I can pop open a shell within VSCode and don't have to switch windows. I can easily open random files not associated with my project and VSCode does the right thing (usually). It opens images easily, renders markdown well, etc. my favorite feature is that you can pipe cli output directly to VSCode in the shell and then it opens a tab displaying that output. You'd be so surprised how often that feature comes in handy.

syndicatedjelly · a year ago
> Vim is great but I think VSCode really is the one tool to rule them all going forward.

I really hope you’re wrong about that. I don’t want to be ruled by another Microsoft product

andreasha · a year ago
>pipe cli output directly to VSCode in the shell and then it opens a tab displaying that output

Example from VSCode Terminal: $ echo hello | code -

toprerules · a year ago
You can do all the things you mentioned in Vim. I also can't imagine that you would be comparing the performance of VSCode and Vim, my vim with all of its plugins and vim script starts up in 95ms. That's faster than the threshold of human perception.

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".

mixmastamyk · a year ago
Nice try, microsoft. There’s way too many floss options to bother with surveillance capitalism tools and lock-in/e³.
closeparen · a year ago
In college I used exclusively plain text editors, and like 80% of my edit-compile-run cycles were wasted on noise like symbol names and the ordering of positional arguments. When I got into professional life and started using JetBrains IDEs, I felt like I was flying.
Apofis · a year ago
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 definitely much rather install VSCode or an IntelliJ product on a Jr's machine, show them how to setup their terminal, get their dev environment setup, how to run and debug the app, and off they go. Edit code. Run code. Debug code. Rinse repeat.

Much more reasonable and preferable to having them spend months learning Emacs. Let's remember, they likely don't know how to use the terminal either these days.

pxc · a year ago
> 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.

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.

toprerules · a year ago
> Let's remember, they likely don't know how to use the terminal either these days.

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.

jimbob45 · a year ago
How can you possibly be as productive as someone working in Visual Studio? I'm asking honestly - working without the solution explorer, being able to look at any immediate variable, instruction pointer dragging, and others seems like it would slow me down immensely.
syndicatedjelly · a year ago
With vanilla Vim, you're right. I recently switched to NeoVim after years of using VSCode, and after about 2 weeks, I am probably back at about 90% of my productivity as VSCode. I had to spend a little time learning Lua and learning the internals of a text editor, but I wanted to learn those skills anyway so I'm glad to have had an excuse. If you have no interest in those things, then I wouldn't recommend leaving VSCode.

I am also excited by the fact that the text editor configuration is programmable in a Turing-complete language, as opposed to pure JSON configurations that VS Code offers (correct me if I'm wrong, but settings are just a JSON file right?). It means that anything is possible.

In VSCode, my biggest complaint was that, for the Vim extension, the status bar was not configurable - I wanted to make the whole page change color when in "Normal" mode, versus "Insert" mode. Not possible in VSCode, but it's only a handful of lines of Lua in Vim.

Is that a huge productivity boost? No, but it makes me happy. Just as much as I want to be productive, I also want to be happy while programming

pomatic · a year ago
Can you offer up a .emacs that provides the same functionality as say, PHPstorm? I've tried, and not been able to reach that level of functionality.
criddell · a year ago
I'd give the opposite advice. Learning a new editor is fun and thankfully they are mostly inexpensive. You will build up a suite of editors that you use in different contexts and be able to talk about the differences based on experience and not just dogma.
jaredklewis · a year ago
I was a heavy Emacs user for just short of 10 years. I don't use it now because I am more productive with JetBrains IDEs. Your advice seems too rigid and dogmatic to me.

Just posting to balance things out for any entry level SWEs reading.

theanonymousone · a year ago
Sticking with something "for your whole career" is a very bold advice that must be taken with appropriate caution. No?
tauwauwau · a year ago
I don't even know what to say to this other than that you are right that it does sound stupid and it is stupid. A software developer should not be afraid of learning software, learning new things is fundamental in our work. Comparing an IDE with basic editor like vi, really, that may have worked out for you since you started 20 years ago when that worked, but it should not be the advice today.
erik_seaberg · a year ago
I learn new tools and platforms all the time, but editing needs muscle memory and I don't want to abandon that every five years for the new hotness. IDEA is just starting to show some longevity for Scala and Kotlin.
xigoi · a year ago
Mainly, a seftware developer should not be afraid of creating neW tools to solve their own specific problems. Programmable editors like Vim allow you to do that, proprietary corporate IDEs do not.
bastardoperator · a year ago
The best is when you open vim/nvchad in vscode terminal.
yapyap · a year ago
or, if you’re feeling spicy go for Doom Emacs
willio58 · a year ago
I know this is so common to say that it's a joke at this point but...

I'd just quit. If people in my company are making sweeping decisions that I disagree with (how much they are based in reality aside), I would just leave. If the company isn't aligning with you on something you feel passionately about, just leave. There are oodles of companies out there that would align with you on this.

pluc · a year ago
I quit over principles about 9 months and 800 job applications ago. I'd advise not to do it unless you're sitting on a pile of cash.
ffsm8 · a year ago
When such a situation occurs you're meant to start searching for a new job, not turn in your resignation immediately.
camgunz · a year ago
I'm genuinely super curious because I hear this a lot, but the deepest I ever got was... 5 apps? Do you have some kind of like generic cover letter/resume you fire off 3 times a day? What is your process?
willio58 · a year ago
That's a great point. Either have a ton of money saved up or just start applying to jobs elsewhere immediately. The latter is what I assume most would want to shoot for.
hayertjez · a year ago
Are you over reacting or really 800 job applications? An accomplishment for putting so many applications out!
mschild · a year ago
Or at least have another job lined up before handing in your resignation.
subhro · a year ago
I hope you understand how privileged you are to be able to say that and hopefully do what you say.
Buttons840 · a year ago
Being in a position to point out the privilege of another is itself quite a privilege.

There is rarely a suggestion given in modern society that doesn't assume a good amount of privilege, and pointing this out every time isn't helpful.

I welcome suggestions that can help those who cannot simply quit, but you didn't give such a suggestion, which is why I say it wasn't helpful.

Accusing people of privilege is a dead end. A person who has been accused of privilege is left without direction. It is better to say "what about these other people" than to say "you're privileged", because it directs attention to the other people. It avoids accusation and focuses attention on those in need.

FredPret · a year ago
This is so tiresome.

If you’re reading this you’re privileged.

Somewhere on this planet is a single individual human who is the very unluckiest and most unfortunate. Everyone else is privileged. Even that guy is lucky to be alive now and not 1000 years ago.

None of this makes OP wrong.

coliveira · a year ago
You say as if it was so easy to get a new job in 2024... Have you tried to check how the job market is right now?
Tainnor · a year ago
"Decisions that I disagree with" are one thing, treating people like children and telling them how to work is quite ridiculous. Yes, not everyone can afford to leave, but I definitely would at that point.
kgeist · a year ago
The perspective here in Russia is diametrically opposite. The common opinion is that JetBrains has completely severed its ties with Russia and appears to have pro-Western, probably European management: they don't sell in Russia anymore, and recently they have started silently deleting licenses of users who appear to have Russian IPs as detected by their license server. Local companies have to use proxies.
baudpunk · a year ago
Also had this concern sometime ago, and then did 2 minutes of research before no longer having this concern.
codingwagie · a year ago
JetBrains has gone downhill since they purged their original developers. The IDE is not as performant, and newer versions are full of bugs. I have heard this first hand from people in Russia. Cursor.sh and ai development tools are a huge threat to the company, and are far outside their core competency. Decent chance they cannot keep up with innovation, and their hyper tuned IDEs become obsolete.

Deleted Comment

skwee357 · a year ago
Glad I invested the time to learn Vim. Can't trust anyone these days. Everything seems to revolve around politics.
elric · a year ago
Eclipse is still a great option for Java. And I was pleasantly surprised at Devoxx last month when Oracle's Stuart Marks whipped out ye olde Netbeans for some live coding during a talk.

Dev tool monopolies are as bad as any other monopoly.

thiht · a year ago
Honestly if Eclipse was the only option for writing code, I'd probably just find another job. I would probably choose Notepad and a terminal over Eclipse.