quaternionの日記: 文芸的プログラミングが普及しなかった理由 10
日記 by
quaternion
文芸的プログラミングが普及しなかった理由という記事のために久しぶりにWeb(WWWじゃなくてクヌースのWeb)でプログラムを書いてみた.
文芸的プログラミングが普及しなかった理由という記事のために久しぶりにWeb(WWWじゃなくてクヌースのWeb)でプログラムを書いてみた.
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
Modern Literate Programming (スコア:1)
向こうにコメントするべきかもしれない & 調査済みかもしれませんが、Haskellには文芸的プログラミングのサポート機能があります。
が、個人的にはLaTeX構文は辛いです。
https://www.haskell.org/onlinereport/literate.html [haskell.org]
言語による文芸的プログラミングのサポート機能で一番使えそうと思ったのはmarkdownで書ける、coffeescriptですが、coffee自体が廃れているので微妙ですね。
http://coffeescript.org/#literate [coffeescript.org]
Re:Modern Literate Programming (スコア:2)
doxygen (スコア:1)
The Art of Computer Programming のような、「プログラミングについての書籍」を作る場合だからこそ「コードそのものをドキュメントに埋め込んで解説する」というWEBが意味を持つのだと思います。
普通の用途だと、インプットとアウトプットさえ明確なら、その内部実装は見えなくてもいいというか見えない方がいい、ということで
「プログラムのドキュメント」の作成方法としては、入出力仕様だけをドキュメント化するdoxygenのようなドキュメントツールの方が使い勝手がいいでしょう。
(挙げられた例だと、普通のプログラムドキュメントとしては「g(n) \equiv 3f(\sum_{k=1}^{7}k^n)」を求める関数である、と説明するのが最重要で、その内部実装をいちいち逐次説明なんてするな、って感じ。)
Re:doxygen (スコア:2)
The Art of Computer Programming がWEBで書かれていたかどうかは忘れてしまいましたが,それはさておき「プログラミングにおけるインタフェースと実装の分離」という目標と「文芸的プログラミング」という目標はご指摘の通り両立しないですね.
構造化エディタ (スコア:1)
構造エディタ [amazon.co.jp]
という本をむかし持っていましたが、手放しました。まだ良く読んでいなかったかも。
これは文芸的プログラミングとは違うとは思いますが。
文芸的プログラミングの機能のあるIDEというのは結構あるんでしょうか?
Re:構造化エディタ (スコア:2)
近代的なIDEではありませんがEmacsの web-mode [loria.fr] (PDF) はあるようですね.
普及しないというか (スコア:0)
そこまでやる動機を持っている人はそりゃ少ないでしょう
Re:普及しないというか (スコア:2)
そうなんですか!?
Re: (スコア:0)
Re:普及しないというか (スコア:2)
ああなるほど.確かに .web → .tex → .dvi のコンパイルは恐ろしく時間がかかる(特に2段目)ので,プログラム部分のデバッグが終わってからでないと走らせたくないですな.