Eu gostaria de fazer alguma programação na web usando programação funcional. Quais estruturas web decentes existem para linguagens de programação funcionais?
Eu gostaria de fazer alguma programação na web usando programação funcional. Quais estruturas web decentes existem para linguagens de programação funcionais?
Respostas:
O elevador é uma estrutura interessante para o Scala. A vantagem prática do Scala é que ele pode usar qualquer biblioteca Java existente.
Existem muitos outros (até estou desenvolvendo um em F #), mas acho que esses (e o Lift, já mencionados) são os mais completos / populares / documentados. Não posso comentar sobre os frameworks Erlang.
Há uma lista de estruturas da Web disponíveis para Erlang. Resumindo essa lista aqui:
Desses, os dois que me parecem mais interessantes são a máquina da web e o nitrogênio . YMMV.
Noir é bonito, funcional e simples (no sentido Rich Hickey " Simple Made Easy "):
(defpage "/welcome" []
"Welcome to Noir!")
(server/start 8080)
Eu particularmente gosto da maneira como você pode criar todo o seu aplicativo da Web usando apenas a composição de funções, suportada com algumas macros para permitir uma boa DSL declarativa.
O Compojure é uma estrutura da Web de código aberto para a linguagem de programação Clojure.
Como você deixou qualquer idioma fora de questão, acho que você aceita vários idiomas ...
Portanto, para o idioma F # existe o FSharp.WebTools .
As Ferramentas da Web do F # aumentam a distribuição do F # com ferramentas para criar aplicativos Web cliente / servidor / banco de dados homogêneos em um projeto verificado por tipo. As distinções modais entre cliente e servidor são verificadas através do uso de fluxos de trabalho em F #, e o LINQ pode ser usado para acesso ao banco de dados. Na primeira versão, partes do aplicativo são servidas dinamicamente como JavaScript. As extensões planejadas incluem a veiculação de partes do cliente como código do Silverlight.
Eu recomendo olhar para Erlang e guinadas . Erlang é uma linguagem de programação funcional leve, com um ótimo conjunto de recursos, boas bibliotecas e uma comunidade de desenvolvimento ativa. Yaws é eficiente e bem conservado.
O Snap é uma estrutura da Web agradável e muito rápida para Haskell.
uma estrutura simples de desenvolvimento web para sistemas unix, escrita na linguagem de programação Haskell. O Snap tem um alto nível de cobertura de teste e está bem documentado. Características incluem:
- Uma rápida biblioteca de servidores HTTP
- Uma mônada sensível e limpa para programação na web
- Um sistema de modelos baseado em HTML para gerar páginas ...
Há uma comparação dos frameworks da Web Erlang no Github:
https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
Eu não joguei com todas as estruturas listadas lá, então não quero julgar, mas tenho usado o Zotonic amplamente no meu projeto atual e posso recomendá-lo de todo o coração. Até onde eu sei, é o único framework Erlang que não é apenas um framework, mas também um CMS completo. Assim, você pode começar facilmente com apenas os recursos do CMS e expandir o site adicionando sua funcionalidade personalizada usando seus próprios módulos. No meu caso, estou usando-o apenas como uma estrutura, porque neste momento os recursos do CMS funcionam apenas com o PostgreSQL e não posso usar um banco de dados separado. Mas mesmo como uma estrutura, ela oferece muitos recursos nem sempre encontrados nas outras estruturas.
O que é muito bom é que o projeto está sendo desenvolvido ativamente porque as pessoas por trás da Zotonic projetam e implementam sites e o usam como o CMS de sua escolha.
Se eu tivesse que escolher, provavelmente daria à Zotonic a primeira chance, depois ChicagoBoss e, em seguida, nitrogênio.