Java IDEにもいろいろあるけど、それぞれの特性としてIDEがどれだけJavaを知っているかということで決まるということをTwitterに書いたので、ちょっと具体的に書いてみます。
IDEの使いやすさについて、そのIDEがどれだけちゃんと言語を知っているか依存するんだけど、IntelliJ IDEAが一番Java言語を知っていて、NetBeansはJavaのエコシステムを知っていて、EclipseはJavaビジネスを知っている・・・
— きしだൠ(K8S(Kishidades)) (@kis) 2020年10月30日
VS Codeはまとめサイトで見たレベルでJavaを知ってる感
ちなみに、全体としてNetBeans推しです。
使い分けとしてはこんなこと書いてます。
Java IDEの選び方
— きしだൠ(K8S(Kishidades)) (@kis) 2020年5月19日
機能いらんけど使いやすくて安定したのがいい→IntelliJ IDEA CE
機能多いのがいいけど課金するほどではない→NetBeans
課金してモリモリやっていこう→IntelliJ Ultimate
Javaとかたまに書くだけやん→VS Code
だれかに使えて言われた→Eclipse
謎の力が働いた→JDeveloper
IntelliJ IDEAはJavaコーディングとエンジニア共通の作業についてよく知ってる
IDEAのJavaエディタはJavaのコードを書くことについてよく知っていて、いいサポートをしてくれます。
たとえば文字列の配列について補完しようとすると、配列がもっているフィールド・メソッドだけではなくて、Streamに関するものも提示してくれます。
んで、Streamに関するものを選ぶとArrays.stream
を自動的にいれてくれる。
あとGitHub連携とか共同作業の機能とか、Javaに関係なくプログラミング一般に必要なことについてよく知ってる。
ただ、コード以外のJava知識はあまりなさそうで、たとえばMavenプロジェクトを作ってHello worldを書くととりあえすエラーになる。
(2020.3でなおりそう)
Module Settingsに項目があるなって設定してみても変わらない。
正解は、ぐぐって次のようなコードをみつけてpom.xmlに貼り付けてreload projectするという、初心者が自力でぽちぽちやるにはハードルが高すぎる操作が必要なので、敷居がたかい・・・
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>15</source> <target>15</target> </configuration> </plugin> </plugins> </build>
まあでも、サムライズムに「教えてくれ~」って言えば丁寧に教えてもらえるので安心。
NetBeansはJavaのエコシステムをよく知ってる
NetBeansはJavaでアプリケーションを開発するということをよく知っていてサポートしてくれる。
プロジェクト作成画面を見るとわかりやすいと思う。
デフォルトでMavenのプロジェクトになる。以前はAntプロジェクトがデフォルトだった。
そして、どういうプロジェクトを作るかというのもわかりやすく一覧になっている。
プロジェクトの表示も必要なものが見えるようになっててわかりやすい。
Dependencyもadd dependencyして検索して選んで追加ってなってる。
まあ、Dependencyは結局ぐぐってモジュール名とかは確認しないといけないんだけど、どこに追加するかとかは全部NetBeansが管理してくれるのでわかりやすい。いちいちReload
projectしなくてもいいし。
とくにTomcatを使ってサーブレット・JSPを使う場合やらJAX-RSなんかのJava EE APIを使うときのサポートがかなりいいです。
ただ、Spring FrameworkじゃなくJava EE使おうぜみたいな思惑の名残があったりするので、Springについてのサポートはそこまでしっかりしてない感じ。プラグインはあとからインストールする必要がある。
しかし、なんかimportがすでにある状態でimport補完のダイアログがでるとjavaとか無意味な選択が出るみたいなようわからんものが出たり、補完したはずのコードが消えるとか不具合がちょこちょこあって、安定感に欠ける・・・
EclipseはJavaツールビジネスを知ってる
なんか、ミドルウェアを作ってそれ用のプラグインを作って囲い込んでいく、みたいなビジネスをよく知ってる感がある。
プログラマに関係ないのでキャプチャとかの例示なし。
そういった囲い込みがないのであれば、いまから使い始めるツールではないと思ってる。
mavenプロジェクト作っていいなりエラー出たりはしないとかプロジェクトの構造の表示とかはIntelliJ IDEAよりいいんだけど。
VS Codeはまとめサイトでえた知識感
VS Codeはいいエディタで、拡張いれていけばJava IDEのようにも使えるけど、拡張間の連携とかを考えると、なんかいろいろよせ集めたまとめサイト感ある。
Java以外を主に使うエンジニアが、なんかの事情でJavaコードをいじる機会に遭遇したときに使う感じ。
まとめ
NetBeansがJavaのIDEとして方向性は一番いいんだけど投入されるリソース量でIntelliJ IDEAに大きく軍配があがる。ここにあげたIDEAの欠点のようなものも、そのうち解消するんではなかろか。