Hacker Newsnew | past | comments | ask | show | jobs | submit | remogatto's commentslogin

I used Go to write a concurrent ZX Spectrum emulator (https://github.com/remogatto/gospeccy). The language perfectly fits for this kind of task too.


I'm using it to write a ZX Spectrum emulator. Go is a neat language. It is expressive as an high-level language and - at the same time - it is powerful on the low-level side. Moreover, it has interesting built-in concurrency mechanisms. Last but not least, I like the fact that it is openly developed.


That's right. In Go such light-weight tasks are called goroutines.

Quoting from Effective Go[1]:

A goroutine has a simple model: it is a function executing in parallel with other goroutines in the same address space. It is lightweight, costing little more than the allocation of stack space. And the stacks start small, so they are cheap, and grow by allocating (and freeing) heap storage as required.

Goroutines are multiplexed onto multiple OS threads so if one should block, such as while waiting for I/O, others continue to run. Their design hides many of the complexities of thread creation and management.

[1] - http://golang.org/doc/effective_go.html#goroutines


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: