[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