Anything LiveCode Can Learn From GO
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
> 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.
> 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."
> 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
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
More information about the Use-livecode