I came across the Ur/Web project during my search for web frameworks for Haskell-like languages. It looks like a very interesting project done by one person.

Basically, it is a domain-specific purely functional language for web programming, taking the best of ML and Haskell. The syntax is ML, but there are type classes and monad from Haskell, and it's strictly evaluated. Server-side is compiled to native code, client to Javascript. See the slides and FAQ page for other advertised advantages.

Looking at the demos and their source code, I think the project is very promising. The latest version is something 20110123, so it seems to be under active development at this time.

Has anybody here had any further experience with it? Are there problems/annoyances compared to Haskell, apart from ML's slightly more verbose syntax?

closed as primarily opinion-based by Ixrec, user22815, Bart van Ingen Schenau, Dan Pichelman, enderland Jun 19 '15 at 13:07

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Nitpick: Ur/Web is not a programming language for web programming. Ur is a general purpose programming language, Ur/Web is a web framework written in Ur, which takes advantage of Ur's type system to provide static guarantees about the safety and funcitonality of the web application. (To be fair, though: Ur was specifically designed to support Ur/Web.) – Jörg W Mittag Mar 14 '11 at 11:32

I'm the author of Ur/Web. I just created this account and so don't have enough mojo to respond to other past responses.

Ur/Web allows plugins to implement different web protocols, so, if you want to see some other protocol besides CGI, FastCGI, or HTTP, you may be able to implement it, or ask me to implement it. :) I genuinely haven't been aware to this point of any alternative folks were looking for.

What does it mean for SQL programming to feel "bunched up"?

Re: complaints about "Web 1.0" look, I think of that as a feature designed to save time for people who don't really want to be using this language. ;) There are no missing features that I'm aware of which prevent writing applications that look however you like, and I believe this is apparent once you grok the basic set-up of the language and libraries.

Finally, ScantRoger, I'd love to hear about your experiences applying Ur/Web with a client! I don't know if it would be bad form to give my contact information here, but there's a link to my personal web site at the bottom of the Ur front page.


We've used it for a security-conscious client and noted the following:

  • As a language, it's a pleasure to work with. We didn't feel the ML-based syntax is particularly verbose compared to Haskell.
  • There are precious few how-tos outside of the demos and documentation provided on http://www.impredicative.com/ur/.
  • We've been spoiled that many other languages now have faster interfaces to the web server. Using FastCGI felt like a step backward.
  • SQL programming felt a bit bunched up.
  • Brush up on your math to fully understand what the language/framework does for you.

Any negatives can be attributed to the fact it's brand new. Give it some love. It deserves it. Maybe you can become a vocal advocate and making finding Ur/Web resources less of a chore.

  • Maybe you can comment on Adam's reply and explain what "bunched up" means? Thanks in advance. – Janus Troelsen Jul 3 '12 at 18:34
  • Also, what would be the "faster interfaces to the web server"? As far as I know, FastCGI is one of the fastest (more optimized) protocols to exchange HTTP request / response data. Nginx's support for FastCGI is inferior to none, and in fact most modern PHP setups (for example) are Nginx + PHP-FPM over FastCGI. (Or maybe this answer had a meaning back in '11…) – Tobia Jul 7 '15 at 16:59

The one thing I would worry about is that it is still pretty new. Haskell and Erlang have both been around for a long time. This means that a lot of the easy bugs in both languages have long since been worked out. I would be very skeptical that their code is as fast and safe as you can do in haskell for that reason.

Also the demos looked very web 1.0.

  • Yea I agree the demos look a bit primitive. But if it has the same level of power as Haskell, I believe there will be more features soon. I was also skeptical at the "more efficient than typical C" part. But this work is pretty impressive if everything was really done by just 1 person :D – Phil Mar 14 '11 at 7:57
  • I will take a longer look at some point, hell I hope they do well! More frameworks and people trying new stuff is always good – Zachary K Mar 14 '11 at 8:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.