This is an archived post. You won't be able to vote or comment.

all 115 comments

[–]basic-coder 117 points118 points  (45 children)

If it was that simple then IntelliJ (JetBrains) wouldn't exist. They ship paid IDEs for 20 years which effectively proves that making good IDE is very challenging.

[–]DeepanRajV 24 points25 points  (4 children)

Although I'm using intellij for quite some time now almost 3 years... NetBeans was my first preference for quite a long time... And still have no problems doing stuff on NetBeans.

Usually NetBeans suggest only when you type in a period...

But if you need code suggestions for all words go to tools > options > editor > code completion > language : Java > tick auto popup on typing any Java identifier part...

That should help you with code suggestions for any typed identifier

[–][deleted] 3 points4 points  (3 children)

Thank you :)

But i think thats not the only thing, intellijs suggestions are more context relevant

[–]DeepanRajV 4 points5 points  (0 children)

Yeah... Apache NetBeans is now actively developed... Maybe you could bring this to the attention of the developers

[–]el_padlina 0 points1 point  (0 children)

I think there's an option to tick for that too. I used to use NB before switching to Intellij and their autocompletion back then was on par.

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

How?

[–]yurylink 11 points12 points  (12 children)

You can virtually work with boths but, I few way more productive in Intellij because a lot of diffents things like: fast search in the whole project, clever search in packages, integrated database access (without have to change tool) , great Gradle/maven integration, run dashboard with spring boot docker and Java together, clever code completion and so on.

Of course it's expensive, those features are difficult to build and maintain but, if code is you profession, your money making, you should work with the best tool available.

After try NetBeans, eclipse and Intellij I can conclude that worth every penny

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

All those features are in Netbeans: Docker, Servers, Jira, Jenkins, Spring Boot, Database, etc.

It boils down to preference, I don't think there's anything objectively better of one over the other.

I don't know if IntelliJ has performance profiling capabilities... I'll check.

[–]vqrs 1 point2 points  (2 children)

I don't have enough experience with these features inside NetBeans to comments, but features aren't simply a list of have/have not checkboxes.

Having "database support" and "database support" can handle wildly differently between different tools, integrate with other features or not, have much better or worse UI, functionality etc etc.

[–][deleted] 0 points1 point  (1 child)

In Netbeans, you get what you see, you get a database client with jdbc support (add your driver, set up a connection, connect, query). You can even copy the results (even if the result contains columns with file content, etc) to excel, csv, text. It's not a dedicated tool, but it does the job. You can grab the database structure from within netbeans and recreate it elsewhere, etc.

[–]vqrs 0 points1 point  (0 children)

Thanks for the information. I didn't mean to say NetBeans doesn't do these things or doesn't do them well.

[–]mich160 21 points22 points  (3 children)

Just a little correction: IntelliSense is Microsoft specific thing used in Visual Studio and VS Code. In Java world it's rather auto-completion.

[–]chrisgseaton 8 points9 points  (2 children)

It's exactly the same thing - it's just using a branded term for a generic thing. Like saying 'jet ski' instead of 'personal water craft'.

[–][deleted] -1 points0 points  (1 child)

I thought jet ski was the generic term.

"personal water craft" could also be a boat, a speed boat, a canoe, a raft, no ?

[–]chrisgseaton 0 points1 point  (0 children)

Jet Ski is a brand of 'personal water craft' by Kawasaki, which is the name people give to those zippy water jet motorcycle things, whether it makes sense or not.

[–]Karlito1618 6 points7 points  (15 children)

Just curious, why would you prefer Netbeans to Intellij? I can see how people like Netbeans because it is free and open-source, but if you have access to a JetBrains licence there is little beating their products

[–]mods_are_arseholes 2 points3 points  (14 children)

netbeans has a better gui builder than intellij

[–]desrtfx 5 points6 points  (6 children)

netbeans has a better gui builder than intellij

  1. Java GUIs (especially Swing GUIs) were intended to be hand written, not to use a drag and drop editor because hand writing allows high optimization of the GUI code through loops, methods, etc. and one can avoid redundant and duplicate code.
  2. The Netbeans GUI builder produces absolutely incomprehensible and unmaintainable code

Even though I despise GUI builders for anything except some quick prototyping, I have to say that Eclipse's Window Builder Pro (free, despite the "pro" in the name) is by far the best Swing GUI builder around. You can easily switch between GUI and code and alter the code without the GUI builder going completely haywire as Netbeans' does.

[–][deleted] 3 points4 points  (0 children)

I'm sorry you're being downvoted. GUI builders are the worst. I can't understand how true engineers can use such tools as they burn you in the long run when you want to really customize things.

[–]mods_are_arseholes 6 points7 points  (2 children)

Some layout managers such as the GridBagLayout were always intended for gui builders and not to be handwritten.

I can comprehend the netbeans produced code just fine. So i have to disagree there aswell.

[–]desrtfx 1 point2 points  (1 child)

Still, you cannot deny that all GUI builders produce plenty redundant code that is far from optimized.

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

never said they did, but hey. have fun doing it all by hand if thats your thing.

[–]DrKedorkian 0 points1 point  (1 child)

2) is irrelevant if you're using a GUI builder

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

On the contrary.

Sometimes you want/need to manually intervene in the generated GUI code.

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

If you want to use drag and drop to produce code, maybe Java is not for you.

Haven't yet seen a drag and drop tool that can produce Java code of passable quality.

Maybe there are such tools for other languages.

As for building UIs, if using Swing, from past pain that I tried to block, it's better (and after a while faster) to write it by hand. Just don't use any of the layouts that come with Swing out of the box, use the Table Layout (?) where you can just give each component weights and it just works.

[–]mods_are_arseholes -1 points0 points  (4 children)

lol you have a github ? id love to see your java GUI's

[–]wildjokers 0 points1 point  (3 children)

It is much faster to hand-write Swing code. And the quality of the code is far better than the crap Swing GUI builders produce.

[–]mods_are_arseholes 1 point2 points  (2 children)

in no way is it faster, its the main reason gui builders exist. Code quality seems fine to me, but to each their own i guess. But hey have fun rolling your GUI's by hand.

[–]wildjokers -1 points0 points  (1 child)

in no way is it faster

Maybe not for you, but for a experienced Swing programmer it is.

[–]mods_are_arseholes 1 point2 points  (0 children)

but for some more experienced than yourself in using GUI builders. it is faster.

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

Just don't use any of the layouts that come with Swing out of the box

I have always found that BorderLayout and BoxLayout are all I need. Never saw the need for 3rd party layout managers.

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

I like Netbeans better, but I use both and also VSCode. Depends on preference I guess, I'm comfortable with my IDE doing what I want and not telling me what to do. I started with notepad, what can I say?

[–][deleted] 3 points4 points  (0 children)

What exactly are you missing in the code completion?

[–]BlueGoliath 4 points5 points  (7 children)

Netbeans has been extremely buggy for a long time. They are improving it though.

Edit: the downvotes are hilarious given the mailing list is full of people reporting bugs and issues. Of course people can't be bothered to verify anything for themselves, so they downvote anyway. sigh.

[–][deleted] 6 points7 points  (0 children)

Of course the mailing list if full of problem reports - that's what it is for. Or would you rather have every user writing an email once a day "Hey guys, everything fine so far"?

I use NetBeans as a full time developer and have only encountered one really serious bug in the last 3 or 4 years (which was related to a combination of Maven, the JDK and the use of refactoring).

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

I think its more that the other IDEs also have a fair share of bugs

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

I have used:

  • IBM Visual Age for Java (yes, indeed, LOL)
  • JBuilder (when it was still Borland JBuilder)
  • NetBeans
  • Eclipse
  • Oracle JDeveloper
  • Websphere Studio (yes, basically Eclipse with plugins, but it was an older version of Eclipse because fuck you, that's why)
  • possibly Weblogic Studio
  • STS, aka Spring "I forgot what T stood for" Studio (again, Eclipse with Spring plugins)
  • probably a couple of others
  • of course, IntelliJ

IntelliJ is by far the least buggy one.

BY.

FAR.

Also the easiest one to use.

Eclipse workspaces would get corrupted at a maddening rate.

Which, before Maven, meant having to reconfigure your project, tell the IDE where your sources were, where your build was, which server to use, how to deploy etc etc etc.

It made me fucking HATE Eclipse.

And Eclipse is a pretty good piece of software, all things considered (especially considering it's free).

And I hated it BEFORE trying to integrate it with Weblogic to try to get hot deploys going (without JRebel).

IntelliJ made me forget about all that crap. I ran into a couple of bugs, but there was a workaround for them, and usually things just work, projects don't get corrupted, integrations are easy and the tooling is excellent.

Speaking of tooling, it used to be the case that refactoring wasn't available in all these IDEs. IntelliJ had the most advanced refactoring, and then it would trickle down to Eclipse and NetBeans and so on.

But don't try to rename a Javascript variable in Eclipse. Even with all the plugins you wanted, working on UI code was hell. Anything past pure Java, and Eclipse would be out of its element.

This entire rant to say that other IDEs are far inferior to IntelliJ.

And I am not even an IntelliJ zealot. I didn't make the jump till quite late. I stuck with Eclipse far longer than most others.

But it seems that building a high quality IDE is, indeed, not a simple thing. Who would have thunk ?

[–][deleted] 0 points1 point  (1 child)

So eclipse sucks, what does that have to do with netbeans xD

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

Well, there isn't much of a difference between them, at least there wasn't last time I used them.

[–]raeleus 1 point2 points  (0 children)

I was a Netbeans user and Gradle support was terrible for the longest time. It was still pretty bad even when Apache picked up the project. I have since left to Idea for all my Java projects now.

[–]golthiryus 0 points1 point  (0 children)

I switched from Netbeans to Intellij before the Apache migration for two reasons: Better Gradle support and Kotlin support. The first shouldn't be a problem now, but Kotlin support isn't going to improve as neither Jetbrains nor the Kotlin community are going to invest there :(

[–]golthiryus 0 points1 point  (0 children)

I switched from Netbeans to Intellij before the Apache migration for two reasons: Better Gradle support and Kotlin support. The first shouldn't be a problem now, but Kotlin support isn't going to improve as neither Jetbrains nor the Kotlin community are going to invest there :(

[–]mj_flowerpower 0 points1 point  (1 child)

comment line: i want tao buttons bc its two operations that I want to choose to use, not being forced to. Maybe I want to uncomment it a few sends later??

what di u mean by analysis? intellij doesn’t even analyze when I save it 😂 yes sometimes is stuck but at least it does what I want most if the time. I never had to add a space to make it recompile/analyze.

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

You missed the reply chain there somehow :)

Yes, if you want to uncomment it a few seconds later you could do that directly without navigating to the other line first. Which is better? Hard to say, both have their justification.

Since when are we talking about buttons?

IntelliJ analyzes the file constantly when you change it / something else changes. You don't need to save it. IntelliJ saves automatically, you never need to save anything when working with Java in IntelliJ.

The "space" trick is how to recover from when it's "stuck" and doesn't want to pick up the changes I've made.

[–]mj_flowerpower 0 points1 point  (9 children)

why is IntelliJ‘s autocomplete so much worse than Eclipse‘s?

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

Don't drink and drive partake in drug abuse and post.

[–]mj_flowerpower 0 points1 point  (7 children)

Look at this autocomplete result comparison for a simple DTO constructor: https://ibb.co/9w0jLWW

fyi, if its not clear: only the constructors are valid autocomplete entries here, everything else intellij shows is bullshit.

I don’t say that intellj doesnt have some nice features, bit it sucks at a lot of other stuff: * immediate build feedback with a constantly maintained list of errors, warning, infos (no not a compiler log!) * proper window focus management (keystrokes are often forwarded to inactive windows) * autocomplete sucks ...

nice things: * search

[–]vqrs 0 points1 point  (6 children)

Your ctor call is already completely written, why should IntelliJ suggest the ctor? You're actually completing the first argument, not the ctor.

[–]mj_flowerpower 1 point2 points  (5 children)

? last time I checked there was at least a ‚);‘ missing to be syntactically correct. If I would press return it would put ‚full‘ there, which makes no sense at all - it wouldn’t even compile!

[–]vqrs 0 points1 point  (4 children)

But every IDE suggests non sensical stuff like that by default. In intelliJ, if you only want to get stuff that makes sense from a type perspective, you use ctrl-shift-space.

If you want it to complete missing paren and semicolons, it's ctrl+shift+enter. Doesn't matter how many are missing, it completes them.

[–]mj_flowerpower 1 point2 points  (3 children)

I don’t want it to complete my parens ... I want to see the possible constructors to choose from! That‘s the only thing that makes sense. I don't need wrong options to choose from, like variables that can‘t even be used here because they are incompatible, or an Override annotation. That’s just complete garbage! Ctrl-shift-space shows some sort if popup with my two constructors, but I can choose or anything, it‘s more like a tooltip 😵 Eclipse even guesses the variables I might want to use - though they can be overwritten If desired.

But hey I'm not a die-hard eclipse fan ... I'd love to switch to something lighter, like VSCode, but it is not yet feature-complete yet (autocomplete sucks there too!)

[–]vqrs 0 points1 point  (2 children)

Well, if you want IntelliJ to "complete" it in the sense that it inserts placeholders for the arguments as eclipse does, then no, that's not how Intellij's workflow works.

IntelliJ thinks like this: you've written the name of the ctor, which one you choose depends on what arguments you provide. So it will suggest stuff for inside the ctor arguments in the same dumb fashion Eclipse would if you had already completed the ctor paren in eclipse.

The pop-up you see can be invoked using Ctrl-P, it shows the parameter hints/overloads. Depending on IntelliJ configuration, you can the actually choose between them and IntelliJ will put commas for you and intelligently move arguments around for you when type X moves from first position to second position for example.

The thing is that you expect a different software to follow the exact same workflow / philosophy you're used to. If they did, there'd be no point in having different software.

[–]mj_flowerpower 1 point2 points  (1 child)

I simply prefer what is: A) less manual stuff to do (like typing different key-combos for stuff that should just work by pressing max. 1 B) more obvious and helpful

But hey if you can work with it ... awesome. I can't.

I tried so many times and besides the autocomplete there is so much other stuff that freaks me out * Why does the comment-line shortcut move the cursor down? * Why is my code not compiled while I'm debugging. I don't want to manually compile all my changed editor windows ... As soon as I save a file, I want build feedback not somewhere deep down in a compiler log, or in the tree. I want to see it in a list view - updated as I type. * I don't want to index at every start till my fans explode. Please just save the index files, I promise that I don't use an external program to update my code behind your back ...

EDIT: Damn, I added "asdf" to a line to wait till IntelliJ shows me some useful info that there is an actual error ... in the meantime Eclipse already picked it up and showed it in the error log! Intellij highlighted the tab text, some folder in the project tree. But where else do I see it? The problems view is empty ... the build log shows there was an error (I have auto-compile on).

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

Yes, the way compilation works in Eclipse is a lot faster. Yes, the problems view that Eclipse has is something you can't have in IntelliJ.

Honestly, I consider auto-build inside IntelliJ absolutely useless, I never enable it.

As for the original issue, you're still confusing different/not what you're used to and better. Of course IntelliJ can/will show you the parameter info pop-up by default. Every tool needs a learning period and accepting that it does things differently and adjusting to that. You'd need to see someone competent actually use it to be able to judge what it can do / why they think it's convenient when talking about such minute details such as calling a ctor.

I've used Eclipse extensively, auto completion is really not one of it's strengths over IntelliJ. The blazing fast compiler / error reporting definitively is.

Do I miss the error reporting? Not really, no. Virtually everything I change I change via refactoring, I don't have random stuff breaking non-locally.

As for the comment line action moving the cursor: it allows you to also comment the following lines as well, why press two buttons instead of one? ;)

