Well they do say 'out of the mouths of babes'. At the very least it helps us to reinforce the fact that 'we' have a purpose :)
Warmest Regards, Mark. Sent from my iPhone > On 2 Aug 2017, at 23:33, Richmond Mathewson via use-livecode > <use-livecode@lists.runrev.com> wrote: > > That's a very good explanation, > > Thank you very much indeed. > > I had a "small problem" with a teenager in my programming classes who asked: > > "If Livecode is written using C++ why don't we just bypass Livecode > completely?" > > Which prove that his English is up to a high standard :) > > I found a book in a junk shop that was an introduction to C++ and sent him > home with it and asked > him to start teaching himself C++ and to duplicate the simplest exercise > stacks we were doing in the classes. > > On the Monday he turned up with a big box of chocolates for me and an apology. > > I will be forever grateful to the Livecode team that they have saved me from > having to learn C++. > > Richmond. > >> On 8/2/17 9:07 pm, Mark Waddingham via use-livecode wrote: >> 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 > > _______________________________________________ > 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