本日開催されたJJUG主催のセミナー「2.19 Eclipse, NetBeans, IntelliJ IDEA 3大IDE頂上決戦」に参加してきました。
NetBeans、IntelliJ IDEA、Ecilpseそれぞれ約30〜40分ずつ説明・デモが行われました。
開催案内へのリンク
http://jjug.doorkeeper.jp/events/8848
togetterまとめへのリンク
http://togetter.com/li/631974
講演動画へのリンク(残念ながらEclipseの講演分が機材トラブルで欠けています)
http://www.java-users.jp/?p=905
昨今のIDEは高機能化しており、また複雑なGUI操作はなかなか紙(テキスト)で説明されないので、実際に動かしているものを見るのはよい機会です。特に、普段触る機会の少ないIDEは、IDEを使いこなしている人の操作を見ることでどんな機能があるかよく分かります。
NetBeans IDE
発表資料:http://www.slideshare.net/katakai/jjug20140219-net-beanside80pub-31619706
日本オラクルの片貝 正紀さんによる説明とデモでした。間もなくリリース予定のバージョン8に向けて先月ベータ版が出ており、デイリーの開発ビルド版が出ています。バージョン8のプレリリースを試すなら現時点ではベータ版より開発ビルドがお勧めとのことです。プレリリース版でも日本語化されています。
開発ビルドのダウンロードページはここですね。
http://bits.netbeans.org/download/trunk/nightly/latest/
Java SE、Java EE、JavaFXなどのJavaプラットフォーム最新版のリリースに合わせて対応したNetBeansがリリースされてきました。
デモでは、MavenビルドのJava Webプロジェクトを作成し、POMのdependenciesのグラフィカル表示、データベース接続、GlassFishサーバー起動、データベースからのエンティティ生成、セッションビーン生成、JSFページ生成、PrimeFaces追加、RESTサービス生成、JavaScriptのRESTクライアント生成、Chrome連携デバッグなどを淡々と行っていました。短い時間でとても盛りだくさんのライブコーディング(といってもウィザード生成が強力過ぎてコーディング量はかなり少ない)をしていました。
さらに、「検査と変換」機能で既存のソースコードをJDK8へ移行したときの変更案をリファクタリングビューで見ました。
また、将来導入のJavaプロファイルに備えた機能(選択したプロファイルでは使えないクラスの使用をチェックする)も紹介していました。
IntelliJ IDEA
サムライズムの山本 裕介さんによる説明とデモでした。IntelliJ IDEAは、Javaだけでなく、RubyやPythonなどにも対応しているとのことです。Java 8対応はなんと2012年秋から進められてきたそうです。正規表現チェック機能、リファクタリング機能いろいろ、文字列選択、データベース接続でのSSHトネリング、SQLモードの編集ではJavaコード中のSQL文の補完やリファクタリングもでき、コード側でカラム名を変えるとALTER TABLEが発行されデータベースに変更が入るという強力機能など(これはさすがに危険なのでRead Onlyモードが用意されている)、有償のIDEならではのきめ細かい機能が紹介されました。
時間の関係で割愛していましたが、PaaS対応もあります。
今日の名言の1つは、GitHub連携機能の紹介での「できるエンジニアはブランチを切る」ではないでしょうか。
Eclipse
オープンソースDBFlute開発者の久保 雅彦さんによる説明とデモでした。
開発現場では、IDEを使いこなせている人が意外と多い、機能を知っているだけでは手が動かない、どう操作するか考えてしまうとプログラミングの思考が中断されてしまうので体で覚えるのが大事だよということが印象に残りました。実際、新人トレーニングでは例えばリファクタリング操作を繰り返し実行して覚えてもらっているそうです。
プログラミングを効率化するのに、メソッド呼び出し文やコンストラクタ文では右辺を先にコーディングして、左辺は補完でEclipseに書かせるというのがいいよと繰り返し紹介していました。
また、プロの画家が最初にラフスケッチを描いてから実線を描くように、プログラミングでも最初は試行錯誤をしてから実コードを書く、という説明はすごく腑に落ちました。
「使いこなしてみましょう」
これにつきるお話でした。
セミナーを聞いて
GUI操作の多いツールは、実際に動かしているのを見ないとぴんと来ませんでした。
機能については、どれも負けず劣らずで、どれかが格段にすごいというものではないようです。
普段、NetBeansを使っていますが、それほど深く使い込んではいないので、久保さんの言っていた「使いこなしてみる」を実践してみようと思いました。また、仕事で使うときは自分だけではなくプロジェクトメンバーのみんなが使いこなせるようになるための機会を持ちたいと思いました。
片貝さんのデモでデータベース接続をしてデータベースの中を見たり編集していたのを見て、いままでNetBeansを使っていながら、データベースを見るときはTeraTermでログインしてサーバーのシェル環境でコマンドで手間をかけていたので、今後はNetBeansから接続してみるようにしようと思いました。
実際、帰宅後にRedmineを立てているサーバーのMySQLデータベースにNetBeasから接続してみたら、これは便利です。
今回はどなたも話題にはしていませんでしたが、開発現場ではプロジェクトの設定を多数の開発者で共有し、また場合によってはプロジェクトの雛形などをプラグインなどで作ることもあります。このあたりの使いこなしもIDEには重要なので、今後聞けるといいなと思っています。