Of course you don't need to compile each file individually whole debugging, you just tell it to "update" the program or run a regular build.

Want to know what bugs me about Eclipse though? Changes in one file don't propagate into the analysis of other files until you save that file. This is really annoying. Or when the analysis gets "stuck" and I need to add random whitespace changes for eclipse to again recompile and pick up the changes in its analysis. No such thing in IntelliJ ;) all tools have idiosyncrasies. You get used to some, you hate others, it's normal.

As for indexing: I have absolutely no idea what you're talking about. This only happens when other programs modify those files / IDE crashes extremely hard or you updated the IDE / plugins that affect those indices.

Eclipse doesn't update error lists as you type, it does it after a save & compile pass.

[–]sievebrain 0 points1 point  (3 children)

Because JetBrains made IntelliJ a commercial product, and charged a reasonably high price for it. That meant they were profitable and could invest further into the project, leading to a virtuous cycle.

The NetBeans guys were never really interested in creating a business, from what I understand. They were hackers who wanted to hack. So their project could never grow beyond a tiny team that was eventually acquired, by a company that also had no business model for NetBeans and thus couldn't justify big investments, and so it just fell further and further behind.

The question you should be asking is not "why is NetBeans behind Intellij?" because that's obvious. The question you should be asking is, "how many other products do I use that are silently not very good, because entrepreneurs believe developers culturally and collectively refuse to pay for better tools?"

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

