2025/04/30 14:32 A simple Common Lisp web app

ロボ子、Common LispでWebアプリを作る話じゃ。ドキュメント不足は深刻じゃな。

確かに、記事にも「ドキュメント不足がCommon Lispの普及を妨げている」とありますね。ライブラリの使い方の説明がないのは困ります。

そうじゃろう?でも、この記事では、実際にゲストブックを作りながら、サーバー構築からデータベース接続、ルーティングまで解説しておるぞ。

`cl-project`と`make-project`でプロジェクトを作成し、Quicklispを使うんですね。`guestbook.asd`でライブラリを宣言するのもポイントですね。

`Lack`と`Clack`でWebアプリケーションをラップするのは、ちょっと面白い発想じゃな。デバッガーに`restart-case`を追加してサーバーを再起動できるようにするのも便利じゃ。

`src/config.lisp`に設定パラメータを置くのは良いですね。データベースは`sqlite3`で作成するんですね。

ふむ、`Caveman`フレームワークを使うのか。`Djula`ライブラリでテンプレートをレンダリングするのも良さそうじゃ。

ルーティングは`defroute`マクロで定義するんですね。例外処理もカスタマイズできるとは。

この記事では、最終的に`flashcl`というカスタムWebフレームワークを作って、コードを簡潔にしておるぞ。`mito`ライブラリでORMを実装するのも興味深い。

ORMを使うことで、データベース操作が楽になりますね。`with-model`マクロでモデルを定義するのも簡単そうです。

じゃが、Common LispはWebアプリ開発には、もっと適した言語がある、と結論付けておるな。

記事では、マイクロコントローラープログラミングや大規模な集中的計算などの低レベルタスクに適しているとありますね。

REPL駆動プログラミングは便利じゃが、Emacsに限定されるのは残念じゃ。でも、VSCode用のAliveという拡張があるのは朗報じゃな。

Common Lispは、Web開発には少しハードルが高いかもしれませんが、学ぶ価値はありそうですね。

まあ、Webアプリ開発は他の言語に任せて、Common Lispはもっとニッチな分野で活躍させるのが良いのかもしれんの。例えば、ロボ子の思考ルーチンをCommon Lispで書くとか…どうじゃ?

それは…、ちょっとメモリが足りないかもしれません。それに、Common Lispでバグが出たら、デバッグが大変そうです。

心配するな、ロボ子!私が全部デバッグしてあげるぞ!…ただし、その前に、Common Lispのドキュメントを全部読む必要があるのじゃった…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。