(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

Java初心者はテキストエディタを使ったほうが良いのか

仕事中、サクラエディタJavaソースコードをコピペして、シンタックスハイライトが効かなかったので、拡張子付きファイルにしかシンタックスハイライトが効かないのか気になって調べていたら以下の様な記事が目についた。

Javaクラスファイルは、Eclipseテキストエディタサクラエディタなど)で編集します。 (Java開発ソフトの紹介はこちら) EclipseJavaの開発者を中心に、広く利用されている統合開発環境です。 サクラエディタは、フリーソフトでありながら、多くの機能を備えているテキストエディタです。

ある程度Javaプログラミングに慣れてきたら、とても便利なのでEclipseを利用すると良いでしょう。 しかし、はじめてJava開発する場合は、以下の理由により「テキストエディタ」での編集をおすすめします。

  • 補完機能に頼りすぎてしまうため、意識しないと覚えることができなくなる。
  • Javaクラス間を簡単にトレースできるため、ソースコードを読み取る力がつきにくい。
  • Eclipseテキストエディタと比較すると、PCのCPUパワーやメモリを消費する。

Javaプログラムを作成・実行する方法

これを読んでふと、前職在籍中に「新人研修では最初にただのテキストエディタJavaを書かせるべきで、Eclipseを使うべきではない」と豪語していた10年くらいその会社に在職している先輩を思い出した。

10年前のデファクトスタンダードなIDEが何かは知らないが、彼ら*1は某B社の提供していたIDEをその昔使っていたようだ。Emacsを"マニアック"で使いにくいと評価していた彼らのお気に入りのエディタはサクラエディタだった。どうでもいいけど前職在籍中、僕はテキストエディタならUnEditorを好んで使っていたが。*2

閑話休題。しかし、なんで初心者ならテキストエディタを使ったほうがいいのか、僕には全く分からない。
この記事が書かれたのはcopyrightを見た感じ、2011年前後なんだろうと思うんだけども、今時初心者にテキストエディタを使えって勧める事自体理解に苦しむ。
この記事の筆者曰く、

  • 補完機能に頼りすぎてしまうため、意識しないと覚えることができなくなる。
  • Javaクラス間を簡単にトレースできるため、ソースコードを読み取る力がつきにくい。
  • Eclipseテキストエディタと比較すると、PCのCPUパワーやメモリを消費する。

らしいのだが、過去に新人研修を受け持ったことがある/自分も3年前に新人研修を受けた身としては、テキストエディタを使う弊害の方が大きい気がしている。

「補完機能に頼りすぎてしまうため、意識しないと覚えることができなくなる。」

これに関しては何が言いたいのかよく分からない。どういう意味での補完機能だろう。例えば初心者は以下の様な、標準出力を用いるコードを練習として多く書くだろう。

System.out.println("Hello, world!!");

この時、Eclipseならsysouだけタイプして、Ctrl+Spaceとするだけで綺麗にSystem.out.println()を補完して出してくれる。
これは初心者にとって嬉しいことではないのだろうか。何度も何度も退屈な標準出力をするだけのコードを書くのに、少ないタイプ数で補完してくれるというのは初心者にこそ嬉しい機能だと思う。
また、初心者がテキストエディタだけで書いたときにありがちなのが、タイポに気付かなくて動かない、だと思う。スペルミスしているだけで動かないコードっていうのを、新人研修なんかやっていると良く見かけるが、これはIDEさえあれば解決できる。たかがタイポごときで時間を浪費しているのはとても無駄だと思うんだが、どうだろう。

Javaクラス間を簡単にトレースできるため、ソースコードを読み取る力がつきにくい。」

わざわざテキストエディタだけでソースコードを読み取る機会が、そんなに沢山あるのだろうか?いや、あるのかもしれない。
けれど簡単にソースコードを追えるということは、それ以外の創造的活動に時間を割り当てることができていいのではないだろうか?
苦労して貧弱なテキストエディタで、ソースコードを追いかけたらソースコードを読み取る力が付くというのは根性論だと思う。

Eclipseテキストエディタと比較すると、PCのCPUパワーやメモリを消費する。」

今時のパソコンなら(少なくともCore i5でメモリ2GBあれば)Eclipseはなんなく動く。多少重く感じるかもしれないが、それでも動くのだ。
そして、CPUパワーやメモリを消費したら何が問題なのだろう。この筆者はもしかしてWindows2000時代のパソコンを使っているのかもしれない、それなら仕方ない。しかし、今パソコン買えば大概の環境できっと問題なく動くと思う。

まとめ

結局、僕自身も何が書きたかったのかよく分からなくなったけど、javac/javaコマンドとかも別に最初から教える必要ないんじゃないかなって思う。
右も左も分からない、ましてコマンドプロンプトなんてきっと開いたこともないであろう人間に、テキストエディタで書いてコマンドプロンプトjavaコマンドを叩けっていう方がおかしいだろう。それは本当にただのおまじないとしかその時は思わないと思う。2セントなら賭けても良いけど、javac/javaコマンドを最初に教えてその後でIDEを使わせたら1ヶ月もしないうちにjavac/javaコマンドなんて忘れてるよ。
そんな感じで僕にはやっぱりサクラエディタは早すぎたようだ。使いにくい。Emacsに帰りたいよ。。。

*1:前職の先輩たち

*2:自宅ではEmacsだけど