Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't really get how VSCode got so popular. You can use a language server perfectly easily with Vim, Emacs, Helix, Sublime, etc. You can customize basically everything in those editors, syntax, etc. You can just alias console commands for all of your build tools with some custom scripts if you need more complex build commands routinely. The git terminal tool works better than any VScode option. And VSCode is slower than all of those.

We already have so many good fast secure polygot customizable text editors. Why run one through Chrome and fill it with extensions for everything that will have arbitrary access to everything?



> I don't really get how VSCode got so popular. You can use a language server perfectly easily with Vim, Emacs, Helix, Sublime, etc.

You open it. It just works. And the learning curve is smooth.

Compare this to Vim where, if it's the first time you're opening it, you are forced to kill the process because you don't even know how to quit it, never mind actually do any productive work.


  > Compare this to Vim where, if it's the first time you're opening it, you are forced to kill the process because
Because you can't read

I'm serious. Open a blank file by typing `vim` into the terminal. Don't press anything, just look at the screen.

I'm sorry, but reading docs, or just reading, shouldn't be considered a significant barrier to entry.


> Compare this to Vim where, if it's the first time you're opening it,

If you open vim with a file, like you do with all file editors, there's no such examples. It's also at the bottom of auth/credit/contribution fluff in your example, which people would be expected to ignore.

> Because you can't read

I'm not arguing for more hand holding here, but saying the poster can't read is ironic. Reading is one part, comprehending is the other.


  > If you open vim with a file, like you do with all file editors, there's no such examples
I think you are being disingenuous here. I'm serious. VSCode isn't just plug and play. It isn't just "install and away you go". It's not much you have to be taught, but you did have to learn something from somewhere. Either from another IDE with similar visual language or because someone showed it to you.

Besides, your first usage of VSCode isn't going to be opening a file. It also gives you info at the startup.

Are you seriously telling me you haven't Googled how to use VSCode? Or did you just forget because you are now comfortable using it and used to it?

  > not sure why we're pretending vim is easy to use
Because it is! I don't know why you're pretending it is hard.

The conversation is no different than iPhone users fumbling their first time on Android and Android users fumbling their first time on iPhones. If you didn't have to learn things then this would never happen. Can there be better communication around vim? Certainly, that's always going to be true. But "run `vimtutor`" is pretty effective and I'm sorry, DEVELOPERS shouldn't be documentation adverse.

