World: r3wp
[!Liquid] any questions about liquid dataflow core.
older newer | first last |
Pekr 5-May-2009 [1045] | Maxim - would it be possible, somehow, to mix Liquid with VID 3.4? Or does it go so deep, that you have to use your won even processing, hence you start at View level, not using VID at all? |
Maxim 5-May-2009 [1046x9] | liquid is a kernel. its goal is to manage processing, by using messaging and state at the atomic level. so it can be used by anything, anywhere. |
I use liquid in VID in R2 almost exclusively. | |
but in a sense, API's like paint alleviate a large part of the need for VID. cause the dataset is actually "aware", it doesn't need someone controling it... in fact its aware at such a granular level, than it can actually prevent the majority of processing from happening. | |
all you need is a controler which knows what the system is "supposed" to do, set it up... and leave it to run by itself. | |
in the app I am building right now, I'll give you the best example of how powerfull dataflow can be. after developping a complex and interactive canvas, with animation, and stuff... a new spec comes along, that basically changes the coordinate system of the whole engine!!! | |
usually, you'd need to rebuild the whole system to take the changes into account, or backtrack all functions which interface the coordinates and make sure everyone is using the same values... etc. | |
with liquid, because the system is explicitely defined and dependencies are all resolved at the smallest resolvable value, It took me 4 lines of code to reburbish the whole application... all I needed was to add an an offset to the coordinate system and connect it to 2 other plugs... and every single part of the system now was receiving modified values. | |
we have tried to run liquid within R3 an it crashes rebol... but I didn't have time to figure out why, its a pretty complex object. but I will have to look at in sometime this summer... the simple 10X speed gain of AGG is enough to make it worth, especially since gobs provide internally of what paint simulates in R2. | |
now if Carl is interested in working with me on making this a reality, I will definitely give some time to the effort. even if we only use liquid for some part of VID it would make a lot of stufff SOOOO much simpler to write afterwards in application, and lazy programming really pays off in terms of economies of processing. in my application, rendering 1 graphic or 100 cause no more processing in most circumstances! only the AGG aspect of things slow down. | |
amacleod 5-May-2009 [1055] | I'm in the middle of that very problem (changing an aspect of my interface and having to go through every function that is affected and change them). What you describe sounds awsome. |
Janko 5-May-2009 [1056] | I also looked few times at this, it seems very interesting but I also didn't "get" it :) I will keep trying |
Maxim 5-May-2009 [1057] | liquid is like the distant philosophical cousing to parse... its strange, magical, makes wonders, but its hard to "get" . ;-) |
Mchean 5-May-2009 [1058] | what is the problem domain that you are trying to solve with Liquid? Maybe that would help |
Maxim 5-May-2009 [1059x3] | applying dataflow to all aspects of computing, not just specialised vertical markets. |
ultimately, to allow all liquified code to interconnect as one seamless system. its already starting. Once I have the network plug done (relatively easy but not yet a priority), things like the collaborative text editors are going to be trivial to code. I am already working on a collaborative paint concept. where we all draw and manipulate the same canvas without locking! | |
I even want to allow several people to play with individual CVs of a single shape concurrently... its actually harder not to allow it than to let it happen! | |
Janko 5-May-2009 [1062] | hm.. sounds mega interesting, I really need to dig into this a little more :) |
Maxim 5-May-2009 [1063x2] | me too ;-) |
ok I'm changing color for my nick... its going to "reflect" my constant ramblings about liquid. | |
amacleod 5-May-2009 [1065] | How inter connected to rebol is LIQUID...meaning, does rebol make it easier to do this or could it (has it) been done in other languages? |
Robert 6-May-2009 [1066x5] | Max, you have a communication problem. A lot of people are interested but "don't get it". If you want more people to give it a try you need to make the entry very easy. Questions and things I see: |
1. Out of the box example: Download, start, works. No special tools, configs etc. | |
2. Simple wording and naming scheme, everything else just confuses everyone. (Your wording is not logical). | |
3. The whole data-flow stuff should be like a plug-in into existing R2 code. So I just want to take a simple VID based example, attach the dataflow stuff and give it a try. | |
If liquid forces me to use your adapted VID, include-system, libraries etc. your chances are low that I can make use of it. | |
Pekr 6-May-2009 [1071] | This si very well said, I could not say it better :-) |
Maxim 6-May-2009 [1072x4] | 1. liquid needs no config 2. the naming IS very logical. 3. impossible, liquid is a kernel, you cannot plug liquid Over, you have to build tools with it. and NO I don't force you to use anything cause I don't use it myself. all of my graphics work, even glayout has always been using VID. Using face/init face/action face/feel of standard vid gadgets... the blood example of liquid on rebo.org is such a VID example. 4. liquid has never forced you to use any adapted VID, using slim is one line of code, no "config and install required", liquid isn't even graphics related. |
getting liquid has nothing to do with all of this... its the paradigm which is complex. | |
could you imagine writting an application without loops and ifs as the basic control structure? | |
there is one thing which liquid needs right now is more examples, more tutorials, but even more, its more liquified modules. | |
Maarten 6-May-2009 [1076] | Sure, can't you? Or using no assignment? |
Maxim 6-May-2009 [1077x2] | that's how liquid works. |
(no assignments) | |
Maarten 6-May-2009 [1079] | See, you're getting it :-) |
Maxim 6-May-2009 [1080] | hehe. |
Maarten 6-May-2009 [1081] | One mind trick per evening... latr ;-) |
Maxim 6-May-2009 [1082] | liquid is so low-level, that it could replace the basic datatypes themselves, I we could code accessors like in python. using python, I can build a liquid which replaces the core datatypes and makes it completely invisible. this is not possible in R2 and I'm not sure accessors will be as open as they could in R3, time will tell... at least brian seems to be on the same page as me wrt this. |
Maxim 7-May-2009 [1083x3] | amacleod: I missed your post... just noticed it... don't know why... the color makes it stand out... ' :-/ |
rebol is a pretty closed language in the sense where there isn't much room to change rebol itself. you can obviously replace functions, but not the real heart of the engine, the datatypes. Other languages like python let you have access to the complete internals of the language. This is often related to class usage, for which it is easier to provide hooks and callbacks. rebol is a language which doesn't promote objects as the core paradigm, its much closer to imperative programming than most "recent" languages. R3 was/is? supposed to let us build our own datatypes, and has been reported as eventually providing for some level of accessors for objects. This will make it easier to integrate tools like liquid seamlessly. | |
I often feel like there is a bridge to cross when using liquid. on one side, you have object and imperative code which needs a management layer over it, and on the other side, you have code that is more "aware", it is self-managed. It knows what is going on, you tell it in advance what it should and then let it work on its own. the hard part is to cross the bridge, both in understanding HOW to use dataflow effectively (and that's not related to the name of the functions ;-), and then there is the actual coding where you'll pretty much always have to bridge the gap between parts of an app which are dataflow and those that aren't. | |
Robert 7-May-2009 [1086x3] | Max, I get all this. But how about using the normal graph notation: nodes and edges, direct, undirected, cycles etc. |
Then extend it by Petri-Net notation using Tokens, Colors etc. | |
I'm pretty sure your concept maps to this. | |
Maxim 9-May-2009 [1089] | one reason is that it doesn't map 1:1 plugs are both edges and nodes, for example. |
RobertS 22-May-2009 [1090] | . |
Maxim 26-May-2009 [1091] | a small liquid news tidbit. liquid-paint is now being used as the core engine for two new commercial apps, one is going to be based on paint-lab, my up and comming vector paint app, which is already working pretty well. |
Janko 27-May-2009 [1092] | can we try or see liquid-paint anywhere :) ? |
Maxim 27-May-2009 [1093] | it will be online this week-end... as part of the roll-out of my web site. |
RobertS 27-May-2009 [1094] | congrats ! |
older newer | first last |