Gnoland has adopted a new Gnolang language, which is a fork of Golang. The obvious advantage of Golang in comparison with other languages is manifested when working with parallelism. While most programming languages, such as C++ or Java, use multithreading to execute parallel programs, Go uses Goroutines.
Multithreading is when multiple threads are executed in parallel within a single process. It can be your browser that simultaneously plays music and launches a search engine, or a word processing program that displays the text you entered and simultaneously checks grammar. The problem with multithreading is that it requires context switching when the OS scheduler manages switching between processes and threads. This often causes overhead and consumes an excessive amount of resources. Goroutine, on the other hand, takes the burden off the OS by implementing Go Scheduler, a built-in scheduler at runtime. Creating and destroying Goroutine consumes significantly less memory (only 0.2% of threads) and fully uses all hardware cores.
Almost all existing blockchains are single-threaded, which means that simultaneous processing of multiple transactions will lead to double costs or a conflict between states.
Gnoland offers the most viable solution to this problem — the integration of goroutines, supporting Golang as a smart contract language.
