2012-05-08 15 views
6

私は幾分スキームに精通しています。私はOnLispを読んでおり、実際の世界のプロジェクトをやりたいと思っています。最も可能性の高いWeb開発。私はlispでウェブサイトを開発するためにどのような設定の人々が使用するのか知りたいです。私は自宅でいくつかのMacを持っており、私はclozure clを使用すると思った。私はいくつかのことには慎重だ。私はインターネット上で信頼性の高いスレッディング機能やネットワーキングがないことを読んでいます。これは本当ですか?あなたの経験は何でしたか?Common LispのWeb開発

PS:clojureについて教えてください:)。 Lispは私がスクラッチする必要があるかゆみです。

+0

また、そこにあったほとんどのWebアプリケーションは古くなったようです。私は "母は服を着ない"と言っているわけではありませんが、なぜこれが当てはまるのか誰にでも教えてもらえますか?また、そこにはjavascriptトランスレータへのlispはありますか?フロントエンドにlispの助けがありますか? – Ravi

+0

私は社会的な問題だと思う。 Lispの数が比較的少ないため、LispベースのWebアプリケーションには一般的に多くの貢献者がいません。そのため、開発者は基本的な作業に専念し、派手なAJAX機能を無視する傾向があります。 –

+0

仲間のgooglersに:私は、[素晴らしい普通のlisp](https://codyreichert.github。io/awesome-cl /)list! – Ehvince

答えて

6

「いいネットワーキング」がない理由はわかりません。特定の実装がそれらをサポートしていないので移植可能なCommon Lispアプリケーションを書く場合はスレッドに頼ることはできません(AFAIK、ちょうどclisp、実験的なスレッドサポートでコンパイルできます)。実装を選んで固執するつもりなら、そのような問題はありません。あなたがAraneidaまたはPortable AllegroServe上で動作するチュートリアルを見つけることができますが

"標準" CLのWebスタックは、Hunchentoot/cl-who/clsqlです。私が使用

セットアップは任意の静的コンテンツを提供Hunchentootの前に実行するquicklispとMySQL(私は真剣にPostgresにオーバージャンプ検討しているが)データベースおよびnginxとともに、上記のシステムを実行しているDebian/SBCLです。

+0

私はMacでSBCLを使ってみましたが、ウェブロックを読み込もうとしたときに "threading disabled"というエラーが出ます。私はスレッディングを有効にしましたが、それでも同じダンのことを言う:)。とにかく、私は今のところ閉ざしに固執します。すべての情報をありがとう。私はこれが良いスタートだと思う。 – Ravi

+0

@Ravi私の経験では、SBCLとClozure CLは動作が非常に似ているため、後者を使用すると問題は起こりそうにありません。私はMac OS XではClozure CLを、GNU/LinuxではSBCLを使用していますが、2つの間で移植性の問題が発生していません。 (CLISPとECLはまったく別の問題ですが、ウェブアプリケーションを書くときは、単にその存在を無視しています:)) –

+0

ところで、この回答に記載されているライブラリに加えて、[Postmodern] http://marijnhaverbeke.nl/postmodern/)にアクセスしてください。私はそれが非常に柔軟で予測可能であることを発見しました。 –

2

Common Lispのはさ、「ネットワーキング」との問題は、我々はCL標準でソケットを持っていないので、各実装は独自のソケットAPIのしています。 usocketのように共通のインターフェイスを使用する試みがいくつかあります。ネットワーク関連のパッケージhereのリストがあります。

ウェブフレームワークが必要な場合は、Cavemanをご覧ください。私はまだそれを使用していないが、それは私が今まで見た中で最も完全なCLのWebフレームワークのように見えます。

+0

前にケーブマンを聞いたことはありません。良い感じ。 – Ravi

8

現在、Hunchentootに基づくフレームワークを使用しており、Railsのルートシステムに触発されています。私もPostmodernを使ってPostgreSQLデータベースとやりとりを行い、さらにカスタマイズ可能なcl-whoに切り替えることを考えていますが、cl-markupでHTMLを生成します。私はまたJavaScriptを生成するParenscriptを使用して考えられてきましたが、今、私はMootoolsJavaScriptプレーンとだけ幸せ始めました

すべてはSBCL上で実行され、Quicklispで利用できます。

+0

大文字が面白そうです。セットアップは包括的です。ありがとうございました。 – Ravi

+1

私はしばらくの間、Restasで遊んできました。なぜ私はそれが好きですか:1)名前が示唆するように、それは安らかなデザインを奨励2)MVCの面ではCの部分だけを考えるとかなりシンプルです。 3)非常に柔軟性があります。4)Djangoが正規表現を使用してディスパッチする方法より優れたルートのコンセプトを見つけました。(レールからその良いアイデアがあると思いますが)5)モジュールでサイトを構築し、 url.pyファイルのスパゲッティの弓を使用するプロジェクトで、Djangosのアプリを整理する方法よりも優れています。 6)そのlisp :) –

関連する問題