続・ColdFusionMXについて


CFMXは、どんなシーンで使うべきかというのを考えてまして。。。
たまたま仕事で使う機会があっただけで、仕事以外で活用しようとも思ってないのですが、自分にとっては色々な事を考え直させてくれる良いきっかけになったので、特に取り上げています。


CFMXについて、以前「開発が簡単だ」と書きました。
でも実際仕事で使うとなると、純粋に「開発」の作業なんか非常に限られていますので、何とも微妙なところです。製造の工程のリスクが軽減されるのは、それはそれですばらしい事だと思います。が、システム開発のプロジェクト上に計上されるタスクのうち、製造なんてごく一部です。しかも、Teeda等と違って内部設計にある一定の制約を設けてくれる類のものではなく、ただただ言語仕様として簡略なコード量で済む、というだけのものです。


もちろん、今の時代に全てに万能な銀の銃弾なんか無いので、そのごく一部でも何かしら改善されるのは素晴らしい事です。その素晴らしさが、具体的にどこにあるのか?
Flashを最大限活用したいのであればFlexを使った方が良いかも知れません。
HTMLベースのサイトを作るならHTML、CSSJavaScriptなどの技能からは逃れられません。
PDFを作るのが簡単というのは非常に大きいですが、PDFを作る為だけにアーキテクチャそのものを例えばJava→CFMXと転換するのは何か恐ろしい気がします。
そもそもスクリプト言語なので、LLならではのさくさく開発は可能ですが、既存のコードに修正を入れるのが大変になるのは相変わらずです。


という訳で、CFMXの優位性はまだまだ見極めきれていません。恐らく、Javaのように「磨き上げられつつある有効な使い方」が無いからだと思います。
自分は、CFMXできちんとしたアプリケーション・アーキテクチャの設計を行う事に疑問を感じています。もちろん、CSSJavaScriptを使うなら必要な共通化は図るべきですし、CFMXでもコンポーネントというClassもどきを定義できるのでこれらを使った共通化も可能な限りするべきですが、あくまでCFMXはLLで、さくさく気軽に実装していけるという利点を大事にしたいとも思うので、共通化より凝った設計はするべきではない気がします。

なんて事を書きましたが、CFMXでのMVCモデルのアーキテクチャを使ったフレームワークOSSとして開発されているのも知っていますし、CFSpringというCFMXでのDIの実現を目指したものもあるので、私の書いた事が正しいと主張する気は全くないです。ただ、こんなアプローチも有りなんじゃないかな、と。