2008年1月17日木曜日

Radiant, Scala, Groovy, Grails, Objective-C, Smalltalk...

Rails 周りでは Radiant, Instiki が意外と使えそうな事を発見。もう少しいじってみよう。

Java Posse の影響もあるのだが、Scala や Groovy が気になる。JRuby は少し触ったので今はどうしても新しい言語が気になる。Scala はカッコいいけど、深く理解するのは大変そう。Groovy は Ruby や Python の言語機能をある程度知ってからみると面白く見えてきた。Rails の基礎をやった事で GRails もすんなり入れたし興味深い。Spring や Hibernate をベースにしているところも何か面白そうだ。

そういえば Java Posse の 2007 総括の回では python/jython は評価が低いようだ。システム言語として python がある程度実績があり、Google も利用している事から評価している向きもあるようだが... 個人的な好みで言えばやはり Ruby になってしまう。なんか、python は古くさい感じがする。とはいえ、熱狂的な支持者がいる事も確かで、もっと使い込んでみる事も必要だろう。

OS X のフレームワーク Cocoa を使ったアプリケーションを作ってみようと、情報を集めてみた。 XCode (free) を使えばできる事はわかった。*.app ディレクトリの構造と仕組みが少し気になっていたのである。ネイティブな言語は Objective-C という事になるが、これも実際にはみた事も、書いた事もないので少し調査。C++ とはだいぶかわった文法で、解説によると C++ 的な拡張というよりは C に SmallTalk 的プログラム記述の皮をかぶせたようなもので、 サンプルを見ると二つの言語が入り交じっているようにも見えるし、クラス、オブジェクトの動的側面から言うと Reflection 相当の機能が入っている点から C++ よりオブジェクト指向が進んでいるとも言える。

ここで、改めて思い返すと Smalltalk の経験もない。GNU の smalltalk があるので、これで少し勉強してみよう。OS X で簡単にビルドできたし、gst でいくつか簡単なプログラムを動かす事もできた。

Oracle to get BEA

new.com.com によるとどうやら Oracle が以前の提案より少し高い額で BEA の買収を行いそうだ。
無念。以前から定評のあった WebLogic サーバーの市場での奮闘ぶりや、様々な機能には関心させられて
いたし、VMWare ESX / Xen のようなハイパーバイザ上でゲストとして JVM を OS のオーバーヘッド
なしに高速動作させるしくみは目から鱗だったし、Business Integration の分野ではとるべきもの(BPEL など)
はとり、JBI には仕様が不十分と強く意思表示したりと技術的に骨のある会社なので、ずっと独自性を
持ち続けられる体制を続けてほしかったのだが...

Oracle は実は web application server の分野では苦戦していて、現在の OC4J も大きな声では言えない
問題を抱えている。金は余っている訳だから、市場で既に十分検証された実績のあるソフトウェアが
ちょっとした出費で手に入るならということで、こんなことになったのだろう。とうの昔に枯れてしまった
古い DB ソフトウェアで膨大なライセンス料を濡れ手に粟で手に入れているが、ある時期以降は
買収で体制を維持しているように見えなくもない。「何かおこったらどうしよう、でも有名大手にまかせて
おけば大丈夫、少なくとも自分は」という日本の無責任 IT マネージャは格好のカモで、口では立派な
ことを言うが、裏では責任のなすり付け合いとその手はずに大半の時間を使っている日本企業の IT
部門が Oracle の様な会社を増長させ、結果的にこのような残念な結果を招いているのかもしれない。

また、ニュースにも書かれているが本当の仕掛人は乗っ取り屋アクティビスト投資家 Carl Icahn
(カール・アイカーン)だ。経済の世界からみると結果的に金になれば成功と見なされるので、
氏のようなやりかたもありなのだろうが、振り回される方はたまったものではないだろう。
金にものを言わせて攻撃的な、横暴ともとれる要求をターゲットにされてしまった企業に
迫ってくるやり方には嫌悪感を覚えずにはいられない。最も、一般人がこんなことを述べても
「だからどうした貧乏人?」とあしらわれるだけだろうが... 世の中、結局金ですか???

