I'm not the author but have written a couple of production web applications using Ur/Web and have found it pretty nice. The enforced purity took a little getting used too. If an error occurs during a request all side effecting changes during that request are rolled back. This is nice for the database side of things but dealing with other interfaces with the world (eg. payments, sending mail) required some work arounds. Nothing impossible to deal with though.
The FFI of Ur/Web is low level and easy to use. This made interfacing with existing C routines easy. When I couldn't work out how to do something in Ur, I just wrote it in C (well, actually I wrote it in ATS which compiles to C) and called it from Ur.
I did have some interesting issues in an application that had fairly heavy load. If one transaction is in process and it relies on data that gets changed in another transaction then one of them is rolled back and retried once the other has succeeded. Under very heavy load, where transactions required some semi-global state in the database, and all those transactions modified that state then these rollbacks would happen a lot and cause performance issues. Fixed with better data design in the app of course to avoid the contention on the global state.
All in all though Ur/Web has held up very well for me and makes it pretty quick to put things together.
I'm not sure exactly what you mean. Clojure is a programming language. Ur/Web is a web application development system. You'd have to compare Clojure+database library+web library.
Hi, I'm developer of this RSS reader and want to share with you why Haskell is a big win for my project.
First. Haskell is a fast compiled language. Most RSS readers are written in Python, Ruby or PHP. And they're all quite slow or requre a ton of servers to handle the load. With Haskell I'm able to quickly implement complex features and don't think much about performance.
Second. Haskell is very high level and handles concurrency well. It's not a problem to write very generic code or spawn thousands of threads.
Third. There a many good libraries now (much more than 10 years ago ;).
I want to thank Bryan O'Sullivan, Michael Snoyman and all other package authors for their efforts on making Haskell true platform.
I'm especially like text, riak, aeson, http-conduit and warp packages. They're used 24x7 under load and I haven't found any major problems with them.
And few quirks.
Unfortunately not all packages are equal in quality. Many libraries are toys or don't work well under load. But at least there are libraries to take some code from.
Bindings to C libraries (as well as C libs itself) are evil. I've had problems with almost every C package I've tried (curl, regex-pcre, hsdns).
Long-lived ByteStrings can cause memory fragmentation and ten-fold performance drops. So I'm using Text for everything except I/O.
Haskell was missing fast malformed html/xml parser. But it took only a couple of days to write fast-tagsoup package that parses tens of MB/sec.
In general with Haskell I can quickly write high level code that runs fast. And (at least for my project) I'm seeing that most tasks now are CPU bound (due to fast SSDs), not I/O. So compiled yet high-level languages shold gain more popularity now.
If you have some questions about reader implementation details feel free to ask me.
PS: reader is profitable, so I'm thinking it could be counted as a Haskell success story ;)