Roland Huettmann wrote:
> It is a very nice approach that Curry already realized: and it is
> available:
> http://curryk.com/ck-num-format.pngn better
That does look very nice indeed. If that formatting is factored in a
way that would lend itself to a generalized behavior script for fields,
and if Curry or Hugh were inclined to contribute some existing code it
would help the project get a running start.
> But what I do not yet understand is how to make a joint effort with
> hundreds of developers ))) available to ALL of us in practical terms
> seamlessly.
In more popular languages like Python or R, or pretty much any open
source tool (among programming languages that would be nearly all of
them), what we commonly see is one person with an itch to scratch writes
a something to fit their needs, posts it to a code-sharing repository
like Github, and others come along an augment it. Over time it grows
into an ever more mature, robust, general-purpose solution, but even out
of the starting gate it's useful, and only gets better over time.
A small project of this scope wouldn't need hundreds of developers. I
can't imagine more than half a dozen contributing to it. Most of the
coding could be done by one person in less than a day.
Where more eyeballs may be most useful would be in the design. The
property names need to make sense, and ideally there would be ways to
use this for list columns in addition to individual fields, so we'd need
to come up with a sensible way to handle that.
We'd probably want to ask ourselves if this should be a function or a
property?
As a property it feels most natural, applying formatting specs to a
given object. But there are tradeoffs there, including being able to
have only one behavior script applied to an object, and the issue with
getProp and setProp being unreliable in any environment in which the
lockMessages might be set to true.
As a function it would be far simpler to design, but would require the
user to code for it, rather than having it be a property you set once
and never need to think about it again.
There may be other options too.
And the choice of whether such a library be written in LC Script or LC
Builder. The latter offers direct support for documentation and
Inspector options (though it would certainly be useful to see those
options available for LC Script as well, though that's another discussion).
We could brainstorm those design aspects here and now if we want.
> For any newbie and for those using formatting all the time, do we
> have to load a separate library or would it be supported out of the
> IDE? For example, could the numberFormat or format() functions be
> overwritten so that simply using LiveCode Script it would work the
> way we defined and this out of the engine?
By design LC does not allow overriding built-in functions the way
HyperCard used to. When I asked Dr. Raney about this decision, he asked
me to observe the execution speed difference between the two, and noted
that his token table was kept very trim with this decision. He also
invited me to come up with a case in which it was truly necessary to
override built-in functions as opposed to using a new name for the new
function. In all these years I couldn't come up with one.
So in short, I think a new name for new functionality may be best.
> Or is it a new function? And could it be shipped with the product if
> approved? Again, we are thinking of Excel style formatting that any
> user, even non-programmers, often enough know about.
To be included in the LC install it needs to be good, and if implemented
as a function it may perhaps eventually be included with the other
handlers currently in the revCommon lib.
But that would require that it be field-tested, so early adopters would
first use it as a library or behavior they download and install.
It may be that the engine team may later borrow some of the design from
the scripted version for inclusion in the engine. But until Mark
Waddingham posts "Yes, we have time and will do that this week" we'll
need to consider options that aren't dependent on the engine team. And
as Curry and Hugh have shown, these things can be done by a single
person in script, valuable even as add-ons.
[I was tempted to write a rant about package managers here, about how
every popular language has one and we don't, and the relationship
between platform adoption and the ease with which one can find and use
extensions.....but that's probably best left for another thread.]
> Is there any guide telling that such LiveCode Script following certain
> style and rules and using the best performant way will be accepted as
> "quality code"?
At the bottom of the "Contributing" page for the LC code base there are
links to C++ style guides:
https://github.com/livecode/livecode/blob/develop/CONTRIBUTING.md
I don't know of such a guide for scripted contributions. That would be
a good addition if anyone here wants to work with Panos or someone else
on the team to draft that.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
ambassa...@fourthworld.com http://www.FourthWorld.com
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode