ニシキヘビの餌食


 最初は、調査データを整理するために22歳頃にかじり始めたエクセルVBAが最初でした。うまく書けてボタンをポチッと押すと、ズババッとスプレッドシートに文字が埋まっていく姿を見たときは感動したものです。

 その後、24になると、エクセルの行数に制限があるという致命的な欠陥からperlを勉強し始めました。竹中さんのサイトとにらめっこし、ウンウンうなりながら勉強したperlは動いている中身は見えませんが、配列やハッシュといったデータ構造、人間がとてもできないような計算をやってくれるというプログラミングそのものにも興味が出始めた頃でしょうか。

 そのご2年のブランクを経て26くらいから本格的にRで計算をさせるようになってきました。Rをプログラミング言語というのかとなると、異論ありそうですが、統計に特化した言語体系は、そもそもの目的のデータ処理に絶妙にはまるわけで、その便利さを享受しつつ現在に至ります。

 と、ここで気づいたのですが、ここのところ新しいプログラミング言語って勉強してない。ま、どの言語も初級レベルの理解に留まってますがね。にしても、このまま、Rがメイン言語というのも、なんだか。
 例えば、次のような会話を想像してみる。

 「どういうやつで書いてるんですか?」

 「Rです。」

 「・・・」

 う~ん、いかん、いかんよ、それでは。そう、クワトロ・バジーナ曰く

 「まだだ、まだ終わらんよ!!」

 というわけで、現実逃避がてら最近新しい言語勉強しているとこです。どうせ仕事でアプリ作ることになるんだし、マイナスにはならんだろ。

 んで、問題は、何語を勉強するかということ。条件は優先度が高い順にこんな感じ。

 ・GUIアプリが楽に書ける。
 ・開発コストが高いのはちょっとつらい。
 ・拡張性が高い。
 ・教科書が豊富。
 ・マルチプラットフォーム。
 ・名前が格好良い。

 で、いろいろと開発言語を調べてみる。

C++
 現存のGUIアプリの開発言語としては、恐らく相当多い部類のはず。つまり、多くのサンプルコード、教科書がある。何やらji-sa氏もこそ勉している模様。ということで、勉強するには文句なしの言語なんだが、何せ高級すぐる。メモリ管理とかポインタとか多分理解できない気がする。ということで、覚えるのに時間かかるし、開発コストが相当高い気がする。

ruby
 国産プログラミング言語。純粋なオブジェクト指向で、開発コストが相当低いそうな。国産であるため、日本語のテキストも豊富。なんだけど、GUIアプリってなさそう。いずれは勉強したい言語ではあるが、今回は却下。

Perl
 ライトウェイト言語の代表格。何せ使ったことがあるだけに開発コストが相当低く済むはず。なんですが、これもあまりGUI開発に関するテキストがない。多分作れるだろうが途中で関門が相当多い気がする。

VS.net
 MSの開発環境パッケージ。とかく、GUI周りのめんどくさいことは全部お任せできそうで、良い感じ。んだけど当然マルチプラットフォームは断念せざるを得なくなるわけで、何よりMSに囲い込まれるというのが生理的に嫌。

JAVA
 何はさておき、マルチプラットフォーム。開発環境もEclipseとかnetbeansとかいろいろあるみたい。ま、ここまでは良いもののJAVAはどちらかというとネットワークよりって気が。スタンドアローンでの拡張性があんまりない気がする。

 とまあ、いろいろと考えてみて決めたのが、python(ニシキヘビ)です。その特徴ですが、まずインタプリタであるということ。つまり、僕のようなへっぽこが、トライアンドエラーでやるのに便利ってとこ。
 次にある程度、GUIアプリ開発に関するノウハウがありそうだということ。guiツールキットもデフォルトのTkinterとか、linuxではおなじみGTK、QTなどなどいろいろありそうです。
 そして、マルチプラットフォームというのもぐぐっと来ますな。MSに囲い込まれずに済みます。
 とどめが豊富なモジュール群と将来的拡張性。例えば、Rpyモジュールを使えば、なんと簡単にRを使役することができるし、gnuplotでグラフなんかも書けちゃいます。それと、ArcGISやQGISと言ったGISはpythonでマクロを書くことができるので、GIS -> python -> R なんていう複合ワザも可能になるかもしんない。

 とりあえず、使い始めたばかりなんですが、開発環境は、guiツールキットはwxpython、ビルダーにwxgladeを使って、起動画面程度はできました。後は毎木調査データを取り込めるスプレッドシートからグラフを作れるようにして、帳票とかも出力できるようにしたいとこ。

 Rと違うのは当然として、Perlなんかと比べてもだいぶ違いますな。テキスト類も買い揃えないと。
 ま、ぼちぼち気長に勉強していきます。

  • myuhe

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    可愛いの間違えでは??

  • ちょく

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    COBOLでいいやん
    IBMホストで

  • myuhe

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    cobolは高級すぎですよ。
    やっぱ、お手軽に使う部類ぢゃないような。