Increasingly less - and in contrast the amount that could be done in LC instead 
of C++ continues to increase (far more slowly than I'd like - but hey, if 
wishes were horses...)

Indeed, a lot of the 'heavy lifting' seen in the engine comes down to either 
the core abstractions which the LiveCode script language requires (i.e. the 
VM), direct access to C exposed APIs, or for speed.

For example a lot of 'compound' operations such as the set operation commands 
can be implemented in LCS - indeed it is a very readable way to define their 
behaviour - but become far more effective for large arrays if done in C++ (i.e. 
for optimisation purposes). Although that is largely because we don't have a 
native code compiler for LCS.

LCB has started to provide more of what is needed to 'get away from C++' - 
admittedly its performance is not great as yet, but for its current purposes it 
is more than sufficient. In particular, UI elements generally require little 
'hardcore' performance - just rendering and property marshalling; similarly, 
wrapping system and third-party APIs to the level where they are 'more natural' 
in LCS mainly just requires appropriate type mapping and indexing of objects 
(enter LCB).

LiveCode Script is a complete programming language in its own right; it lacks 
direct access to third-party APIs certainly, however it is perhaps surprising 
how much outside of user interaction related tasks require that. Even in 7+, 
it's speed is perfectly reasonable for 'reasonably sized' computational tasks 
(for certain types of thing it is actually much more memory efficient due to 
copy on write being used for values - which increase the memory size of tasks, 
if not speed).

As a mode of expression of algorithms, it perhaps start to approach Knuth's 
idea of 'literate programming' *without* using a blended typesetting + code 
approach (which is how TeX and MetaFont are written, for example).

So, if for that reason alone there's rarely harm in writing something in LCS 
first, and *then* taking to rewrite critical parts in a lower level language if 
required for speed reasons.

Warmest Regards,

Mark.

Sent from my iPhone

> On 2 Aug 2017, at 13:50, Klaus major-k via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Hi Richmond,
> 
>> Am 02.08.2017 um 13:43 schrieb Richmond Mathewson via use-livecode 
>> <use-livecode@lists.runrev.com>:
>> 
>> " remember that LC is made with LC, so everything in the IDE is a stack 
>> resp. scripted and can be modified!"
>> recently claimed by someone elsewhere [Hi, Klaus :) ]
> 
> hi mate! :-)
> 
>> BUT: it that really true?
>> Why do I have a funny feeling that a lot of the "heavy lifting" is done with 
>> C++ ?
> 
> Yes, that is true, except for the engine and its functionality which is made 
> with C++ or whatever.
> 
>> Richmond.
> 
> Best
> 
> Klaus
> 
> --
> Klaus Major
> http://www.major-k.de
> kl...@major-k.de
> 
> 
> _______________________________________________
> 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


_______________________________________________
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

Reply via email to