[plt-scheme] off topic: FlapJax vs Backbase
Dear Shriram,
Thanks for your prompt reply. I had some discussion
about this with a colleague at work. His argument was
that Backbase had a language on top of javascript.
So I told him I'd consult the expert on this :-).
--Hans
Shriram Krishnamurthi schreef:
> Hi Hans,
>
> Backbase and Flapjax are very different beasts.
>
> The simplest way to think of Backbase is as:
>
> - a set of widgets that make screen content prettier (but also make
> programs a bit "heavier" -- now you're learning a new widget set
> rather than dealing with plain HTML + CSS)
>
> - a new event model on top of the JavaScript/DOM model
>
> - a half-baked set of programming primitives, expressed in markup
> (<if>, etc.)
>
> We do not provide new widgets; we like HTML + CSS. We don't create
> yet another event model. And we give you a real language for defining
> your own abstractions.
>
> So that's what Flapjax is not. What is it?
>
> Flapjax is driven around the observation that interactive programs are
> programs that must react to changes: from servers, from users, from
> devices, etc. The DOM, for instance, keeps changing over time, and
> the goal of a client-side computation is to describe and transform the
> DOM's contents. We therefore built a natural model for programming
> such description and transformation.
>
> Hence Flapjax is built around the idea of reactivity: describe outputs
> as functions of their inputs and, if the input changes, the output
> automatically updates. This requires propagating information, making
> sure you do not cause inconsistencies, and dealing with a dozen other
> more subtle issues. Therefore, relative to Flapjax, Backbase and
> other programming models suffer from the inability to cleanly describe
> how things should look (views) and be (models) and leave it to the
> language to ensure that's how things are (controller).
>
> Flapjax is more than just a client-side programming language. We see
> that the main use of Ajax messages is to propagate state changes to a
> server and receive updates to the state. Flapjax therefore provides a
> server interface that is also time-varying. As a programmer, you
> indicate what value you want saved on the server, and what value you
> want to have reflect the content on the server. If the former value
> changes, the runtime propagates the change to the server; if the sever
> value changes, the latter local value is updated, triggering a
> recomputation in the rest of the program to reflect this change.
>
> To get users off the ground, we provide a server. Therefore you can
> get up and running with server-side persistent data in moments, just
> by registering on our site. You can also host your app on our site.
>
> Once you have data on a server, it is natural to want to share it (as
> is done in Google spreadsheets, etc). For that, the Flapjax server
> offers a Sharing Console wherein you simply indicate whom to share
> data with by providing an email address; the server takes care of
> authenticating them. When you share, you get to also dictate an
> access-control policy (who can read, who can write), and the server
> enforces this policy.
>
> There is one more important part of Flapjax. We want you to be able
> to easily access data from third-party Web services, RSS feeds, etc.
> To that end, Flapjax provides a well-designed API for connecting to
> Web services; if necessary it converts their responses to JSON, so you
> only ever deal with JavaScript values and never get cuts on your
> fingers by accidentally handling <pointy> <objects>.
>
> Cheers,
> Shriram
>
>