If you want to use vim you only need to know a few things. `i` to start typing (insert), esc (or ctrl+[) to go to "command mode", `:w` to write, `:q` to quit. That's literally 4 things. In the standard vim config you can use your mouse and arrow keys, so you don't even need to learn hjkl to get going.

Truthfully, the main difference is where the learning happens. vim forces the user to learn a few things up front (and not many). Getting all my python envs and configuring everything in VSCode took me much longer than the 15-20 minutes it takes to read vimtutor. You get your "Hello World" out faster, but it also makes dealing with environments and other things harder.

What I will admit is that vim is hard to master.

But mastery is very different than usage. Even intermediate level is not hard to achieve once you understand the design language. It's a different way of thinking but come one, it's aimed at programmers. You're really telling me it is hard to learn that there's a command mode and a writing mode? That commands are composed of actions + motions? Going through vimtutor means you should know a lot more commands than vimtutor introduces because of this design language. But mastery? It requires reading docs and years. But that's not a flaw because what you can do in vim is nearly unbounded. While that's also kinda true about VSCode there is a much steeper learning curve you need to do fancy things and that knowledge isn't going to make you really better at general VSCode usage.

  > It's a meme
So is the difficulty of assembling Ikea furniture.

People brag about how dumb they are all the time. I don't get how you think that's a defense. There's plenty of docs in the program itself and plenty more online. Many being well written. But ultimately vim isn't being targeted at the general audience (unlike Ikea furniture) and it's perfectly acceptable that it requires a little reading. By my screen you get all the commands I listed, and more, with two screens worth of text from vimturor. 1 screen if you split, since it is 80 chars width. That really isn't much reading. If that is the definition of "hard", for developers, then I have no hope for software. It shouldn't be "hard" or "too much" for anyone. Let's be honest. Are you really okay with the bar being so low that it's impossible for a blind person to trip over?

  > It's also at the bottom of auth/credit/contribution fluff in your example
Here's the message

                  VIM - Vi IMproved

                  version 9.1.857
             by Bram Moolenaar et al.
    Vim is open source and freely distributable

           Become a registered Vim user!
  type  :help register<Enter>   for information

  type  :q<Enter>               to exit
  type  :help<Enter>  or  <F1>  for on-line help
  type  :help version9<Enter>   for version info
Not even 10 lines...

If you brag about being lazy, expect to be called lazy.


I just was mainly motivated in replying to your accusation that the original poster couldn't read -- I feel like that claim is pretty disingenuous from the get-go and if I'm being accused of it, well, I'm in good company.

I don't even know what to reply to here, but I'm in general agreeance with most of what you wrote. I just don't agree users type "vim" alone their first time, I'd wager it's following some guide/tutorial online that already has 'vim filename.txt' snuck in there. The fact that people get stuck in vim feels like something intentional to weed out people, otherwise it's a funny problem people run into on other programs like ftp, ssh, screen, even the python interactive shell. There's no unified lexicon on cli tooling, except maybe the gnu clis. It makes you appreciate good GUIs.

The real big brain approach here is to divorce the idea of vim from the command line editor and use it as a plugin in an IDE. Best of both worlds.


  > There's no unified lexicon on cli tooling
While there isn't there is more than most people give credit to. It shouldn't be too much of a surprise giving cli people write cli tools getting inspiration from cli tools. I mean we can't even say there's a unifying language in the GUI space.

  > The real big brain approach here is to divorce the idea of vim from the command line editor and use it as a plugin in an IDE
Maybe I'll be convinced when a vim plugin or "vim bindings" represents something close to actual vim. I need a lot more than hjkl, gg, gG and such for movements. It's crazy how few even have H,M,L let alone <C-F>, <C-B>. I'm really surprised so many don't have / bit less surprised at * and the like. An ide giving me vim bindings needs to also give me :Ex, tabs, tags, and so on. I don't think I've ever seen a plugin give me :%s and I'd be really surprised if it gave me \\{-}.

I think there's a lot of confusion when it comes to vim. It's an editor. Editors aren't just for writing and the real power of vim is editing. It's a major bonus that I can do all this with less resource consumption that just a plugin

Frequently using vim bindings in plugins leads to me generating gibberish.

Frequently using vim bindings in plugins leads me to unintentionally closing windows


How long have you been developing code for others to use?

Rule number one is that users don't read documentation.


Who are you making software for? That matters.

General public? Yeah, assume idiotic.

Developers? If you can't read docs then you can't do your job.

I don't have much confidence in LLMs replacing devs, but if the dev is so arrogant that they think they're too good for documentation and if they have to read is too complicated, then yeah I believe AI can already replace that person. They were just a warm body, not a dev.


You're not going to be making successful customer-facing software with that attitude.


This isn't the flex you think it is. You're really illustrating my point... being able to understand context and make inferences is part of basic literacy skills


I've been using Vim for almost 2 decades and your comparison is still absolutely ridiculous.


> Because you can't read

A lot of people can't, that is why vscode is so popular


A lot of people not being able to read is sad.

A lot of developers not being able to read is terrifying.


I'm sure you're being sincere here but this really reads like that famous HN comment about "who needs Dropbox when ftp exists". The reason vscode is popular is not because it does something impossible to do otherwise, but because it does those things out of the box with a friendly UI.


I think you missed the issue with the Dropbox comment. Look back at it. He talks about using Linux, FTP, curlftps, SVN, and doing a network mount.

The comment isn't actually even talking about providing the same service, so they mention emailing themselves files and usb drives.

The problem was there was a big technical hurdle to locally network mount a file system. Especially across OSes. It's even harder to do it non locally. Sure, it's not hard if you're familiar with that stuff. Sure, it's not hard to learn if you're comfortable in the terminal. Sure, today you can use rclone. BUT that's not a tool my grandma can use.

On the other hand, we're not talking about tools my grandma can use. We're talking about tools a programmer can use.

https://news.ycombinator.com/item?id=9224


But we are programmers. I think there is a difference between expect John Accountant who doesn't trust his computer to set up RSync and a server, and a Programmer who is already going to spend a good chunk of their day in a terminal windiow anyways.


Dude I'm tired. Tired of having to learn some stupid new UI paradigm just because.

I really really wish there was ONE standard orthodoxy with regards to UI and how programs work and how we get around them.

Instead we have these clowns constantly inventing new ones. I love learning things and tweaking things but I have limited bandwidth and I am so over micromanaging my PC

For the record I know and love vi. But as I get older I find myself yearning more for the cathedral than the bazaar


> You can use a language server perfectly easily with Vim, Emacs, Helix, Sublime, etc.

By the way, the language server protocol was originally developed for VSCode [1]. The popularity of LSP in other editors might have contributed to advertise VSCode.

[1]: https://en.wikipedia.org/wiki/Language_Server_Protocol


I used Sublime for years and VSCode is vastly better (the breaking straw was how they'd silo off critical bug fixes in new versions that were pay-only, upon finding vscode I felt silly for not switching sooner, it was so much easier to use and more powerful). Still use vim daily but not as a general IDE, memorizing decades of weird character commands and directives is not a great use of my time.

my favorite VSCode feature is the SSH remote working feature. VSCode gives me the full editing / console / Claude environment on my local workstation, where all files, shells, and yes Claude as well run on a company lab machine over the VPN. Props to the collaborative working feature where several people can all share the same VSCode editor session on their individual workstations.

Vim can do the above two things if you run as a terminal app with tmux. Sublime could do it if you shared the editor via X or Waypipe (well not the second feature). But VSCode integrates it directly in the app and it's a much better experience.


  > But VSCode integrates it directly in the app and it's a much better experience.
Not for the admin of the server who has a bunch of idle vscode sessions. Sure, cli users do it too with tmux but the resource consumption is vastly different


well it's my lab machine and all 192G + 24 cores are mine all mine, problem solved


Mostly because installing and setting up VSCode takes one click


As opposed to 'sudo apt install vim'? or 'sudo dnf install vim'? Same for emacs. sublime you might need to add a package repository.


Or even, and I hate that I'm saying this, install vim from the apt store?


brew install emacs


I heard there’s an emacs macro for that.


Vs code was also arguably prettier than the rest in release


I decided to switch after notepad++ got hacked.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: