# from Waldemar Biernacki
# on Monday 30 November 2009 08:23:
>My idea is to build specific very-high-level language in which all
> application logic is written. This language should be reading by GUI
> and WEB engines giving similar application. It is interesting that in
> web area we have many such templates (although their code programming
> level is too low in my opinion - including catalyst) but on a GUI
> side they are very few (it should be written in wxperl in your case).
That sort of touches on what I'm doing with FreeTUIT, though the
high-level language is all about widget layout and event connection.
Some backend logic doesn't contain any Wx code, but when you get into
responding to user events you need rather specific code interacting
with the view (e.g. wxWidgets vs javascript+cgi.)
Note that FreeTUIT is intended mostly as a desktop GUI framework, but
I've been asked about whether it could do web apps and have been
thinking about how that might be possible.
There's a big gap between the two paradigms though because in a GUI app
you're not designing around network latency. I'm having a hard time
thinking of how those differences could be abstracted without crippling
the API in both use cases.
There's also a very limited widget-set in web applications as compared
to desktops. For instance, webapps would frequently use a submit form
for appending/editing tabular data where a guiapp would trivially allow
inline edits in the table. Similarly, the webapp would page the data
where the guiapp would easily have a scrollable widget that's lazily
populated.
In "traditional" (i.e. without javascript) webapps, you're basically
working in an "everything is a wizard" paradigm of stepping through
prompts and a rather sequential interaction -- pretty simple concepts
to map between a desktop and webapp. With ajax involved, you get to
juggle the widgets right in front of the user, which makes for a more
mediated experience. The trouble with automagically handling this
widget-juggling code in both webapp/desktop paradigms is not only the
javascript/wx API difference, but also that the code seems to naturally
factor into differently shaped components in terms of dealing with
what's in front of the user and recalculating/rendering data from the
backend.
Amusingly, there's a thread about "Qt on rails" happening over on the
kde bindings list.
Also amusingly, if "MVC" was a valid abstraction, this problem would
have been trivially solved long ago. :-D
--Eric
--
"It works better if you plug it in!"
--Sattinger's Law
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------