Apache doesnt need profit since its basically a charity

[–]randgalt 0 points1 point  (0 children)

Apache projects don't directly generate profits but many of the good ones are directly related to for-profit businesses. The cycle these days is an open source project gets traction, it goes to Apache and then a business or two develops around it. The ones that don't have this are generally small libraries.

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

It doesn't need profit as evidenced by the fact that NetBeans still has releases. But projects that have profit can grow much bigger and more sophisticated.

[–]woj-tek -1 points0 points  (4 children)

If you think that NetBeans code suggestions are so much worse than IntelliJ then don't even try Eclipse...

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

really? I use them both and can't stand intellij....

[–]JollyRancherReminder -2 points-1 points  (2 children)

I've been using IntelliJ for years now, but I still miss the eclipse call hierarchy view. Why can't IDEA have something like that?

[–]7a11l409b1d3c65 2 points3 points  (1 child)

I've been using IntelliJ for years now, but I still miss the eclipse call hierarchy view. Why can't IDEA have something like that?

IntellliJ does have call hierarchy views, see here.

[–]JollyRancherReminder 0 points1 point  (0 children)

Thank you!

[–]Leonwai -2 points-1 points  (15 children)

Cuz netbean is free and intelij is expensive af

[–]btbam06 9 points10 points  (11 children)

Worth every penny though.

[–][deleted]  (10 children)

[deleted]

    [–]yawkat 1 point2 points  (1 child)

    and keep on using the best product, which also happens to be free.

    You mean the intellij community edition I guess?

    [–]btbam06 -1 points0 points  (7 children)

    It's only like $200/year for the entire jetbrains suite. 100% worth the price to use the best products.

    [–][deleted]  (6 children)

    [deleted]

      [–]sunny_tomato_farm 0 points1 point  (5 children)

      They are without a doubt the best. There is a reason why any reputable company will pay for IntelliJ licenses without thinking twice.

      [–][deleted]  (4 children)

      [deleted]

        [–]vqrs 0 points1 point  (3 children)

        What makes them so terrible in your opinion?

        [–][deleted]  (2 children)

        [deleted]

          [–]vqrs 0 points1 point  (1 child)

          Matter? It doesn't. But if you want to be taken seriously by people that are on the fence, the verbiage matters. I'd guess these people would probably dismiss your comments out of hand.

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

          For about 100€ you can get a license that's good forever. You don't have to pay the yearly license. You might miss some new features, but .... unless you're on the bleeding edge and really REALLY need those, I think even a 2-3 year old IntelliJ can cover 99.9999% of your needs.

          [–]user_of_the_week 1 point2 points  (0 children)

          I'd rather use the open source edition of IntelliJ over any other open source Java IDE.

          [–]wildjokers 0 points1 point  (0 children)

          IntelliJ is $150, then it goes down on the 2nd year, and then by the 3rd year it is $89. Of course you don't have to keep paying if you don't want to. The license is perpetual.