LC 8 Property Inspector

Mark Waddingham mark at livecode.com
Tue Oct 13 03:16:33 EDT 2015


On 2015-10-12 22:31, Richard Gaskin wrote:
> That's an obvious option if we assume there must be only one IDE.  And
> from the company's perspective that's a useful assumption, at least in
> as much as they need to provide at a solid basic toolkit to accompany
> the engine.

Well, the engine is pretty useless in isolation without tools to be able 
to build apps with it (unless of course you are happy with restricting 
yourself to script libraries and using a text editor - which whilst 
appropriate for some endeavours, for most purposes it would be extremely 
tedious).

> I've been using my own tools within every xTalk IDE I've used, and as
> long as frontScripts work and we pass messages as good citizens do,
> there's an opportunity to have LESS dependence on a large IDE
> framework rather than more.  Or if we were to be thorough, a fairly
> slender one.

I think you might be confusing 'IDE' with 'IDE Framework' here - they 
are two quite distinct things.

> Tools can be entirely self-contained and fully interchangeable, even
> open at the same time, using nothing more than what the engine has
> provided for years.

Really? Are you sure that is true?

So you would have every 'application browser' type tool implement its 
own code for monitoring for changes in the user stacks, and for 
collecting all the data about the objects in user stacks?

You would have every 'tools palette' type tool implement its own code to 
go digging around on disk for all extensions, listing, enumerating and 
providing an ability to create them?

You would have every 'documentation palette' type tool implements its 
own code to go digging around on disk for the content it needs to 
display, and then its own code for processing that content into the form 
it wishes to display?

You would have every 'standalone builder palette' type tool implement 
its own code for building standalones?

You would have every palette which wants a button on some sort of 
'launcher stack' have to understand how every 'independent' launcher 
stack needs to be told to add its button?

And assuming you would have that, how do you ensure that all these 
components which can be used in a 'fully interchangeable' and in an 
entirely 'self-contained' fashion don't actually interfere with each 
other to the detriment of the user stacks they are acting upon?

In order for any system to work where you can plug-and-play components 
from different sources you need to have a common basis of communication 
which provides the basic services all the components need to ensure that 
they can be used together in the same environment without conflict. 
Also, you need to ensure that said set of basic services is rich enough 
that those that wish to write such components don't spend most of their 
time re-inventing the wheel and can focus entirely on the purpose of 
their component.

Now, I see that you appear to regard the 'engine' with some sort of 
magical prowess. Indeed, it does provide a 'standard' interface to a 
common set of functionality that is exposed through its object model and 
syntax; however, I'd assert that the engine's interface is not at a 
high-enough level right now to give you what is needed for what you 
dream of in terms of the 'bit that binds all these decentralised built 
components together'. Thus any solution which provides the above 
'nirvana' in terms of interchangeable tools will end up relying on a 
collection of script libraries which everyone's tools rely on and use to 
ensure they can all co-exist together - i.e. you end up with precisely 
the IDE Framework that I've been talking about.

It is important to remember that 'framework' means precisely that - it 
is scaffolding, policy, and ancillary services. A 'framework' is just 
there to ensure that everything works together for its particular end 
purpose - and good ones interfere as little as possible with the actual 
action of the components which sit within them.

Ideally, of course, the 'engine' would provide such an appropriate 
high-level interface - a strong API - for tools written by disparate 
parties acting together in a single environment to give users complete 
choice in their toolkit for creating LiveCode applications...

... Sounds like a good way to approach that (given how much faster it is 
to write LiveCode Script than C++) would be to provide the engine with a 
standard set of script libraries which present a suitable high-level 
interface for building IDE Tools to ensure tool writers (including 
ourselves) can easily build tools...

... Which is rather like what we've been working on in the LC8 IDE ;)

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list