zowのプログラムな日々

日々のプログラミングとか

浮気中

いや、嫁とかはいないんだけれども・・・。

独学でプログラムを始めたっていうのもあって、敷居が低いスクリプト言語を主にやってきたんだけれども、最近スクリプト言語じゃない物に惹かれている。コンパイルする言語ね。

と言うのも、凄い昔からGUIアプリを作ってみたいっていう願望があって、これはある意味スクリプト言語でも実現可能だったりするんだけれども、結局のところ言語仕様的な問題とか速度的な問題があったりして実用レベルの物は無理(なんじゃなかろうか)と思ってる。

ならばその速度的な部分を解決する手段としてWebアプリケーション&MQという形で非同期で重い部分を別プロセスで動かしたりとかしてたんだけれども、なんかこういう仕組みを考えて作って失敗して、っていうのを繰り返しているうちに、スクリプト言語じゃない物を使えばうまくできるんじゃなかろうか、っていう考えに至って、どうせコンパイルする言語ならばWebアプリじゃなくてGUIアプリでいいじゃないって感じの考えに辿り着いた

そもそもの問題が作りたい物が並列処理をするプログラムばかりなので、そういうのをPHPで実現しようとすると壁にぶつかる。簡単に言ってしまえばPHPで並列処理が出来ないのが原因で、そこを何とかするためにMQ使ったりして試行錯誤している。その結果、PHPでは無理があるという結論に至ってRubyに手を出したりしているんだけども、恐らくスクリプト言語で上手に並列処理させる事ができる物って無いんじゃなかろうか、という結論に辿り着きつつある。いや、実際はうまくやれば出来るのかもしれないけども、少なくとも独学でお手軽にできますよー、というレベルでは無いと思う。

そんな訳で並列処理に長けているという噂を聞きつけてGolangに手を出した。感想はとても素晴らしい。ほんと素晴らしい。素晴らしいんだが、触っていると欲が出てくる。そうGUIアプリを作りたいという欲望だ。ところが独学でやっている人間からすると無理がある。そう、GolangGUIアプリを作っている情報がほとんどない。殆ど無ければ勉強コストが跳ね上がる。というか、そもそもGUIアプリを作ったことが無いので、そっち系の事も勉強しなければならないのだけれども、Golangを今現在使っている人はプログラム初心者は皆無で、なんらかの言語を使っていた人がサブ言語として使用しているのがほとんどだ。なので、GUIツールキットに関する知識を持っている前提で解説していたりするので、GUIアプリ初学者がGolangGUIアプリ初体験というのは無理がある。

そんな理由から、まだ自分がGolangを使うには時期尚早(といってもCUIアプリを作るという面ではGolangは素晴らしいと思う。マジで。)だと思うので、一度GUIアプリを作るために何か他のコンパイル型の言語を修得するべきじゃなかろうかという結論に至った。

それではどんな言語を勉強しようか、となるんだけれども、ここで環境がWinであれば.netでC#とかVC++とかってなるんだろうけども、幸い(なのか?)Macなのでその選択肢は無い。ではObj-Cやるのか?と問われれば、それはそれでどうかと思う。知り合いから、かなり変態的な言語なのでGUIアプリ入門としてObj-Cやるのはどうかと思うと言われたからだ。独学で勉強するのであればJavaやってみたら?というのが友人の意見だった。JavaならAWTとかSWT 、Swing、Fx等GUIツールキットもいっぱいあるしAndroidアプリも作れる、って事だった。

仕事はサーバ環境を作ってたのでJava環境を触る機会は結構あった。業務で使うWebアプリと言えばやはりJavaベースなので、Tomcatだったりをセットアップする必要が結構あったのだ。なので、Javaのコードをちらっと見た限りの少ない経験からの偏見なんだけれども、Javaは好きになれない。アホみたいに長いクラス名を何度も繰り返して書いてあるソースを眺めたのが原因だと思う。Perlは自由に書けるから書く人によってはグチャグチャだったりするので好きじゃなかったけれども、JavaPerl以上に好きになれなかった。ソースがPerlと違った意味で見にくい。きっとIDE使えば問題無いんだろうけどもさ。

そんな訳でJavaに手を出すか再考していたんだけどもここで光明が。Scalaという言語の存在を知ったからだ。JVM上で動く言語でオブジェクト指向+関数型のハイブリッドみたいな言語らしくて、Javaよりもスッキリ書けるっぽい。JVM上で動くというのもあって、Javaもシームレスに使えるらしいし、当然、GUIツールキットもJavaの物を使えるみたいだ。

ここ数日、ずっとWebでScalaの事を調べてて、なんとか勉強できそうな気がしてきたので図書館でScalaの本を借りてきて現在読書中。ある程度言語仕様が掴めたら写経してみたいと思ってる。・・・んだけども、その前にPhalconでなんか作ろうと思ってたんだよなー。どうしよ。と悩み中。PhalconはPhalconで触ってて楽しいFWだったりするんだよなー。

とりあえず読書終わったら一度PHPに戻ってPhalcon触ってなんか作って、それから本腰入れてScalaやろうかな。