İşlevsel programlama kullanarak bazı web programlama yapmak istiyorum. İşlevsel programlama dilleri için hangi uygun web çerçeveleri var?
İşlevsel programlama kullanarak bazı web programlama yapmak istiyorum. İşlevsel programlama dilleri için hangi uygun web çerçeveleri var?
Yanıtlar:
Lift , Scala için ilginç bir çerçevedir. Scala'nın pratik avantajı, mevcut herhangi bir Java kütüphanesini kullanabilmesidir.
Çok daha fazlası var (F # 'da bir tane bile geliştiriyorum) ama bunların (ve daha önce de belirtilen Lift) en eksiksiz / popüler / belgelenmiş olduğunu düşünüyorum. Erlang çerçeveleri hakkında yorum yapamam.
Erlang için hazır web çerçevelerinin bir listesi var . Bu listeyi burada özetlemek:
Bana en çok ilgi çekenlerden biri web makinesi ve azot . YMMV.
Noir güzel, işlevsel ve basittir (Rich Hickey'de " Simple Made Easy " anlamında):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Özellikle güzel bir deklaratif DSL sağlamak için birkaç makro ile desteklenen sadece fonksiyon bileşimini kullanarak tüm web uygulamanızı oluşturma şeklinizi seviyorum.
Compojure, Clojure programlama dili için açık kaynaklı bir web çerçevesidir.
Herhangi bir dili soru dışında bıraktığınızdan, sanırım birden fazla dil kabul ediyorsunuz.
Yani F # dili için FSharp.WebTools var .
F # Web Araçları, F # dağıtımını, tek tip denetimli bir projede homojen istemci / sunucu / veritabanı web uygulamalarını yazmak için araçlarla güçlendirir. İstemci ve sunucu arasındaki modal ayrımlar F # iş akışları kullanılarak kontrol edilir ve LINQ veritabanı erişimi için kullanılabilir. İlk versiyonda, uygulamanın bölümleri dinamik olarak JavaScript olarak sunuluyor. Planlanan uzantılar, istemci tarafı bölümlerini Silverlight kodu olarak sunmayı içerir.
Erlang ve yaws'a bakmanızı öneririm . Erlang, çok çeşitli özellikleri, iyi kütüphaneleri ve aktif bir geliştirme topluluğu olan hafif bir fonksiyonel programlama dilidir. Yaws verimli ve iyi durumdadır.
Snap , Haskell için güzel ve gerçekten hızlı bir web çerçevesidir.
Haskell programlama dilinde yazılmış, unix sistemler için basit bir web geliştirme çerçevesi. Snap yüksek seviyede test kapsamına sahiptir ve iyi belgelenmiştir. Özellikler:
- Hızlı bir HTTP sunucusu kütüphanesi
- Web programlama için mantıklı ve temiz bir monad
- Sayfa oluşturmak için HTML tabanlı şablonlama sistemi ...
Erlang web çerçevelerinin Github'daki karşılaştırması var:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
Orada listelenen tüm çerçevelerle oynamamıştım, bu nedenle yargılamak istemiyorum, ancak şu anki projemde Zotonic'i oldukça yoğun kullanıyorum ve gönülden tavsiye edebilirim. Bildiğim kadarıyla sadece bir çerçeve değil, aynı zamanda tam gelişmiş bir CMS olan tek Erlang çerçevesi. Böylece, sadece CMS özellikleriyle kolayca başlayabilir ve daha sonra kendi işlevlerinizi kullanarak kendi modüllerinizi kullanarak web sitenizi genişletebilirsiniz. Benim durumumda bunu sadece bir çerçeve olarak kullanıyorum çünkü şu anda CMS özellikleri sadece PostgreSQL ile çalışıyor ve ayrı bir veritabanı kullanamıyorum. Ancak, sadece bir çerçeve olarak bile, diğer çerçevelerde her zaman bulunmayan birçok özellik sunar.
Çok hoş olan, projenin çok aktif bir şekilde geliştirilmesi, çünkü Zotonic'in arkasındaki insanlar web sitelerini tasarlayıp uyguluyor ve tercih ettikleri CMS'yi kullanıyorlar.
Eğer seçim yapmak zorunda olsaydım, Zotonic'e muhtemelen ilk şansı, sonra ChicagoBoss'u ve sonra Azot'u verirdim.