関数型言語は何故普及しないのかを考える
■ このスレッドは過去ログ倉庫に格納されています
0043前スレ 475
2010/10/12(火) 09:55:55>>40
帳票印刷パッケージは単なる例だけど、こういった業務用パッケージ/コンポーネントというのは、
過去からの膨大なコード資産があって、一から新規作成するケースは少ない。
たとえばC++で書かれた帳票印刷パッケージ、C#で書かれたバーコード表示コンポーネント、...etc、
これら一つ一つについて、関数型言語向けにカプセル化する必要があります。
(この話は帳票を扱う業務アプリ開発(プログラミング)ではなく、帳票印刷パッケージそのものの
開発に関する話だから、誤解/混同しないで下さいね。念の為。)
このカプセル化を設計する時に、単にIOモナドを使うだけで済ますのか、あるいは
その上にもう一皮被せた独自のモナドで実装するのかは、case-by-caseだと思います。
ただし、一般に帳票というのは、そのデザイン(定義)が面倒なもので、それに加えて業務単位に類似性のある
複数の帳票を定義するといった事柄が要求されます。だから、帳票印刷パッケージには、
その手間(ユーザの負担)を減らすために、使い易いUI、定義の差分記述やモジュール化といった
多くの機能要素から構成されます。他にもエラー回復(紙づまり/用紙切れ)や印刷スプール管理といった
帳票定義以外の機能も一緒に提供されます。ただ単に「帳票を定義して印刷する」だけじゃ済まんのですよ。
そして、それら機能設計の優劣が他社製品との差別化(セールスポイント)に直結するわけですから、
各社とも必死に設計/開発するわけで、低レベルな印刷APIを単純なIOモナドで操作するだけでは済まず、
おそらく個々の機能要素(関数)を柔軟かつ正確に結合できる独自のモナドを設計しようとすると思うんです。
で、その時に、前スレの>>971で書いてくれたような「IOモナドを使えばIOとの入出力ができる。
印刷ライブラリも呼べる。」といったモナドの知識、あるいはいわゆる一般的な「モナド則」だけを
知っていさえすれば設計できるものなのか?という疑問です。とうてい可能とは想像がつかないんですけど。
(まだ続く)
■ このスレッドは過去ログ倉庫に格納されています