Widget properties

Richard Gaskin ambassador at fourthworld.com
Wed Apr 6 21:25:58 EDT 2022


Monte Goulding wrote:

 > It seems a stretch to imply the lack of support for a property that
 > has little to no use case outside the IDE means the company doesn’t
 > take widgets seriously but I’m not going to argue with you about that.

A reasonable choice, given that "seriously" is a colloquialism with no 
specific quantifiable meaning.

Here I used it to try to elicit LC's vision for widgets.  I had the 
(quite possibly mistaken) notion that widgets were a way to craft 
reusable controls that would look and feel like engine objects, but with 
the advantage that they could be created from a scripting language.

We see many queries here about messages common to all other controls not 
working with widgets, and now and then we see queries about properties 
and functions too.

"The properties" is just the latest of these, and your view of that here 
is helpful:

 > I will say there’s two main use cases for `the properties` and neither
 > of them it serves very well:
 >
 > - Getting the properties of an object to apply to recreate the object
 > elsewhere. export widget does a much better job of this and was
 > designed specifically for that use case.

Can you help me understand how it's better than "the properties", and 
why this superior method isn't used for engine controls?


 > - Introspecting what properties an object has in order to create an
 > editor without maintaining your own lists of properties. It has never
 > been good at this. It doesn’t tell you anything about acceptable
 > values for those properties, it doesn’t tell you the importance of
 > the property, it doesn’t tell you about alternative object properties
 > that may be more useful to edit (text, styledText, htmlText, rtfText
 > etc) or whether it’s potentially risky to present a UI that can edit
 > it. Really this use case is served best by a well documented library
 > that covers all objects. Currently you would need to dig the details
 > out of the IDE scripts

That seems to answer the first question, though while the metadata about 
types and options is useful for some things, it would still be useful to 
get just the name-value pairs as "the properties" does.

That the company has such a narrowly specific view of the applicability 
of "the properties" is indeed helpful. Thank you for chiming in.

I use "the properties" in a great many things, even outside the IDE 
tools, though those are about half of everything I've been doing as one 
of the few people outside the company working full-time with LC for as 
long as I have.

Much of what I do is bespoke authoring systems, and frequently they're 
implemented as plugins.  This is something I love about xTalks, and the 
SC/MC/LC philosophy that's driven the post-HC world. SC's Bill Appleton 
summed it up well when he once said:

     "HyperCard is a multimedia authoring system. SuperCard is a tool
      you can use to build multimedia authoring systems."

For myself, and a good many others I know, the value of making tools is 
not limited to the IDE team, but a core value and key differentiator of 
choosing LiveCode.

I have lot of ways to make software. But few of them let me redefine the 
workflow as flexibly as an xTalk. And no xTalk has been as flexible as 
LiveCode.

It's like the difference between a drawing program and a scriptable 
drawing program, or between Wordpress and Drupal, or between a sculpture 
and modeling clay.

I appreciate your team making an IDE, but for most of us who make our 
living with it it's only part of the toolset we use.


On the more consumer-facing side which may better fit a view in which 
tooling is seen as for the engine team only, consider styling:

When we set "the properties" of an object, it affects only the keys 
present, leaving everything else alone.

This means we can make arrays with any subset of relevant attributes we 
want, and apply them almost like style sheets with just one line.  We 
can even save these prop subsets to disk as LSON files if we like, so we 
can reuse them, mixing and matching from screen to screen and project to 
project as we like.

In fact, using "the properties" has become such a habit across so much 
of what I do I have to admit that I need to think about it to list them 
all, in the way a fish struggles to define water.


Arrays are a great foundational data type, and being able to express 
controls with them efficiently and uniformly is a godsend.

 From my perspective, perhaps no less limited than someone who works all 
day on the IDE but coming at it from a different angle, the question 
seems less interesting as "Why is this useful?" than "How could it not be?"


Let me simplify the question:

How hard would it be for the team to map the existing means of 
extracting widget properties to "the properties"?

-- 
  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  ____________________________________________________________________
  Ambassador at FourthWorld.com                http://www.FourthWorld.com



More information about the use-livecode mailing list