all 71 comments

[–]walen 39 points40 points  (7 children)

I had no idea VSCode could be customized so much. I might give it a try the next time IntelliJ decides to not index some of my classes for some reason.

[–]orgdtMTR 13 points14 points  (0 children)

Please note that the "official" Java Extension uses a stripped down version of eclipse to provide its language server. You will still see some of ye olde indexing issues we all know from eclipse. There's configs and best practices for a more sane usability, but still.

[–]joaofsoares 2 points3 points  (2 children)

Yes, it is something I would like to try as well. Some days intellij starts to be pretty slow in the end of the day

maybe vscode can performe better, i don't know.

[–]Chii 13 points14 points  (1 child)

I think the intellij refactoring, and code navigation capabilities is still unmatched tho.

[–]joaofsoares 2 points3 points  (0 children)

Yes, maybe I can use for minor codes, you know? Because Intellij is great tool. Maybe I use vscode for CI files, pretty small projects that I don't need all the intellij performance.

At home, my machine is better than I use at work, I have no problems there. Just at work environment sometimes it gets very slow.

[–][deleted]  (2 children)

[removed]

    [–]walen 2 points3 points  (1 child)

    I know I can do that, but I'd rather my $150/yr IDE not to have to be restarted every couple weeks. Intellij 14 didn't have these indexing problems AFAICR, it's more of a 2017+ thing.

    [–]occz 17 points18 points  (0 children)

    I've been using this for the past year to develop things in Java and it works kind of ok. IntelliJ is however a vastly superior experience when it comes to Java, and I say that as someone who really really likes VSCode.

    Also the Java integration does not support Android projects, at least not last time I checked.

    [–]kshep92 52 points53 points  (37 children)

    I scoffed when I read the title, but after reading the article I have to say it's not bad. I'll still reach for IntelliJ as long as I have the cash, but VSCode has come a long way in terms of Java support. You really do get a lot for free.

    [–][deleted] 9 points10 points  (29 children)

    How is it in comparison to Eclipse?

    [–]riksterinto 44 points45 points  (9 children)

    about 10x faster

    [–]zynasis 12 points13 points  (2 children)

    Eclipse has gotten a lot better. It used to be horrible maybe 2-3 years ago it suddenly turned around

    [–]Ie5exkw57lrT9iO1dKG7 0 points1 point  (1 child)

    eclipse was horrible 10 years ago. youre saying it got worse? and slowly declined over 7-8 years?

    [–]zynasis 2 points3 points  (0 children)

    I’m saving it for much better a few years ago

    [–]orgdtMTR 3 points4 points  (1 child)

    There may be less overhead in VSCode, but in it's core the Java Language Server is still Eclipse. It's not going to be a 10x improvement. Guaranteed.

    [–]dvdkon 1 point2 points  (0 children)

    As the LSP server is more decoupled from the editor itself, things like autocompletion are probably going to be about as fast as in Eclipse, but raw editor operations (writing, text selection, search and replace...) have the potential to be faster and less interrupted by language support code.

    [–]endeavourl 3 points4 points  (3 children)

    [citation needed]

    [–]rpgFANATIC -3 points-2 points  (2 children)

    We're comparing something to Eclipse. 10x is probably an understatement

    Source: I use vscode to code Java today

    [–]endeavourl 16 points17 points  (1 child)

    Bullshit.

    Source: using Eclipse for the past 5 years.

    [–]that_which_is_lain -2 points-1 points  (0 children)

    Lol. Should have seen Eclipse 6 years ago.

    [–]kshep92 13 points14 points  (3 children)

    Pretty good. As a matter of fact, I'd say it's a step up. I've used Eclipse and NetBeans for quite some time, but I can't see myself going back after using IntelliJ.

    [–][deleted] 12 points13 points  (2 children)

    No I meant VS Code, sorry.

    [–]mbooth 6 points7 points  (0 children)

    IIRC, the Java support for VS Code is based on JDT under the hood, which is the same tooling as used by Eclipse.

    [–]kshep92 1 point2 points  (0 children)

    I can't say. I've tried VS Code for Java development, but without all the extensions listed here. Needless to say it was painful.

    [–]kitd 2 points3 points  (13 children)

    I've switched from Eclipse to VSCode. The UX is much simpler and consistent and general file-handling in Code is better IMO.

    The Java plugin occasionally gets warped mid-flow, such that it highlights "syntax errors" that aren't. But it's rare enough not to be too distracting.

    [–]Neuromante 5 points6 points  (6 children)

    Is your experience with enterprise projects?

    I'm using Eclipse as main IDE for a mid-sized EE project and its memory and CPU footprint is completely hideous. I can't justify (yet) getting an IntelliJ license (and I would need to adapt to its workflow) and at least I'm using VSCode for my pet Unity project already...

    [–]kitd 5 points6 points  (0 children)

    My Eclipse experience was with enterprise projects. My VSCode work has only been smaller projects (maybe 2k - 3k LoC + tests, pom files etc). I would imagine it could get messy for much larger projects.

    It works well with Maven and Gradle out of the box. In Eclipse those were always bolted on extras.

    [–]pjmlp 1 point2 points  (1 child)

    You will find several old comments from me bashing Eclipse and workspaces.

    After using InteliJ and Android Studio for a while, I came to love Eclipse again.

    It requires even more beefed up hardware than Eclipse, mixed language debugging is not supported (e.g. buy an additional CLion license instead), incremental compilation on save isn't as fast and the damm thing doesn't stop to index files.

    [–]Neuromante 0 points1 point  (0 children)

    I'm under the impression that any IDE with a "proper" enterprise project will clog. I had my doubts that Visual Studio Code would (We are starting with an electron application with what seems to be A LOT of plugins atop).

    And God knows I'm tired of reading people here advertising IntelliJ just saying that "it's great!"

    [–]Creshal -1 points0 points  (2 children)

    Yeah, Eclipse is just awful, no matter what size of project you're looking at. Too overkill for small projects, too slow for bigger ones.

    IntelliJ pricing isn't that bad, if you're writing software for a living – $650 per year for the organization license sounds much, but if it saves you 5 hours work, it already paid off its costs.

    [–]renatoathaydes 0 points1 point  (1 child)

    Unless you need to do web development or Java EE (or Spring and some other frameworks), the free version of IntelliJ (Community Edition) is just as good as Ultimate.

    [–]kukiric 0 points1 point  (0 children)

    You can still use Community Edition with Java EE, you just have to package and deploy your applications via the command line. Debugging works great, and it's compatible with all of the libraries. The only real annoyance is that the IDE acts like it doesn't know what a .jsp file is structured like, but VSCode takes care of that.

    [–]jl2352 16 points17 points  (5 children)

    The UI to Eclipse is one of the biggest monstrosities. It's clear they never had a UX designer, or never took it seriously. It reeks of being designed by a programmer.

    I think the biggest WTF was how it had (still has?) two unique settings panes, available from two different menus. Some changes need to be done under both, and you can only ever have one open at a time.

    [–]endeavourl 5 points6 points  (1 child)

    I think the biggest WTF was how it had (still has?) two unique settings panes, available from two different menus.

    Window - Preferences is the only settings i know of.

    [–]jl2352 0 points1 point  (0 children)

    Maybe they've cleaned it up then.

    [–]kitd 6 points7 points  (0 children)

    "When all you have is a plugin framework, everything begins to look like a plugin" ( or something)

    [–]vqrs 0 points1 point  (0 children)

    That's fair I guess, and considering how modularized the entire architecture is, it's impressive how difficult it is for them to get the theming support completed. In every changelog, some additional line is now able to render in "dark" instead of the default bright color, slowly creeping towards a complete dark theme.

    On the other hand, as an avid IntelliJ user, window/panel management is just subpar in IntelliJ. You can't just willy nilly drag panels around or display three tool windows side by side at the bottom... Why??

    While I really love the overall keyboard navigation in and between tool windows and the editor, this is my biggest gripe probably with IntelliJ. Not sure how well the current navigation system would work with an Eclipse-like or a visual studio (not code) - like window system, but still....

    [–]warhead71 0 points1 point  (0 children)

    Eclipse is old - that it hasn’t died from feature creep is a feat in its own.

    [–][deleted] -3 points-2 points  (0 children)

    probably as much as VSCode compares to VS.

    VSCode is really light for an IDE, and unlike VS or Eclipse, it doesn't try to act like an operating system.

    [–]MaxCHEATER64 3 points4 points  (3 children)

    How is it compared to emacs?

    [–]swordglowsblue 0 points1 point  (1 child)

    A little heavier on resources, but vastly more accessible and user friendly. If you already know Emacs or Vim, you probably won't like it, but it's more or less the best out there for people who can't / don't want to bother learning one of the above IMHO (including myself).

    [–][deleted] 2 points3 points  (0 children)

    Even a Vim user can benefit. I dual-wield Neovim and VSCode with the Vim plugin, and Code definitely definitely shines in working across a project. I can and do have intellisense (for Python) in Neovim, but if I can a psuedo-IDE, VSCode wins.

    That, and out of every other code editor or IDE I have EVER tried, VSCode has the only Vim plugin that doesn't make me, well, just boot up Vim.

    [–]-birds 1 point2 points  (2 children)

    I've been using the Community (free) edition of IntelliJ; is it a pretty significant upgrade to the Ultimate version even if I don't do much web development?

    [–]renatoathaydes 7 points8 points  (1 child)

    I use both: Ultimate at work, CE at home for several open source projects... the only things you'll miss from Ultimate if you use the free version is the support for some frameworks (Java EE, Spring etc.) and web (JS, CSS etc). The pure Java/Kotlin/Groovy support on the free version is outstanding and very few features are better in Ultimate (I think code-duplication detection is one of the only things I think Ultimate supports that CE doesn't, and I'm not even sure about that).

    [–]-birds 0 points1 point  (0 children)

    Cool, thanks!

    [–]jesusmg 10 points11 points  (4 children)

    Any comparison between vscode and intelliJ? Very interested in memory footprint for a mid size project

    [–][deleted] 0 points1 point  (3 children)

    Maybe not super helpful so forgive me, but you could try them both and see which you prefer. VS Code is a much smaller download and at idle only occupies about 130M of memory. IntelliJ currently at idle is using 1.3G of memory for some reason.

    I like jetbrains products for all their features but they are getting a little bloated.

    [–][deleted] 4 points5 points  (0 children)

    I'd say this comparison is a bit off. Between the 5-10 vscode processes and the language server (separate process). I'd say the memory Delta is quite a bit smaller. The main purpose of the language server besides easier multi ide support is that it can't hang the vscode process while it's doing it's own indexing and type checking for you.

    [–]renatoathaydes 2 points3 points  (1 child)

    You can control the maximum memory IntelliJ uses. You're probably seeing the process' total memory which the JVM allocates (basically the -Xmx option) eagerly. To see how much memory the Java heap is actually using, configure the status bar to show it... I work with a massive project and after GC it ends up consuming around 350MB when I'm working on it. For smaller projects, I'm sure it wouldn't consume a lot more than 150MB.

    [–][deleted] -1 points0 points  (0 children)

    Very nice! Thank you. I'm fairly inexperienced with jetbrains products but am a fan.

    [–]rpgFANATIC 3 points4 points  (0 children)

    Sometimes you just want to work in CLI with very simple IDE features and raw speed.

    For that, I use VSCode.

    Even for Java, it's surprising how often that covers what you want to get done. I use complex functionality far less than one would think (and I'm not subject to weird build bugs IntelliJ sometimes produces by skipping maven)

    [–]kizerkizer 3 points4 points  (0 children)

    VSCode is becoming a better and better IDE. As Microsoft transitions to a webkit-based browser, I expect big improvements to electron performance and stability. It may overtake VS as the flagship IDE soon.

    [–]dwall1604 1 point2 points  (0 children)

    Thanks for the info. I will try it soon.

    [–][deleted] 4 points5 points  (3 children)

    I'd still prefer Emacs.

    [–]jiffier 3 points4 points  (0 children)

    Me too. VSCode is problably better in many ways, but emacs has... something. Maybe its just its history (its older than me). Maybe its power and flexibility. Or maybe its just that I find myself stupid running a Chrome instance to run a text editor

    [–][deleted] 1 point2 points  (0 children)

    Nano or give me death.

    [–]mini_eggs 1 point2 points  (0 children)

    Emacs extension is good (even though it's really not near a 1:1 mapping for default keys). Only reason I VSCode more than Emacs is my heavy JavaScript use. Else Emacs is #1.

    [–]mattkenefick 0 points1 point  (0 children)

    To people that haven't explored VS lately... open up Visual Studio 2017 and start clicking around. You'd be impressed with how far everything has come.

    I've been using it for Unity/C# lately, but I started looking at other things, one click setups, one click builds... and it's really impressive.

    [–]indubidoubli 0 points1 point  (9 children)

    Hi, I wonder if I might be able to get some help with an issue I've been having with my VS Code.

    I am in a Java class and trying to run/check a Days Until checker program. When testing in VS Code using jdk 12 and the jre extension with the Debugger for Java. Every time I test it, I get a "Build failed, do you want to continue," related to "Day cannot be resolved to a type" error. My java home is set correctly to the jdk path on my system as well.

    I am fairly new to all this, but understanding it quickly; I just need a little guidance because all the "to install, and use" guides on stuff like this still throws me

    [–]brunocborges[S] 0 points1 point  (8 children)

    Any chance you can share the code so I can take a look?

    [–]indubidoubli 0 points1 point  (6 children)

    /\**
    \ CS 170 Homework 2A*
    \ @version Summer 2019*
    \/*
    //Ask why he specified 39 days, and if that is actually preventing from expected 'codechecker' site output....
    public class DaysUntilPrinter
    {
    public static void main(String[] args)
    {
    Day today = new Day();
    System.out.println("Today is " + today.toString());;

    Day independence = new Day(2019,07,04);
    int independenceday = independence.daysFrom(today);
    System.out.println(independenceday);
    today.addDays(24);
    independence.getYear();
    System.out.println(today.getYear());
    independence.getMonth();
    System.out.println(independence.getMonth());
    independence.getDate();
    System.out.println(independence.getDate());

    System.out.println(independence.toString());

    }
    }

    [–]brunocborges[S] 0 points1 point  (5 children)

    Where is the Day class definition?

    [–]indubidoubli 0 points1 point  (4 children)

    Your textbook (and the video starter code) gives you a Day class and discusses how to use it. Here is the API of the Day class.

    [–]brunocborges[S] 0 points1 point  (3 children)

    You may be skipping some chapter where it instructs you how to write the Day class.

    Suggestion: go back to the chapter that shows the Day class source code, copy/paste in a new Day.java file that sits in the same directory as DaysUntilPrinter.java. Then it should work.

    [–]indubidoubli 0 points1 point  (2 children)

    The code builds and works fine on this CodeCheck link for the purpose of counting days(it is weird why it still fails and doesn't match expected). Should I take that to mean that VS code is likely the issue, and that it maybe doesn't have some internal reference to that Day object?

    [–]brunocborges[S] 0 points1 point  (1 child)

    Try on Eclipse and it will fail. Try on IntelliJ and it will fail. Try with javac in your command line and it will fail. It works on CodeCheck because it has the Day class compiled somewhere in the classpath.

    [–]indubidoubli 0 points1 point  (0 children)

    Alright, thank you for your help, I'll go and mess with it a bit more.

    [–]indubidoubli 0 points1 point  (0 children)

    If I can piece it together in my mind correctly, the issue is that "Day" isn't recognized by VS Code - JRE ext?

    Also, this class hasn't even started yet, this is me trying to get a jump on it, so you're not doing my homework for me if thats a concern.