[REBOL] Re: RebGUI or GLayout
From: moliad:gma:il at: 20-Dec-2007 1:21
wow!
such passion... and Glayout is at the core of all the dilemma :-)
I won't reply to single mails, cause there are too many, but here is my
general (long) response:
to Pekr (and onlookers ;-):
--------
I'll start by saying that I'm not in any way under any sense of "attack".
you and I are critical people and use strong words in our language. There
is a term called perceived quality, which is what you do not feel with my
stuff. Some of that is my own fault, I'll agree to that, but some of it
also due to your ignorance of what I have done and what really is
available. The fault I might give to you is about having written a few
things which are not quite true.
REBOL is not my life. like nick, its something I do within my life. Maybe
you don't perceive that the fact these tools exist is not about trying to
make REBOL better. REBOL allows me to pursue my own vision more quickly.
yet I have decided to give back to the community some of the usefull code
which has resulted from my work.
its obvious that you never followed any of my development seriously, cause
you'd know that my web site is updated at least 2 to 3 times a year. you
would also know that it has moved and HAS been updated this spring, again.
GLayout is also not my main programming venture. Its a necessary tool I use
everytime I do an app, that's really all it is.
I have stopped coding in general as a hobby after the devcon, for many
personal reasons...
some of which have led me to a burn-out, of which I am currently
recuperating at home, playing music, composing mostly, helping me hunt a few
deamons out of my soul. this said, elixir and remark development has
continued a bit and is about to resume in much more vigor in a (very) short
while.
I have stopped actively developping GLayout, because it now is mature enough
not to really need anything more in general for my useage of GUIs, and
because of the community in general.
Your mail was the perfect and penultimate example of what is wrong in the
community IMHO. STEEL was one of the first attempts at gathering the
community. I am the very first person to have believed in REBOL
capabilities in PITL programming and strangely, many aspects of R3 which are
not a binary limitation of the basic architecture, are ALREADY AVAILABLE
within the STEEL toolset. And have been for a while.
I'll explain these again, while on my web site its very clear, each section
has an introduction, some stuff is not released, cause there is much effort
in releasing things, and unless real demand, I've got other places to put
energy these days:
-STEEL: a set of tools, a web site. apis and apps or demos which help
programmers and rebolers, in general. Originally setup as an effort to get
people to get to work together adding to and fixing some of the stuff in
REBOL, bad timing, my choice of licensing at the time, and the general
culture around REBOL had prevented the idea to pick up. so I removed the
concept of collaboration from steel. Its still there, really, I'd love to
have a few people actively helping me out on adding new features to every
api and tool, I have, but alas, everyone is busy with his own stuff I
guess. REBOLers tend to be invetors and technophiles, so its in our nature
to be our own chiefs. I have accepted this fact for a long time.
-SLIM: managed library modules with explicit identification of api (lib
exposing). versioning, multiple cascading path resolution (3 different
setup possibilities, including one which needs none!), codependent libs,
multiple load prevention, resource dir management, advanced indented and run
time switcheable verbosity (per module), linking which retains ALL aspects
of this architecture even if the concept of "current" dirs is completely
different from app to libs, and more.
-GLayout: an advanced VID extension which solves most but not all of the
problems in VID, all integrated into one (large, I admit) library, including
many nagging issues like per character keyboard trapping, non-focused
cascading scroll-wheel events (similar to event/detect concept), a very
capable layout engine which even prevents resizing in one single direction
(vertical or horizontal) when none of the content of that window needs it.
It has quite a few styles built in, but since its based on VID... come on,
its so easy to make your own... From its onset, GLayout was never intended
at being the largest style gallery. it was meant as a collection of
enabling functions, technologies and tools, allowing people to leverage them
and build up their own collections (which I am more than eager to put back
in). Most if not all of Henrik's and Anton stuff can be merged within
GLayout, and indeed, I have done some integration and its pretty easy.
-Liquid: technologically capable implicit dataflow procedural core. it
supports A Lot of features, several processing models merged into one single
run-time polymorphable class, and is VERY simple to use, and scales better
than any other rebol construct I have used before. I have systems that have
10000 nodes allocated and the system is still responsive, not even consuming
10MB of ram. it can scale to millions of nodes(but stretches rebol's
capacity at this point). obviously, the fact that a single full screen view
refresh takes longer to perform than to manage the average largish tree,
wheighs heavily on any application in rebol, so for this reason, liquid was
never optimised outside of the intrinsic optimisation which lazy computing
offers, and frankly, so far, I have not needed more speed since the systems
I do outperform view and AGG by several orders of magnitude.
-GLOB(unreleased): Graphic Layered Objects. basically, R3 gobs in R2,
implemented a year ago, and a public demo was shared here and on altme just
before christmas (or was it the new year?). Implemented over the liquid
core using AGG Draw, allowing us to program ANY individual or grouped AGG
gfx as if they where Faces, including pixel-precise mouse-based detection,
focus integrated to VID, linked to a feel object which has more high-level
events like on-click, on-drag, or your host of on-down, on-up, etc events.
in fact, GLOBS are more capable than gobs, as a single GLOB can contain
several layers of graphics which can be interlinked to other globs
dynamically which also have several layers. Each of these layers can be
displayed individually or even separately, meaning that only a subset of
each individual glob will be processed and displayed which can save A LOT of
processing when its not needed. also, individual layers are not forced to be
displayed in their internal order.
liquidGL(unreleased publicly): a merge of GLayout and liquid which allow
your dataflow systems to integrate to a gui seamlessly. also, obviously,
since GLayout becomes driven by a dataflow system itself, it can interlink
within itself. This is augmented by the fact that the handling of such
things is done directly within the VID dialect. so setting a text field to
reflect a field is as easy as adding two words to your dialect: [myfield:
field vtext attach myfield]
remark: a VERY capable static web site building engine, which after having
used MS asp.net can indeed claim to be better designed, in some aspects. Its
management, is GUI driven, merges http and dialecting, uses an html based
dialect (using <>, not the rebol [] brackets), and allows TRUE code and
visuals separation. it can even do the whole recursive ftp mirroring to
your server in one click. actually, you can use remark to create parsed
file management in non html documents too, like graham has been doing to fix
javascript issues just before sending them off to a server. You could use
remark to manage ANY ascii file and provide functional style data parsing to
it. capabilities for handling multiple document formats is there(converting
makedoc on the fly for example).
work has started, integrating it within cheyenne as a module, making it cgi
capabale too, and rebuilding the whole kernel from scratch (now 10 times
faster, using managed parse) but time constraints mean, such "FUN" projects
stop and go. if any can pay me full time to bring these technologies to
par, they would be available within days/weeks in a production stable
capacity.
R3 addresses other issues, like data hidding, 64bit stuff, and many little
fixes whcih will make life easier for PITL dev. easier binary linking and
better internal graphics. mostly, these are capacity issues, but for me, R3
is a moot point, as frankly, with ladislav's powertools library and the
tests I have done using external libs in various ways, I can already do all
applications I want, a part from the visual internal limitations of view,
which hides too much of the OS from us, or doesn't provide enough low-level
Abstraction to it.
may I note that ALL of this is available NOW, has been used already for
years in some circumstances, is being used by clients, some even running
these things within a web-based application (browser plugin) speaking
asyncronously with MULTIPLE concurrent http servers AND an internal XML web
service, syncing stuff like altme in a multi-user real-time environment,
which might I add I was able to make completely invisible by using
stylesheets... something which would not have been possible with Rebgui
AFAIK.
so, pekr... where is the hype, the promises, may I ask ? can rebgui do all
of the advanced stuff GLayout can. no. This was all demonstrated at the
devcon, and in fact, Carl, was quite impressed by it and we discussed about
it. No Hype, just already available added value, which I am willing to
support, on this mailing list. In fact, if I had given support for it
*here* each time, I probably would have a lot more users, cause it would
have had public visibility. and some newbies would like the quick added
value which GLayout offers, dead easy install too. you can even make a
simple validation in your code and install all prerequisites for glayout
(including the proper version) to download it directly from rebol.org. my
GLayout demo, has it within, just to make it a one line download and run.
also, where in my reply to Giuseppe, did I ever say that Rebgui was bad. I
said that GLayout had a better layout algorythm, but then, simply went on to
state many of what it ALREADY adds to VID. nothing against Rebgui was
said. in fact, I was hoping someone from the Rebgui would step up and give
a similar heads up on what value it has over VID, which basically was all
Giuseppe was asking for.
then, can I ask, when did I ever say that GLASS (v2) was available,
downloadable, and when did I promise it would be done. frankly, I might have
given indications that some prototypes had been made, many tests, but I've
never made a web site showing off GLASS a part for the 5 year old GLayout
precursor I had done. Some of GLASS philosophy is within Glayout, some is
now within Elixir, as it has its own 100% independant gadget engine core
(based on globs) and indeed, there are yet other tests into this research on
building 100% dataflow driven gadgets, but still, GLASS although designed
and planned, has never been a product. it is something else, something
completely independent from GLayout. GLayout will not be better or worse
for the existence of GLASS.
also, you say nothing has ever been shown... well, you should have come to
the devcon, cause while in my demo, I did hear a few gasps when showing my
stuff, not the least elixir which is a hierarchical, graph driven
Programming interface. 300kb of REBOL code when linked, AGG interface trough
globs and glayout, "antidote" my own rebol interpreter for preventing any
side effects, and much more. my work is commercial in nature, and my hobby
is builing APIs, not apps. do you realise how many tookits I currently
maintain, and DO support? Sorry to say, but I have been delivering on my
toolsets for the last year. any inquiries are answered, support is always
one email away. I have a (rebol) user which started switching his medical
dentistry record and scheduling app to GLayout and its much more appealing
now.
I, like you, use REBOL, but I feel no religious zeal towards it. REBOL to
me is an empowering tool, simply cause its the most productive environment
in computing today . I am one of the lucky few who has done so
commercially, but do not think that my goal is to try and have a claim for
fame in the community. I give back stuff I do for myself and clients,
FREE. I am not RT, no one has given me a dime form GLayout, liquid and
remark, et al.
And for the record, it has been said to me that Rebgui has its own set of
issues. I don't want to do laundering here, but do not promote it as a
perfect godsend... nothing is perfect, not GLayout, not RebGui, and not even
R3 will be.
yet, thanks for the frank appraisal of what you feel GLayout and steel are.
If you do no yet "get" it, then its obvious, I must continue doing more
hype... about what it already is and provides ;-)
TO GIUSEPPE:
-------
thank you for the genuine and honest interest. I will upload the latest
version of all of my stuff for you on REBOL.org tomorrow, and I will add
liquidGL and glob too.
I think doing all of the support on this list will be the best way to raise
awareness. This should have been done every time a user wanted (or has)
used it, in order to show some "activity" about it... now I know.
Your idea about a wikibook is excellent. I would contribute to it, if you
can get it setup and are willing to add to it yourself while you get to
grips with GLayout (often the best time to document stuff, since oldies
loose the sense of what is not obvious). Hey, if others want to join too,
probably brian from rebol.org would too. Glayout has an internal function
allowing to snapshot a GUI (while its running), crop it and save it out
without need to resort to using an external application... this makes
documentation of any GLayout driven application or tutorial dead easy!
We can also use remark, which is infact much like a wiki dilalect concept,
but extensible and scriptable (outside of the page). Pages contain only
content, and all the page and site stuff is added on the fly, even the menus
are programatic.
I could send you notes on how we can collaborate on this, if you wish.
The Glayout demo (quicktour)
on GLayout's web site:
http://www.pointillistic.com/open-REBOL/moa/steel/glayout/index.html
you will see the GLayout demo app. try it out, it should give you a quick
tour of some of what is inside. (not liquidGL enabled though).
http://www.pointillistic.com/open-REBOL/moa/steel/glayout/glayout-demo.html
TO ALL:
------
thanks to all of you for rooting for me in my absence hehe. It actually
does me a good deal of good to my kharma today, to have read all these good
words oriented in my direction. Darn someone even labeled me one of the
guru
<gasp!> hehe.
thanks, very much. Today I feel like I've been given a measure of
recognition, and during my resting period, nothing could be better for my
(mental) healing.
CONCLUSION:
------
many of the issues which Graham had encountered a while back when he had
attempted to convert an application to GLayout (using an older version of
GLayout) have been integrated as per his feedback (later, when I had time).
And a lot of stuff lies within, unexploited by the masses. There ARE bugs
and limitations, obviously, but mostly on the more advanced and specific
stuff. Some stuff about the visuals have come up, many rooting for, and
some rooting against. this can be changed within your apps, and if there is
usage, I could add my old real-time external stylesheet (aka skins)
switching code back in. I've not had use for it myself.
There are no promises, just a tool which is there, used less than it should.
One thing remains, if there where more people at least willing to give it a
try for real, then issues would be uncovered and solved. I don't even mind
making a clean up of some stuff... but is there any point when no one is
really asking or waiting for it? its all working for me, so why bother...
I'm not being payed for putting 4 hours a day on GLayout, so I can't, even
less if that time spent will be as usefull as throwing a rock in water.
I've got kids to feed, and a life to live!
have fun!
-MAx