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

I honestly mean this with no disrespect but having written code exclusively in vim in the terminal for several years and the same in IntelliJ, I am confident that either: - you don't have to write Java full time, and/or - you don't have to work in a large Java code base, and/or - you haven't been exposed to IntelliJ's features and how they can save you time

I love vim, I really do, but IntelliJ is a Java-specific IDE and there is absolutely no way that vim or emacs or vscode can compete on features. You can refactor code in a split second in ways that are just not possible in vim/emacs. IntelliJ has an understand of the structure of your Java code that vim simply doesn't have and will never catch up to having as its a general purpose tool and IntelliJ is a specific tool. Its vim mode is also pretty good. The only downside of Jetbrains IDEs is that they can be slow when indexing large projects and they can be slow in general. But I would still 10 times out of 10 choose to make a commit in IntelliJ over vim for a Java project that is non-trivial.

If you write Java I would (as strongly as possible) recommend giving IntelliJ another go and looking into its refactoring and other features.



This thread is about a course on Advanced Programming in the Unix Environment. After looking at the content of the course, I'd argue that there's an implied "Systems" between "Advanced" and "Programming". (Indeed, this course is taught using the famous book whose title it borrows, and is heavily C oriented.)

Java is neither common nor especially well suited for the topic of this course.

So while I share your opinion on IntelliJ as a Java IDE, I would not recommend it for UNIX systems programming. And even the IntelliJ-derived Clion, which is (IMO) decent for that, leaves something to be desired when it comes to learning the topic.


The necessity of intellij just shows how much Javas type system is abused. I don’t know what it is about java but you see the craziest types in codebases: IAbstractBeanFactoryResolverInjector<IDisplayableAppletResolverInjector>


Is that the type system's fault or the whole Spring/dependency injection fault? You're using a typed language and making it behave in dynamic ways when using Spring (at least that's the impression I had when I looked at Spring).




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

Search: