Hi,
I fully agree with your API suggestions, but I do not quite understand why
you say that it is because of the scripting that the API does not look like
this. It's the opposite I think.
When you "script" you want as succinct as possible (so, no moveBehind: and
stuff). And you want to gradually add details and not be forced to specify
them from the very beginning (so, good defaults). In fact, the rule of
thumb that I argue for is that a good scripting (and in fact any API)
interface is one that allows you to make a difference with any new line of
code. That means that, ideally, we would want every line to be able to live
on its own and not require another one. It's obviously not always possible,
but I find it helps me when I grow an API.
Cheers,
Doru
On Sat, Mar 21, 2015 at 12:23 PM, stepharo <stepharo(a)free.fr> wrote:
Alex
Roassal is really cool now I have one question
why we cannot say
serie1pointsAndVariations :- given
series2pointsAndVariations := given
RGrapher new
axisX; axisY;
seriesWithDeviation: {serie1pointsAndVariations .
serie2pointsAndVariations};
maxXAxis: 100;
My point is why the line connection is not hidden from the user.
I think that roassal is a cool scripting engine but it got ***trapped***
there.
A primary user wants to have abstractions
Then in a second time he wants to open the trunk and script its own.
also why don't you have nice default
dec := RTDevVarDecorator new.
dec moveBehind;
desviation: 0.5;
color: (c alpha: 0.3);
points: pts.
=>
dec := RTDevVarDecorator new.
desviation: 0.5;
color: c;
points: pts.
why the decorator should be added to the builder?
So see what I mean why do you expose to the user all the design challenges?
I strongly suggest that during 1 month you stop to think in term of script.
Imagine that you do not have a workspace anymore.
Stef
On 20 Mar 2015, at 22:18, Alexandre Bergel <alexandre.bergel(a)me.com>
wrote:
Dear all,
As many of you know, Grapher is a über-cool charting engine, part of
Roassal.
For people who do not know what Grapher is, here is a (compelling we hope)
example:
<Screen Shot 2015-03-20 at 6.12.22 PM.png>
Which is obtained by the following script:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| b colors points ds pts dec lb |
b := RTGrapher new.
colors := Array with: Color red with: Color blue.
points := OrderedCollection new.
colors do: [ :c |
ds := RTStackedDataSet new.
pts := ((1 to: 100) collect: [ :i | 50 atRandom - 25 ]) cumsum.
points add: pts.
ds points: pts.
dec := RTDevVarDecorator new.
dec moveBehind;
desviation: 0.5;
color: (c alpha: 0.3);
points: pts.
ds connectUsing: (RTLine new color: (c alpha: 0.5); width: 1 ).
b add: ds.
b addDecorator: dec.
].
b axisX; axisY.
b build.
lb := RTLegendBuilder new.
lb view: b view.
colors doWithIndex: [ :c :i |
lb addColor: c text: 'Series ', i printString ].
lb build.
b view @ RTZoomableView.
b view
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
In our grand vision of making Roassal the best visualizing engine of the
Universe (we also know to be modest time to time, but not today :-),
Grapher will play a very important role. We would like to stabilize Grapher
and make it sure it happily fits everybody needs. You can help on it:
- When you are tempted to look at the dark side of the planet (this is
where R, JFreeChart, gnuplot, D3 and all their friends live), let us know.
We will make sure to make you are happy again.
- Share your wishlist with us. We already have a long todo list, but
your opinion does matter and will take it seriously
- we are open to contributions, which could be financial, bug fixe,
enhancement, or simply encouragement.
I am very happy to be surrounded by very smart engineers. Your
encouragement are making them happy :-)
Cheers,
Alexandre, in the name of the Object Profile Team
NB: sorry for the cross-list posting, but this email is very important for
us, and for you we hope.
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
vwnc mailing list
vwnc(a)cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc