Anything LiveCode Can Learn From GO

Tom Glod tom at makeshyft.com
Mon Jun 11 21:04:14 EDT 2018


but as i understand it ...changing a single threaded app to multi-threaded
at its core is a huge undertaking aand i'm not sure its even on the drawing
board for v 12 ...but i could be wrong....maybe its coming in v10 :D :D :D

On Mon, Jun 11, 2018 at 9:02 PM, Tom Glod <tom at makeshyft.com> wrote:

> i see what you mean.....  the single threaded aspect of LC is a
> drag....... i'm actually trying my hand at some kind of workaround for this
> limitation for the global conference in september ....i aim to do some
> multi-core processing using LC and measure performance gain over specific
> workloads ...like search....db query..... and i/o.
>
> On Mon, Jun 11, 2018 at 8:08 PM, Sannyasin Brahmanathaswami via
> use-livecode <use-livecode at lists.runrev.com> wrote:
>
>> I wasn't thinking about high language per se.   but more from an engine
>> point of view, specifically use of "Goroutines"
>>
>> "But, most of the modern programming languages(like Java, Python etc.)
>> are from the ’90s single threaded environment. Most of those programming
>> languages supports multi-threading. But the real problem comes with
>> concurrent execution, threading-locking, race conditions and deadlocks.
>> Those things make it hard to create a multi-threading application on those
>> languages.
>> {snip]
>> On the other hand, Go was released in 2009 when multi-core processors
>> were already available. That’s why Go is built with keeping concurrency in
>> mind. Go has goroutines instead of threads. They consume almost 2KB memory
>> from the heap. So, you can spin millions of goroutines at any time.
>>
>> How Goroutines work? Reffrance: http://golangtutorials.blogspo
>> t.in/2011/06/goroutines.html
>>
>> Other benefits are :
>>
>>     Goroutines have growable segmented stacks. That means they will use
>> more memory only when needed.
>>     Goroutines have a faster startup time than threads.
>>     Goroutines come with built-in primitives to communicate safely
>> between themselves (channels).
>>     Goroutines allow you to avoid having to resort to mutex locking when
>> sharing data structures.
>>     Also, goroutines and OS threads do not have 1:1 mapping. A single
>> goroutine can run on multiple threads. Goroutines are multiplexed into
>> small number of OS threads.
>> =========
>>
>> And from the reference a "Goroutine" may be not language specific and
>> maybe (I don't know much about the engine) I am dreaming about the rabbit
>> in the moon, but, for Mark's "idea machine" there is this:
>>
>> " Effectively for us goroutines hides many of the internal machine
>> complexities in achieving parallelism. This also means that the language
>> designers could implement changes to how goroutines scale on the machine
>> taking advantage of hardware and CPU improvements."
>>
>> Brahmanathaswami
>>
>>
>> On 6/10/18, 5:01 AM, "use-livecode on behalf of Tom Glod via
>> use-livecode" <use-livecode-bounces at lists.runrev.com on behalf of
>> use-livecode at lists.runrev.com> wrote:
>>
>>     LC and Go have entirely different target markets....but since you can
>>     easily make 1 application talk to another application using sockets
>> .....
>>     or open process...... the LC and Go make a wonderful partnership if
>> you
>>     need to build UI ...but also do High Performance Computing.
>>
>>     The 2 can make a great couple indeed.  But neither can replace the
>> other.
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>
>



More information about the use-livecode mailing list