Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

if it's about simplicity, then Javascript and Node are better at concurrency for me when it comes to I/O, Node is very performant too


Node is definitely not performant by any equal benchmark, but the async model does lend itself to simplicity in some cases in non-sequential workloads. But even then, it gets stomped by vert.x running on the jvm. I think the most valuable contribution is democratizing package management for SPAs as we move towards thick clients again.


I find goroutines and channels much easier to work with than promises, callbacks, or async/await, and the former can parallelize computation as well. Not to mention that Go is typically faster than Node in single-threaded execution.


You can easily implement channels in ES6. I've done it and my implementation is probably 40-50 lines of code. You can then use async/await to simulate go routines. It's actually a bit nicer than go because of the way async coordinates with promises. You can more easily synchronise the routines (for example in situations where you might need a wait group in go).

I keep expecting someone to write one and put it up on NPM (I haven't looked recently, though). Perhaps I should clean up my and stick it up there. It provides a very nice abstraction of continuations. I did it merely as kata to show that continuations do not require concurrency.


I've read a few articles on implementing CSP in JavaScript, and there are definitely some packages available, e.g.

https://github.com/olahol/node-csp

https://github.com/ubolonton/js-csp

https://github.com/gozala/channel




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

Search: