Made with . . .

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Made with . . .

** Clarence P Martin ** via use-livecode
" 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 :) ]

BUT: it that really true?

Why do I have a funny feeling that a lot of the "heavy lifting" is done
with C++ ?

Richmond.
_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
Hi Richmond,

> Am 02.08.2017 um 13:43 schrieb Richmond Mathewson via use-livecode <[hidden email]>:
>
> " 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
[hidden email]


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
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 <[hidden email]> wrote:
>
> Hi Richmond,
>
>> Am 02.08.2017 um 13:43 schrieb Richmond Mathewson via use-livecode <[hidden email]>:
>>
>> " 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
> [hidden email]
>
>
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
In reply to this post by ** Clarence P Martin ** via use-livecode
Hah! I missed the IDE bit - 99.99% of the IDE is written in LCS (some widgets in LCB).

Pretty much the only bits which aren't are done script introspection features (e.g. revAvailableHandlers), the core standalone building part (which fettles with executables on each platform) and the mechanism it uses for detecting changes in properties.

The latter couldn't be done in LCS as it stands - the rest probably could but would be too slow for large scripts and message paths (revAvailableHandlers); or where having direct access to the system headers and such in their natural state made the code 'easier' to write (although not necessarily on the readability / maintenance) side of things.

Warmest Regards,

Mark.

Sent from my iPhone

> On 2 Aug 2017, at 13:43, Richmond Mathewson via use-livecode <[hidden email]> wrote:
>
> " 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 :) ]
>
> BUT: it that really true?
>
> Why do I have a funny feeling that a lot of the "heavy lifting" is done with C++ ?
>
> Richmond.
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
In reply to this post by ** Clarence P Martin ** via use-livecode
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 <[hidden email]> wrote:
>>
>> Hi Richmond,
>>
>>> Am 02.08.2017 um 13:43 schrieb Richmond Mathewson via use-livecode <[hidden email]>:
>>>
>>> " 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
>> [hidden email]
>>
>>
>> _______________________________________________
>> use-livecode mailing list
>> [hidden email]
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
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 <[hidden email]> 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 <[hidden email]> wrote:
>>>
>>> Hi Richmond,
>>>
>>>> Am 02.08.2017 um 13:43 schrieb Richmond Mathewson via use-livecode <[hidden email]>:
>>>>
>>>> " 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
>>> [hidden email]
>>>
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> [hidden email]
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>> _______________________________________________
>> use-livecode mailing list
>> [hidden email]
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> [hidden email]
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Made with . . .

** Clarence P Martin ** via use-livecode
In reply to this post by ** Clarence P Martin ** via use-livecode
On Wed, Aug 2, 2017 at 2:33 PM, Richmond Mathewson via use-livecode <
[hidden email]> wrote:

>
>
> I will be forever grateful to the Livecode team that they have saved me
> from having to learn C++.
>

I've lost track of how many languages I've learned and used over the last
decades.  I've even written major sections in languages that I didn't
bother to learn, and edited code in languages I've never learned.

They all come back easily--except C and especially C++.  I have to relearn
these every time (OK, C scope and variable return sticks around.  Boy do I
want {} scoping in LiveCode, but I digress).

Even having written a mail merge feature for LyX that danced circles around
what MS Word could do at the time (or, I believe, that it can do now) in C
(or was it C++), it rushed back out of my brain as quickly as it could  . .
.

As long as I remember that there is no such construct as "send someMessage
to every control on this card", I can come back to hypertalk at full speed
after years of not using it . . . (then again, I"m one of those people that
remembers the Calculus "chain rule" several years later when I needed it
[and got it right!])




--
Dr. Richard E. Hawkins, Esq.
(702) 508-8462
_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Loading...