Pergunta

I would like to do some web programming using functional programming. What decent web-frameworks exists for functional programming languages?

Foi útil?

Solução

Lift is an interesting framework for Scala. The practical advantage of Scala is that it can use any existing Java libraries.

Outras dicas

There are many many more (even I'm developing one in F#) but I think these (and Lift, already mentioned) are the most complete/popular/documented. I can't comment on Erlang frameworks.

There's a list of web frameworks available for Erlang. Summarizing that list here:

Of those the two that look most of interest to me are webmachine and nitrogen. YMMV.

Noir is beautiful, functional and simple (in the Rich Hickey "Simple Made Easy" sense):

(defpage "/welcome" []
    "Welcome to Noir!")

(server/start 8080)

I particularly like the way that you can then build your entire web application just using function composition, supported with a few macros to enable a nice declarative DSL.

Compojure is an open source web framework for the Clojure programming language.

http://en.wikibooks.org/wiki/Compojure

As you have left any languages out of the question, I guess you accept multiple languages...

So for the language F# there exists FSharp.WebTools.

The F# Web Tools augment the F# distribution with tools to author homogeneous client/server/database web applications in one type-checked project. The modal distinctions between client and server are checked through the use of F# workflows, and LINQ can be used for database access. In the first version, parts of the application are dynamically served as JavaScript. Planned extensions include serving client-side portions as Silverlight code.

I recommend looking into Erlang and yaws. Erlang is a lightweight functional programming language with a great set of features, good libraries and an active development community. Yaws is efficient and well matained.

Snap is a nice and really fast web framework for Haskell.

a simple web development framework for unix systems, written in the Haskell programming language. Snap has a high level of test coverage and is well-documented. Features include:

  • A fast HTTP server library
  • A sensible and clean monad for web programming
  • An HTML-based templating system for generating pages...

There is a comparison of Erlang web frameworks on Github:

https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks

I haven't played with all the frameworks listed there so I don't want to judge, but I've been using Zotonic quite extensively in my currently project and I can wholeheartedly recommend it. As far as I know it's the only Erlang framework which is not only a framework but also a full-blown CMS. So you can start easily with just the CMS features and then expand the website by adding your custom functionality using your own modules. In my case I am using it purely as a framework because at this moment the CMS features work only with PostgreSQL and I can't use a separate database. But even just as a framework it offers lots of features not always found in the other frameworks.

What's very nice is that the project is being very actively developed because the people behind Zotonic design and implement websites and they use it as their CMS of choice.

If I had to choose then I would probably give Zotonic the first chance, then ChicagoBoss, and then Nitrogen.

Licenciado em: CC-BY-SA com atribuição
scroll top