Live data from Hacker News

The Era of Visual Studio Code

blog.robenkleene.com

471–480 of 698 posts

Re: The Era of Visual Studio Code

#471
post #52

I completely switched to VS Code once I discovered the remote development feature [0]. It allows you to run VS Code locally but work on a project in a different environment (via SSH, Docker, WSL). The integration is seamless - search, debugger, terminal, extensions - everything looks and behaves as if it was running locally but is delegated to the configured remote. You can even have different remotes opened at the s…

I have built and used this[1] for some time now, ie. i run vim inside my devcontainer, and i'm happy with it.

[1] https://github.com/nikaro/devc

Re: The Era of Visual Studio Code

#472

Earlier quoted context omitted.

IntelliJ performs poorly if you have a many-module project with multiple independent `pom.xml` or gradle files on that Mac config you described. It does require tuning in this scenario to ensure that its Maven and Gradle imports do not fail and leave you unable to resolve your types. If you have a generate-source step you're going to be in even more trouble.

Would VSCode work better in this scenario? I'm not familiar with Java tooling, so my question is whether this is a tooling problem or an IntelliJ problem.

VSCode lacks many of IntelliJ's features so it would act as a text-editor with naive auto-complete better. With plugins and presumably an LSP link, you can get some degree of functionality but it does not compare in total.

I would not write Java anywhere but IntelliJ. Any long time IntelliJ+Java user has macros and templates written so that boilerplate is automatic. `psvm` is built-in, as is `sout`, but when I wrote a lot of Java I had ones for other common patterns at my workplace.

Re: The Era of Visual Studio Code

#473
post #356
post #198

I find this post along with the comments in "A Picture of Java in 2020" https://news.ycombinator.com/item?id=24551390 to be incongruous with my experience as a professional developer. My first couple of years writing software I used Vim, then VSCode, then worked in a Java shop and was forced to use IntelliJ. I didn't like it at first, but now after a couple of years I cannot see how I lived without it. The idea that…

I write Java in vim all day and it's fine. I'm also one of the top code contributors in my org by any metric (LoC submitted, bugs fixed, tech debt reduced, etc.) And everyone else uses IntelliJ. You devote time to learning your tools and improve the efficiency of the parts that matter, and the tool itself becomes mostly background.

THIS ! As a "professional" you owe it to yourself, to spend some time and actually learn you tools ! Not just "how to get by" but actually schedule time in your week to learn about the tool ! Shortcuts etc !

Re: The Era of Visual Studio Code

#474
post #398
post #198

I find this post along with the comments in "A Picture of Java in 2020" https://news.ycombinator.com/item?id=24551390 to be incongruous with my experience as a professional developer. My first couple of years writing software I used Vim, then VSCode, then worked in a Java shop and was forced to use IntelliJ. I didn't like it at first, but now after a couple of years I cannot see how I lived without it. The idea that…

People have written the same hype driven articles about Sublime, Atom and even IntelliJ. The same articles will continue to be written for whatever comes next. Just use whatever you feel makes you most productive. Having tried VSCode I ended up sticking with PyCharm/Goland.

it's not that simple is it? I've been programming for ~40 yrs. I've used a bunch of different editors. I certainly don't know each feature of each one but many features I find to be force multipliers so ignoring them is a disadvantage IMO. I'll be wasting my time doing something manually the could be automated for example.

Unfortunately it's hard to know how to configure every editor and know how to get these time saving features.

A few I get from VSCode (love to hear about other editors)

1. the best Javascript support via integration with eslint

Eslint's plugin system means I get react specific hints and error messages. I'm not used to an editor giving me library related errors. Usually they only give language related errors

2. codespell plugin

This only matters for dynamic languages but it turns out spell checking code can be surprisingly useful. The language it self can't tell me

     person.name = `${entry.firstName} ${entry.lastNane}`;
is wrong but codespell will highlight `lastNane`

ps: I get that's bad code ;)

3. opening folders

Lots of people mention this but it's arguably a killer feature. I can't believe that it took until now for an editor to have this. Most previous editors I've used to had to go through the process of making some kind of project to get similar functionality. If I wanted to easily search and replace in a project across files I had to make a project or configure stuff. If I wanted it to find references to other files I'd have to make project or configure stuff. vsc seems to find these things with no work on my part.

4. pretty good file support (renaming and moving files, including the required code refactoring to go with it). Every IDE-ish editor I've used since the early 90s has had some kind of file tree panel but VSC's is the first one I use regularly for more than just opening files.

5. friction-less easily discoverable plugins

I think this is overlooked but consider the Apple iOS app store vs Windows CE. I could install apps on my 1998 Casio Windows CE PDA but it wasn't friction-less like the App stores today are. That difference is huge. Every editor I've used since the 80s has been customize-able but I rarely looked for other people's customizations. It was just too much work. Not only did I have to learn how to install them and get them to run I had to go manually find them. VSC suggests them. I get that can be annoying but given low-discoverablilty or a few annoying notifications I think promoting them is a net win.

That said, I hate that VSC is slow! I work on quite a few hobby projects where I just want to put all the code in 1 file. At about 1000s lines VSC starts acting up, getting janky (on a 12core 64gig ram AMD Ryzen 9 3900XT) and eventually I'm forced to split the file. Sure, better organization is good but my tools shouldn't be forcing it on me when I'm just making something throwaway.

