[Ur] A few questions

Adam Chlipala adamc at impredicative.com
Mon Sep 14 17:26:57 EDT 2009


nitralime wrote:
> **Where can I find more details about the architecture of Ur/Web 
> "framework"?

I'm not sure if I should interpret your message following this one as 
revealing that you hadn't gone through the demos before asking this 
question.  For now, I will assume that is the case and will give 
abbreviated answers, assuming that you've since learned what's basically 
going on with Ur/Web.

> Almost every web framework on the market enthuses about  the "MVC" 
> pattern.
> Each of them forces in someway a separation of content, logic and view.
> For a traditional data centric web applications such a separation of 
> concerns
> could be a huge advantage during development process.
> What is the ansatz of Ur/Web?

I'm strongly against MVC.  I want to design components that encapsulate 
entire pieces of web applications, without requiring you to go off and 
put "a template" in some filesystem path that you need to discover in an 
ad-hoc way.

That being said, the standard FP abstractions make it easy to implement 
MVC systems inside Ur/Web as libraries, retaining all of the static 
guarantees.

> As you surely know, there are also some growing tendencies
> towards SPI (Single Page Interface) and RIA (Rich Internet Application).
> For this sort of applications one needs a solid GUI toolkit.
> As far as I know there are two different approches for providing GUI:
>     1) using a prebuilt JavaScript GUI toolkit wrapped in some APIs
>         which in ideal case integrate seamlessly into the core framework
>     2) [[a subset of the framework's core language) --> JavaScript]] 
> compiler
>         which provides the GUI toolkit
>
> The first alternative can be "easily" realized by taking some web 
> framework and
> a decent JavaScript GUI toolkit like TIBCO General Interface, 
> Javeline, dhtmlx,
> Qooxdoo, (to some extent flapjax) etc. and writing some glue codes!
>
> The second approach is more fundamental. To the best of my knowledge
> HOP and Links are the only frameworks that implement it properly.

I've tried to design the demos and manual to make it clear that both 
options are possible in Ur/Web.  The compiler generates JavaScript for 
client-side code, and the FFI makes it possible to wrap JavaScript 
libraries.



More information about the Ur mailing list