views:

355

answers:

4

I am considering ditching Ruby on Rails for my web-development pet-project and using a functional programming language (with or without a framework).
Not that there is anything wrong with RoR, but I'd just like to learn something else and it seems a good way to learn functional programming.
I know of a couple frameworks (Lift for Scala and Seaside for Smalltalk) and I know there are also web-related Haskell libraries available. Finally I imagine that everything could be written from scratch.
I assume that the greatest majority of RoR high level features will be missing from those frameworks/libraries, and I expect to have to deal with many more low-level issues, which will make the development process slower and probably more complex.
Still, there must be a easier path among these options.
Could you share your experiences and suggestions?

Thank you.

+6  A: 

I couldnt help but recall Paul Grahams story about how he successfully started a web development company based on Lisp. It turned out to be his secret weapon; nobody else was doing it this way, and he was able to stay two steps ahead of his competitors by turning out new features faster than anyone else could.

So, for your inspiration, I give you:

Beating the Averages
http://www.paulgraham.com/avg.html

Robert Harvey
... and of course, that yields to arc, which is a Lisp dialect with an included web framework. a nice dialect, but the html style enforced quickly turned me off.
Javier
+1  A: 

The web server that claims to be the world's fastest is written in Common Lisp. Check out Teepeedee. It also has a Lisp framework for generating dynamic content.

Vijay Mathew
+1  A: 

I attend a Lisp User Group with the guy who wrote AntiWeb http://hoytech.com/antiweb/. Same guy who wrote Let Over Lambda http://letoverlambda.com/. Smart guy to say the least.

Although I haven't tried it (I intend to), I imagine it is a quality product. This site runs on it http://public.youtranscript.com/

z5h
+1  A: 

In haskell, you can define complicated ideas. Here's some ideas for haskell web development:

1) Use HAppS if you want most of your code already written and tested.

2) Use Parsec if you want to add some feature-rich content to your pages after you generate raw html

3) Create your own monad to encapsulate all of the repetition you may run into during your development process

4) You can also use some of the MANY packages available on hackage to reduce the tasks you would deem "high level" in ruby. Ruby doesn't have currying =D

PS: Whoever mentioned paul graham, he developed his web apps when everyone was using only C. They didn't have access to the php, ror, java, and .net that we do today.

codebliss
-1 Parsec for "feature-rich content to your pages after you generate raw html": no, that's not Parsec's purpose. "Create your own monad to encapsulate all of the repetition you may run into during your development process" is way too vague. In fact, the whole answer is too vague.
Mauricio Scheffer