skillup

技術ブログ

Java プログラミング全般

便利すぎる道具の弊害

投稿日:

現在、Javaのプロジェクトでは会社でNetbeansを使っていますが、IDEを使っているばっかりに理解できていないところがありました。便利すぎる道具の弊害ですね・・・

IDEについて一応説明をしておきますと、IDE(統合開発環境)とは本来ばらばらであった

  • コーディングにおけるさまざまな補助機能
  • コンパイル
  • デバッグ
  • ビルド
  • デプロイ
  • バージョン管理

などのさまざまな処理がワンセットになっているソフトでそのほとんどがGUIから操作できるようになっています。

JavaのIDEというとEclipseやNetbeansなどのIDEが有名ですね。おそらくJavaで仕事をしている人の95%以上がこのどちらかのIDEをつかっているのではないでしょうか。

PHPなどのスクリプト言語ならともかく、Javaで大規模な開発を行う場合にはIDEはほぼ必須といってもいいと思います。非常に極端なことを言えば、Javaの開発をエディタで行おうとするのはコンビニやスーパーを使わずに自給自足の生活をするようなものだと思います。

便利すぎる道具は技術力の衰退につながる

とはいえ、IDEもいいことづくめではありません。上記のような一連の作業が全て自動化できてしまうために、技術者自身が前述した作業(コンパイル~デプロイ)について考えなくなる、というデメリットがあるからです。

私はいつもはWindowsのローカルマシンでNetbeansで開発をしています。Javaの開発でのキャリアがそれほどあるわけではないのですが、コーディング自体はなんとかなるため、ローカルのマシンで動かすには特には問題ありませんでした。IDEを使っているとよくわからなくてもボタンを押せば動きますし、文法エラーなどはIDEが教えてくれます。

ただ今回、Javaで作ったソースをサーバー(CentOS)にあげて、ビルドをしようとしたのですが、当然Netbeansがないためにすぐには実行できません。結局あれこれ調べて手作業でのビルド処理を調べることになりました。

これをもともとエディタで書いて、コンパイルし、実行していたら処理を全て自分で記述しなくてはならない反面、windowsでもLinuxでもやることは一緒だったため、かえって移行はスムーズだったと思います。

フレームワークの弊害

このことはIDEだけに限りません。便利すぎるがために技術者の思考力が落ちる点としてはフレームワークの使用などが上げられます。フレームワークはよく使う汎用的な技術などをまとめたソフトウェアです。

同じアプリケーションを作成する場合でもフレームワークを使用するのとしないのではかかる時間を半分かそれ以下にすることができます。ただし、フレームワークでもIDEのときと似たような現象が起こります。

便利すぎるゆえに、最初からフレームワークを使ってしまうと内部の構造やロジックについても理解が不完全なままなのです。また込み入ったカスタマイズをしようとするとどうしてもフレームワークのルールから外れる書き方をする必要がでてきます。

そのため「フレームワークしか使えない」場合にはかえって生産性を落としてしまうのです。私の先輩エンジニアが言っていましたが、最初からフレームワークをやるのは四則演算が自分でできないのに計算機を使うようなものだといっていました。まさにその通りだと思います。

道具が価値を発揮するのは・・

このように便利な開発環境やソフトウェアが価値を発揮するのは今までやっていた操作をしっかり理解していたかいなかによるかと思います。

最初からIDEを使ってしまうとその内部の処理を理解すること無しに開発できてしまうため、それを理解する能力がどうしても落ちます。前述したとおり、大規模な開発をIDEなしで行うのはばかげていますが、内部の動きを理解するのにたまにはテキストエディタで開発してみるのもいいのかもしれません。

 

-Java, プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

日付がらみの処理に関して(MySQL&Java)

MySQL触りだして3年ぐらいたつんですがいまだに整理できないことが多いです。(特に日付がらみ) ちょっとJavaのネタと合わせて整理しておこうかなーと思います。 Contents1 MySQLの日付 …

no image

クラスパスの通し方

今回はNetbeansでなく、IDEを使わずにJavaを使う場合の記事です。 Javaで開発している人の99%はIDEで開発をしていると思うのですが、サーバー上で一時的テストをしないといけないような場 …

no image

Javaビルドツール

JavaではPHPやRubyなどといったインタプリタ言語とは違い、ソースはクラスファイルといわれるファイルに変換する必要があります。この作業をコンパイルと呼びます。最低限この作業をやらないとプログラム …

no image

JSF+ajax

JSFでajaxを使うときにいろいろと調べたのでメモ。 やろうとしたことはWEB上で給与明細の計算をしたくて、プルダウンで月の変更したら自動的に経費が該当月に替わるというシステムです。 ajaxを使う …

no image

フレームワーク作成時の注意ポイント

以前も多分書いていますが、フレームワーク作成時のポイントなどを列挙。 次元が違うものも多々含まれているかも。 ルーティング機能 基本設定情報の読み込み キャッシュ機能 データベース Form情報の管理 …