コンピュータ関連企業の中で比較的方向性の近い企業との協業、あるいは合併といった平和的な
解決ができなかったのが残念である。まぁ、Oracle もうまく BEA の技術をのばしていって
くれるのかも知れないが... ただ、Carl Icahn がかんでいる時点で、BEA が M&A による
金儲けのカモにされた感は拭えない。

Sun, Apple, Azul といったポリシーをもった技術先行の(イメージがある)会社には
末永くがんばってほしいし、同じようなことは勘弁してほしい。でもアメリカ式経済では
いつこれらの会社が消えても不思議ではない(とくに Azul)訳で、それを防ぐには
それなりの防衛手段が必要にもなる。ただ、それが金儲け第一主義にいつの間にか化けて
しまうととたんにつまらなくなってしまうので難しいところだ。理念と、製品、成果物に
高い価値を認められる企業はもう少し、乗っ取り屋におびえる事なく本業に専念できる
ような法整備はできないものだろうか?

BEA が名実共に SOA, web から退場となるかどうかはわからないが、乗っ取り屋の気まぐれで、
業界から活気が失われるような事にだけはならないことを祈りたい。

2008年1月9日水曜日

最近の言語

Ruby は何年も前に買った本を発掘したので、たぶん2000年前後に勉強した
はず、でもほとんど記憶にない。でも、最近の Rails, JRuby, Goldspike
のブームで面白さを再発見。やっぱり、strict type checking の言語は
肩が凝るのだろうか... 従来の言語にない言語要素も新鮮だ。
ただ、実際の手持ちのアプリケーションの移植先と
して考えた場合、Ruby/JRuby には残念な点もある。ひとつはエラー自身や、
問題箇所の特定が面倒なこと。このあたりは Java/C++ の方がずっと
わかりやすい。もうひとつ、C++ でメモリマップ経由で様々なデータを
アクセスしていたコードを Ruby で記述しようとすると結構面倒(な気がした)。
ターゲットに想定しているシステムは残念ながらネイティブな ruby が
ない(オープンソースにとても弱い OS なのでビルドするのも面倒)
困ったものなので JRuby だよりになるのだが、どうも細かい点で
動作が不安になる。Rails のそっけないエラーから根本原因を調べて
行くのはとても面倒だ...

Rails は簡単なダイナミックサイトにはもってこいだ。最初のうちは
簡潔で、独特の記述方法にとまどったが、よくみれば Ruby のコードだ。
ただ、active* など一連のものは Ruby のモジュールで、その詳細、
慣例などは結構慣れを必要とするようだが、何かポイントだけ切り出した
よい本はないものだろうか...

Goldspike も動いたときは感動したものの、war ファイルのあまりの大きさと
結局 JRuby + Rails + App をラップしているだけと気づくと何かさめて
しまった。

括弧を省いた記述ができたり、わかっている人にはわかる簡潔な書き方が
色々とあるところは気に入った。

Scala は正直とっつきにくい。なぜなら関数型言語の経験値が低いから。
ただ、java との親和性は比較的たかく、お互いをコンポーネントとみなせる
位の粒度で組むのであれば問題ない。ただし、java/Scala 間でクラスや
インターフェイスを使った継承を持ち込むとすこし大変。推測で色々と
試すと動いたりもしたが、果たして正しいのかどうかが難しい。
Scala のエレガントな記述を使いこなすだけのベースがないのが残念な
ところ。色々と用意された簡潔な記述方法はすばらしい。

Python ... いまさらだが、昔、少しやってやめてしまっていた。
ただし、機能は一通りあるわけだし、あとはどれだけ興味が維持できるかが
ポイント。なんというか、少しあくとすぐにかけなくなる(すぐに文法を
忘れてしまう...)。 Jython で java のクラスライブラリを使えるところはよい。

Groovy も昔、入門だけしてご無沙汰でした。でも、改めていろんな
入門ページをみて、Grails を試して、正直、気に入った。