Anything LiveCode Can Learn From GO

Tom Glod tom at makeshyft.com
Mon Jun 11 21:02:48 EDT 2018


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.
> blogspot.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