Re: The Era of Visual Studio Code

#475
post #333

Earlier quoted context omitted.

Remote has been a game changer for my development as well. Work forces me on a Windows machine with the full suite of corporate spyware. Said spyware loses its mind when compiling, debugging, language server inspection, git actions on large repo, etc. Performance loss is somewhere in the region 2-10x. With remote, I am able to do all coding on a non-infested Linux server with almost seamless usability.

Your company is equally cool with you just having all of your code/IP on a unsecured (i.e. not running crazy large antimalware, not actually insecure) Linux box?

sounds like my company: any windows machine is infested with a dozen or so McAffee things that make it unworkably slow. But none of the drones that role out McAffee has ever touched linux or osx, they prefer to leave that alone. So even though I actually prefer windows as a desktop OS, I mostly worked on a MacBook (until the pandemic, now I WFH on a my personal windows machine). But since WSL2 is finally backported to whichever outdated windows my corporate laptop runs, it is actually quite usable with VSCOde/remote containers + docker

Re: The Era of Visual Studio Code

#476
Maybe this is not the right place to ask, but I've tried to googled it without success. I use VSCode and Geany and code mostly Go,HTML/JS(svelte),Php and some python.

I love them both, but would like some unity between them :)

Does anyone have a theme-file for Geany that mimics VSCode's look and colors ?

Re: The Era of Visual Studio Code

#477
post #359
post #198

I find this post along with the comments in "A Picture of Java in 2020" https://news.ycombinator.com/item?id=24551390 to be incongruous with my experience as a professional developer. My first couple of years writing software I used Vim, then VSCode, then worked in a Java shop and was forced to use IntelliJ. I didn't like it at first, but now after a couple of years I cannot see how I lived without it. The idea that…

I have had the same experience. VS Code looks like a fine lightweight text editor plus a marketplace of plugins with variable degree of maturity and interoperability whereas IntelliJ is a mature and polished IDE. All IntelliJ lacks is two things: 1. Being a lightweight editor with syntax highlighting which IIUC they are / have already built 2. Remote development where the IDE is just the front end running on, say, a…

I prefer IntelliJ to VS Code but for me IntelliJ also lacks the ability to:

Disable plugins on a per-project basis. (I currently put up with plugin exception reports for other language plugins in projects for unrelated languages.)

Enable or update plugins without a full restart. (This is getting better but many plugins still need a full restart.)

Sync all plugin settings (for example, AceJump plugin settings aren’t synced).

Split the terminal pane horizontally.

Open a file in a vertical split from the navigator or search everything box. (I want to believe I missed an easy way to do this; someone let me know if so!)

Set alpha keyboard shortcuts in quicklists.

Style the title bar colour on macOS to match the editor background.

Write a quick script to add missing IDE functionality without boilerplate or build tooling.

Add a command line run configuration. (There are workarounds but the original feature request remains open after 7 years: https://youtrack.jetbrains.com/issue/IDEA-112256 )

I can do all of these in vim and Emacs and most in VS Code.

They’re nitpicks and no editor or IDE is perfect. I think I feel the pain points with IntelliJ more acutely because for many of these I can’t fix them myself.

Re: The Era of Visual Studio Code

#479
post #52

I completely switched to VS Code once I discovered the remote development feature [0]. It allows you to run VS Code locally but work on a project in a different environment (via SSH, Docker, WSL). The integration is seamless - search, debugger, terminal, extensions - everything looks and behaves as if it was running locally but is delegated to the configured remote. You can even have different remotes opened at the s…

It is also great for string all dependencies for development together in a docker-compose file. On any machine you just have to git clone and open vscode in the container and you are good to go. Even if you require a particular version of postgresql, some compiler version or a complete Kafka cluster; everything can be configured in a Dockerfile/docker-compose file and stored with the code. No more pages long readme's of how to get all dependencies set up just right. Especially when often switching between projects and machines this is a godsend. And for onboarding it is so easy to get someone a fully configured working environment.

Re: The Era of Visual Studio Code

#480
post #469

Earlier quoted context omitted.

You don't need all the plugins. You just need a curated set. And some of the plugins are fantastically high quality. The Microsoft Python one is excellent, as is the Remote development one. I'm a fan of VS Code because in spite of it having a plug in system, there are great plug ins there. And that one single great plugin is all that is needed (for that specific purpose)

Sorry to spoil the party here but I wouldn’t call it excellent. I need to set environment variables and PYTHONPATH in 3 places (for the integrated terminal, for background processes and for the debugger). New environments are only detected after restart of the UI and It doesn’t Index or allow go to definition for libraries downloaded via pip most of the time. Also no refactoring support... This is really frustrating.…

In my company we use pyenv with virtualenv and everything works seamlessly. VSCode automatically runs the activate script from pyenv in a new terminal (in my case it is even the fish shell), debugging works fine, and I can go to definitions.

Note that a new extension, that works alongside the original python extension, has been developed by Microsoft: Pylance. It speeds things up based on pyright, a python type-checker.

For refactoring you can use rope [0] as a VSCode extension.

[0] https://github.com/python-rope/rope

Post reply on HN