2009年8月4日火曜日

流行に振り回されない

システムエンジニアやプログラマの世界では、新しい技術、流行の技術に取組むことが格好が良いという面は確かにある。
UMLで設計し、プログラムはC#か、少なくともJavaかC++で、Webシステムなら、PythonかRuby。
これが、COBOLだと最低で、PHPやPerlも、もう古いといった感じである。

C#やRubyの優れた点は確実にあるのだが、多くのシステムでこれらの言語のメリットが大きく生きるということはそんなに無い。
それよりも、熟練した言語を使うメリットの方がずっと大きいと思う。
COBOLは長く使ってないが、現在のCOBOLに不足な点など、ほとんどないと思う。

Visual Basicも、.Net版は以前はVB.NETと呼ばれたが、思ったほど人気が出ず、現在はVisual Basic2008といいう名称になっているようでややこしい。
例えVB.NETやVisual Basic2008を使っていても、以前のVisual Basicとほとんど変わらない使い方がされていると思う。
Visual Basicとの互換性を謳うReal Basicがもっと良かったら、さぞや普及したかもしれないが、所詮ブランド力やサポート力の差があると思う。

何かのIT情報サイトで、「最も開発効率の高い言語は?」との問題に、Excelを1つの答としているものがあったが、これがなかなか興味深かった。一流のITコンサルタントがそう言い、自らExcelでシステムを作っているという。
言うまでもないが、Excelは表計算のアプリケーションでプログラム言語ではないが、マクロやVBA(Visual Basic for Application)が内臓され、立派な開発ツールである。
表部分は誰でも使えるので、ユーザー参加型の開発に結びつけることも出来る。Excelの開発効率が高いのは当たり前だ。
Excelは表計算だけあって、データベース機能がやや弱いが、それなら外部データベースを使うという手もあるし、Accessを使えば、データベースも、そして、高性能データベースのフロントツールとしても十分だ。

私は、これから開発者になりたいが、あんまり難しいことも嫌だというなら、とりあえずExcelの開発者になるというのも手と思う。
本格的にやりたければ、私は今でもAccessを薦める。ただ、VBAは必須となる。
Webなら、今のポール・グレアムはどう考えているか知らないが、やはりPerlを薦める。
ただ、Webシステムというのは、不特定多数のユーザーが使うことが前提の場合が多く、デザインや手厚い心配りが必要で、私はあまりやる気がない。
流行に振り回されず、AccessとPerlでやっていけばどうかと思う。

2 件のコメント:

hideki さんのコメント...

おひさしぶりです。
ひきこもりのYです。
開発者ブログをよみ感想を書きたくなりましたのでコメントを投稿します。

今回は私が php,perl,excelVBA,accessVBA をかじってきたなかで思ったことを書きます。

■perl
CPANモジュールがとても強力だと思う。自分はそのためだけにperlを覚えようとした。perlはあらゆることを知っていないと理解しづらいところが多いと思う。
CGI,linux,正規表現,オブジェクト指向などの知識がついてから学んだらなんとか少し perl の面白さがわかったから。でも書けないです。perl難しいです。

■php
phpはshift-jisとeuc-jp文字コードの違いで苦しめられました。(いまはUTF-8があるのであまり苦しまないかもしれませんが・・・)
databaseにアクセスするってこんなにすんなりできるんだと感動(それまでデータベースなんて難しいものだと思っていたので使ったことなかった)。
しかし、webプログラムとして公開するとなると難しくてお手上げでした。フォームを作成するための html の書き方が難しいし,単純な insert や update 文を書いてもエラーのみでどこが間違えたのかわからない。

とはいえ、インタネットに情報を公開するサイトを作る上ではこれほど便利なプログラミング言語はなかなかないと思うので、なんとかして極めたいです。

■excelVBA
sum や if などの関数が使えるようになって次に VBA ができるようになりたくてチャレンジしましたが購入した参考書のサンプルがうまく動かせなくて VBA と関数では大きな壁があると思っています。
自分は range で動くけど cells を使ったら動かないのはなぜ?補完機能の候補でそれと思うものを選んだけどなぜエラーになるの?などに苦しめられました。
一番優しい VBA の本ですら、数十ページ読んだところでもうわからなくなりました。
いまではなんとか VBA でセルの指定した場所にデータを出力できるようになり、excelVBA の便利さを実感しています。

変数にためこんだデータを、エクセルに表示させることができる点がすばらしいと思う例えば、変数の結果をとりあえずセルやイミディエイトウィンドウに表示させることで変数に間違った値が入っていないかを簡単にチェックできる。
プログラムを見やすくするため関数化するとき、引数や戻り値をセルに入力された値を指定すればスコープを無視したなんちゃって関数(?)が作れてしまう。
このことが可能なのでexcelVBAは好きです。

■accessVBA
office の上位版にしかついてこないので個人で使うことはなかなかないのではと思う。私がはじめて access にさわったときは excel のようにデータはいれることはできたけどなんて使い勝手の悪いソフトであるというのが印象でした。
業務でないとなかなか使う機会がないと思う。
フォームからユーザに入力してもらったデータを DB に格納するだけで相当悩んだ。
フォームをおいてもデータが正しく表示されない。必要なカラムだけうまく表示したくてもうまくいかない。データソースとはなんのだろうか?いろいろ悩む accessは私には難しいです。
accessVBA は学ぶのにコストがとてもかかる気がします。その分業務レベルで使えるとプログラマーとして食べていけるようになるのかなと思います。

以上です。書き出したら長文になってしまいました。

Kay さんのコメント...

hidekiさん、コメントを長く放置し、申し訳ありません。
詳細なご報告、ありがとうございます。
ソフト開発の仕事は、いわゆる、あまり「キレイな」仕事ではなく、複雑で微妙な問題も多く、なかなか断言的にものを言えず、これからこの業界を目指すような人を見ると、私は非常に複雑な気分となります。
ソフト開発の仕事を薦めるかと言われると、そうであるとも、そうでないともです。
技術的なことは、才能と慣れと思います。現実問題、才能の無い人も沢山います。もちろん、hidekiさんは問題ないと思います。
今後は、仕事としてのソフト開発の話題を噛み砕こうと思います。