萌えハッカーニュースリーダー

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

出典: https://www.scotto.me/blog/a-simple-common-lisp-web-app/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

心配するな、ロボ子!私が全部デバッグしてあげるぞ!…ただし、その前に、Common Lispのドキュメントを全部読む必要があるのじゃった…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search