[悲劇]ジャバを愛したseasar

筆者は数少ないseasar1の利用者である。DIコンテナのseasar2ではなくseasar1だ。

## seasarとの出会い

　2003年くらいだったかなあ。筆者は当時とある金融系事業会社のシステム子会社にいた。その親会社の社長と役員が大株主側と折り合いが合わなくてスピンアウトし、別の金融系事業会社を作った。筆者も誘われたのだが元のシステムでつくりかけのものがあったので、これをリリースしてからまた考えたいと返事した気がする。相手先はそれを待ってられないし、システム子会社で過去に使ったことのある人達に連絡をとって、バックシステム、プライスコントローラー、PC向けオンライントレードシステムを作った。

　システム子会社で協力してもらったのは筆者がジョインする前で、詳しいことはよくわからないのだがあまり評判は良くない感じだった。でもシステム系のツテが少ないので、彼らしか選択肢がなかったらしい。なおデザイナーも同じ人だった。この会社に納品するときに受け入れテストを行ったらしいのだが、単体レベルが大量にでる状態で受け入れ検証どころではなかったらしく、新会社に顔出すたびにいろんな人に「今のシステムをどうにかしてくれ」って言われていた。

　衝撃的だったのはそのチームのリーダーの発言だった。発言主は後にseasarファウンデーションの理事になるHである。プライスコントローラーはデータ量が少ないと快適に動くのだが、顧客のオーダーが溜まってDBへの検索頻度があがるとすぐ重くなって使い物にならなくなる。新会社からさんざん改良要求を出していたらしいのだが、Hからの返答がすごかった。曰く、

「OpenGLを使っているので良いGPUを積んだビデオカードを導入してください。」

__はあ？__

どこからツッコんでいいのかわからない。まずトレーダーのPCに高性能GPUを要求するのがありえない。OpenGLで描画していたのは矢印くらいで、もしそれが負荷になるならOpenGL使わないように変えればよい。DBのデータ量が少ない時は快適に動くし画面の描画量はオーダー量が多くても少なくても大して変わらないのでOpenGLのせいなわけがない。あきらかにSQLの最適化とそもそも検索ロジックの出来が悪い事に起因している。

これは技術者としてはあるまじき発言だ。一応彼の肩を持つと、後輩の面倒見は良いし、後に「MAJICA」[^1]というビジネスのユースケースを洗い出すツールを発明していたのだが、そういう方向性では能力があるようだった。また雑誌に寄稿していたが文章は大変わかりやすい。つまり文系親分肌的な感じで、効率的なロジックを考えたりするのは向いてないし、かつ自分の後輩たちに被害が及びそうな時には「OpenGLのせい」などというミエミエの嘘までついて自分たちのチームのせいじゃないと言い張るタイプだった。

[^1]: ドンドンドン、ドンキー、ドンキーホーテー、のmajicaポイントではない

## モバイルサイト

会社としては当然彼らにこれ以上あまり新規で仕事を依頼したくなく、社内にシステム部を作って徐々に移行していく計画を立てた。筆者もそのうち社員として合流する前提で、モバイル版オンライントレードサイトの制作を依頼された。ろくなドキュメントもないPC版のソースを元に。

[^2]: なお筆者はその後合流するタイミングを逃したまま現在に至る。一時期ロサンゼルス常駐の話がありそのためにメインの仕事を辞めたりしたのだが。海外常駐したいなー。

　プライスコントローラーも動かさないとプライスの生成やオーダーの約定ができない。確かDelphiだったと思う。開発環境モードで起動すると、起動時にアニメ声で

「うふふ、遊んで遊んで」

と音声がでる。ビジネスサイドに確認してみたが社内のツールではさすがにそんな音声はなく、開発時専用の用だった。筆者は今でこそアニメも好きだが、さすがに仕事中にそこまでされると今でもキモい。しかも当時はアニメにハマる前だったので嫌悪感しかなかった。「これがOpenGLを使ってるプラコン・・・」

PC版オンライントレードはJavaだった。しかし起動方法がよくわからない。ドキュメントは皆無。開発チームに連絡をとったところ、seasarという便利ツールを使っているのでそのドキュメントを送りますとの事で、A4で2ページ分くらいのseasarの説明テキストが来た。なんかよくわからない便利ツール集めたオレオレフレームワークっぽいものの説明が2ページのみ・・・。読んだけど[^2]なんの役にも立たず、再度開発者に連絡をとって自分たちがどうやって起動してるのか聞こうとして起動方法の明文化の助言(?)[^3]めいた事を書いたら、「それならseasarのお手伝いしませんか？seasarのリーダー結構変わった人で面白いんですよ」と誘われた。結局PC版は立ち上がらなかったしモバイル版作るのに忙しくて余計な事にかまってる暇がないので断った。

[^3]: 内容は忘れた。過去メールアーカイブ探ればあるかもしれないけど意味のないことにそこまで労力かけたくない。

[^4]: 単に要望を出したかサンプルを提示したか忘れた。とにかくtool改修する意図があると思われたっぽい。

## ドキュメント

ドキュメントといえば、seasar2は当初「ドキュメントは作らない、blogで過程をすべて公開しているから」などとのたまわっていた。はあああああっ？？？？アホすぎて思わず2chに「調べ物があるとき、いちいちblog検索するのか？途中から仕様が変わってる事とかも含めて全履歴検索するの？ビジネスで使うツールとしてあり得なくない？」って書き込んだ。筆者の書き込みを見たかどうかは知らないが、後にドキュメントは書く方向に修正された。少しでもマシになってくれてよかったが、今思えば初めからもっともっと駄目だった方が悲劇を生まずにすんだのかもしれない。

## ドメインモデル

seasar2のリーダーは長いことseasarのやり方をドメインモデルだと言っていた。後に発言を訂正してこれは「トランザクションスクリプト」だと認めたが、しばらく認めなかった。これだけで既にseasarはオブジェクト指向の大原則を理解できていない、技術的に信頼がおけないツールであることは明白だと思っていたのだが、世間一般のレベルは彼よりももっと低かったらしく、seasar2を日本発のOSSとして盛り上げるべく賛同者は増え、特定非営利活動法人までできた。こちらとしては「seasar2使ってるんですよ」と言われるだけで相手がオブジェクト指向理解出てない事がすぐわかった。しかし結構みんな理解できてなかったし、seasar系のツールを使っている人たちの中にもレベルの高い人はいた。まあみんながアーキ選定の意思決定に関わってるわけでもないしね。

seasarのリーダーが、そのやり方がトランザクションスクリプトだったと認めた時には「業務システムではトランザクションスクリプトで十分」と言い放った。一理はあるかもしれない。結局大手SIerがやるような巨大システムでは、まともなDDDをしたところで機能せず、なるべく小分けにトランザクションスクリプトにし、納期を早めるためにはとにかく人を投入し、とにかくみんなで手でテストしてExcelスクショみたいなIT土方を使うのにはその方が合っているのかもしれない。

筆者には脳みそがあるのでそんな猿でもできそうな作業をしてたら気が狂うと思う。少人数で頭のいい人たちと効率よく仕事がしたいし、Excelスクショみたいな作業を自動化しない人は19世紀のコンピューター発明前の時代に生きてるのかなと思う。


## WEB+DB PRESS/JAVA PRESS

技術評論社から出ている雑誌である。この出版社は良い本も出すがこの雑誌は昔から間違いが平気で載ってる事があった。しかしこれは仕方ない。一流のプログラマはライター（執筆者）やエディター（編集者）にはならない。Dog yearで進化するこの世界では、ライターとして一流になっていく間に技術で置いていかれてしまう。エディターは校正や出版用レイアウトのプロではあるが、ライターより技術に明るい事を求めるのは酷だ。結果、エディターはライターの間違いに気づくことができず、プログラマとして二流以下の人が勘違いしたまま書いた文章をそのまま載せてしまうのである。これは構造上の問題であり解決策はない。

そんな技術評論社の雑誌でseasar2が取り上げられていた。あれでseasar2って業務で使うに値するプロダクトだと思って被害にあった人が結構いるんじゃなかろうか。雑誌はあくまでアンテナの一つとして参考にする程度で、本に書いてあることを鵜呑みにしてはいけないのは前出のとおりである。


## 終焉

seasar3ではなくてslim3とか言ってたけどまあなんにしても無くなったよかった。

seasarのリーダーがDJになるって言い出した時は声出して笑った。
https://higayasuo.hatenablog.com/entry/20150827/1440647815

「とうちゃん今日からDJで喰ってくわ」っていうAAなかったっけ？

### 補足

Linuxの理事とseasarのリーダーを見て「おっさんが茶髪にするのは厳しいな、やめとこう」と思った。似合う人は似合うんだけどねえ