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