当たり前を当たり前に思わない
タイトルのような質問をしてくる新人がいたら、
面倒くさいやつだなぁと思いつつも、
そんなところにまで疑問を抱くなんで、
なんて探究心のある熱心な子だなぁと評価してしまう。
どうも、え~すけさんです。
古きよくない時代
昔(10数年前)はJava開発といえばEclipse だった。
自分もJava研修で使ってから当たり前のように使っていたし、
NetBeansやIDEAとか代替品もあったけど、割とどこの現場もEclipse一択だった。
※ちょっと前にお手伝いしたプロジェクトでもEclipse使ってたな。。。
昔から少しでも早く作業終わらせたいという思いが強かったので、
整形、Getter/Setter生成、矩形選択などのショートカットをめっちゃ覚えたし、
外観とかiniファイルなどのオレオレ設定とかいっぱい作った。
ただ、今振り返るとこう思う
「なんであんな不便なの使ってたんだろう」
Eclipseを使っていて感じていたこと
起動・操作が遅い
まず立ち上がりに時間がかかる(iniをいじったところで誤差レベル
起動時に出る惑星の画像なんか出さなくてイイからとっとと起動して欲しい。
コッチはちょっと確認したいだけなのに待たされる
この時点で、小さなストレスが積み重なる
またプロジェクトをGit Cloneした後、
EclipseだとワークスペースにImportしてから、
ビルドが安定するまで待つ必要があるが、
VSCodeだとcloneしたフォルダ開くだけで
ほぼそのまま作業に入れる。
※Eclipseでも作業できるが、ファイル開くのもコード入力もとにかく裏でやってる作業に依存して遅くなる傾向
環境が重い
プロジェクトを開いた瞬間にCPUがブン回る(起動時点からか
インデックス、ビルド、いろいろ頑張っているのは分かるけど
「そこまでしてほしいわけじゃない」 という気持ちになる
遅い起動が終わったと思ったら、プロジェクトの読み込みと自動ビルドによるフリーズで、
まともに使えるまでに時間がとにかく掛かった。
出社→Eclipse起動→モクモクタイム(タバコ)→まだまともに操作できない状態
なんていうのもザラだった。
ジャワ島コーヒーから名付けられたJava、昔のPCは今よりメモリもCPUも非力だったので、
Javaプログラムを動かすにも当然時間がかかり「コーヒーブレイク」のための言語と皮肉られてた。
※コンパイル~実行までとにかく時間がかかったので、再実行しないようにバグを極力出さないように慎重な実装が求められてた
設定が属人化しやすい
プラグインを入れて、設定をいじって、自分好みにする
それ自体は悪くないけど
- 再現が面倒
- 他の人の環境とズレる
- トラブル時に原因が分かりにくい
- そもそもプラグインのせいで動作が遅くなる
- プロジェクトによってEclipseのバージョン縛りなどがある
→eclisesフォルダに「eclipse-3.5」「eclipse-2021」など複数バージョンのフォルダが出来たり、酷いときには「eclipse-3.5-prj-a」「eclipse-3.5-prj-b」みたいに同じバージョンでプラグイン違いのEclipseを入れたりと容量おばけになる
結果として、チーム開発で余計なコストが発生する
VSCodeに変えてどうなったか
AngularやVueなどのNodeでの開発が流行りだしてきた頃から使い出したVSCode。
他の言語でも使えるとのことで、Python・Java・Goなどでも使えるか試した結果
とにかく軽い
起動が速い、動作も軽い
「ちょっと確認する」が気軽にできるようになった
特にフロント(Angular/Vue)とバックエンド(Java)を行き来するような開発では、
同じエディタで完結できるメリットはかなり大きい。
→フロントはVSCodeでバックはEclipseで開発したことあったけど、マジで苦痛。
必要なものだけ入れればいい
拡張機能で必要なものを足していく
最初から全部入りではない分、無駄がない
またアホほど拡張機能を追加してもさほど重くならないのもいいね
設定の共有がしやすい
設定ファイル(.vscodeフォルダ内のファイルなど)で管理できるので
- チームで統一しやすい
- 環境構築が楽
- トラブルの再現もしやすい
使うべき拡張機能の指定なども設定ファイルに書けるため、マジで統一しやすい。
よくある反論
古きを重んじる方々はいいます。
「Eclipseでもできる」
それはおっしゃる通り左衛門だわ!
ただコッチが言いたいのはそこじゃなくて、
同じことができるなら、ストレスが少ないほうを選んだほうがよくね?
じゃあEclipseはもうダメなのか
別にオワコンだからもう2度と使わないとかそういう話ではなくて
- 既存プロジェクトで何年も使っている
- 社内チームで統一されている
- 親会社や取引先などが環境縛りしてくる
- メンバーが多くて変えるとラーニングコストがヤバみ
こういう場合は、そのまま使えばいいとは思う。
政治的に変えることが困難なところはもうイケるとこまで突っ走るしかないよね。。。
Eclipseも頑張っているんだからね!
Eclipseシリーズ?にEclipse TheiaやEclipse Cheが新しく出ているようですが、
軽量さ・ブラウザで操作できる など利便性はありそうですが、
コードベースとしてVSCodeとIDEAなどを使っているため、
従来のEclipseさ はなく、Eclipseと名前がついていても、
「いやいやお前VSCode/IDEAじゃね?」
ってくらい別のエディタと認識していいレベルでしたね。
CheはKubernetes上にTheiaをインストールして呼び出してるみたいな感じなのかな?
そうなると、環境構築はAWSとかKubernetes環境をつくって、誰かのCheコンテナコピーして、ユーザ割り当てれば直ぐに同じものが出来るんじゃね?
環境構築・増減などがめっちゃ楽になるのではないだろうか、知らんけど。
ただし
これから新しく選ぶ理由としては、かなり弱くなっている
むしろコレだけ色々と便利な選択肢が増えてきてる中で、
あえて新規でEclipseを使う理由を 「昔から使っている・使い慣れてる」 以外で教えてクレメンス。
※新規 だから「このプラグインが…」みたいなのは理由にはならないと思ってるんだが。。。
アレかな?
無駄に気づかないまま、非効率なやり方を正当化 してしまうことで、
新しいモノや新しいコトする事に拒否反応が出ちゃってんのかな?
じゃあ、お前がVSCodeにしてる理由は何だよ?と言われると、
単純にEclipseよりかはマシ
っていうのは言うまでもなく、
以下を前提とした今の開発スタイルにフィットしてるから
- 複数言語(フロント・バック・SQL・Dockerをエディタの切り替え不要でイケる)
- チーム開発(設定ファイルによる環境差異軽減が出来る)
- リモート環境(DevContainer/Remoteでコンテナ周りが強く、アタッチしてあたかもローカルフォルダが如くの作業できる)
- AI活用(Copilot/Antigravityなどの拡張機能が充実)
そもそもAntigravityに関しては別エディタですが、
VSCodeベースで出来てるので、使い慣れてるってのも有る
個人的には
ツールは慣れで選ぶものではなく、効率で選ぶもの
と考えている(慣れも大事だけどね
自分は別にVSCode信者でもないし、
VimでもEmacsでもSakuraでも秀丸でもEclipseでもChatGPTでもClaudeでも、
個人 で開発する・勉強するとかであれば別に好きなのを使えばいいかなと思う。
ただ環境を見直すだけで、開発体験は想像以上に変わると思います。
確かに慣れてるから操作は問題ないのかも知れないが、
世間一般的に「遅い・重い・非効率」と言われてるツールを、
コスパだタイパだ言われてる昨今に代替ツールが有るにも関わらず、
それを社内全体や未経験なバブ(新人や多言語からのスキルチェンジ者)たちに、
「昔からこれを使っているから」と思考停止で勧めてしまうのって、
無駄な時間を使わせてしまう ってことに気がついて欲しいなぁと思ってしまうわけで。
もちろん最初は使い方に慣れず、あっちだったら出来たのにと戸惑うことも有るでしょう。
ただ、今はネットで探せば使い方・ノウハウを提供してるサイトや動画が溢れています。
常に学び、発見してかないと置いていかれてしまうこの業界。
覚えることも日に日に増えていくので時間は有意義に使いたいものですね。