Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



Seems that these problems are Clojure's selling points.


Maybe so, but Closure and Ur/Web are apples and oranges. The selling points of Ur/Web are not present in Clojure.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: