This is a creation in Article, where the information may have evolved or changed.
TJ Holowaychuk, a prominent module writer, made his farewells to node. JS and is turning to Go, which he calls a "next gene" Ration, "programming language in the same company as Rust and Julia.
It's the latest high profiles departure from node. js to Go, as noted by Zef Hemel in a post today. In particular, he cited Felix Geisendörfer, a frequent contributor ' who moved ' to Go ' in 2012.
Bye #nodejs, Hello #golang
-felix Geisendörfer (@felixge) December 2, 2012
Hemel also cited Koding, which provides a web-based development environment.
Holowaychuk is the creator of the Luna programming language. He is also the force behind Koa, Express, Stylus, Cluster, Mocha, Jade and Node-canvas.
He writes in a post published yesterday that node. JS does some things well it's not suited to his interests these day s in distributed systems. node. JS stresses performance over usability and robustness. He finds Go "performs better, is easier to maintain, and have better test coverage since synchronous code is generally nice R and simpler to work with. "
He likes C But it isn't a language for working with every day.
For Holowaychuk, the most satisfying on Go is it iteration speed. He hopes the community would be willing-break things in Go-but he-recognizes with big companies behind it, breaking thin GS can be a problem for people managing big systems. But it could help make it more resilient and stronger.
Why Go
Summarizing, he says Go is robust for it, and refactoring with types are pleasant and simple. The tooling for profiling and debugging works and the community have "a very strong conventions regarding documentation , formatting, benchmarking, and API design. "
Go ' s primitives is more suited to distributed computing than node. js ' s generators. node. JS does not has separate stack error handling. Without it, reporting is mediocre.
I also don ' t want to wait 3 years for the community to defragment, when we had solutions that work now, and work well.
There ' s also Go ' s error-handling, too, which Holowaychuk says is superior. node. js makes every error, which helps the developer think but it also have some flaws, which he lists as Follo Ws:
- You may get duplicate callbacks
- You could not get a callback @ All (lost in limbo)
- You may get Out-of-band errors
- Emitters may get multiple "error" events
- Missing "error" events sends everything to hell
- Often unsure what requires "error" handlers
- "Error" Handlers is very verbose
- Callbacks Suck
Howaychuk is a philosophical and a natural writer. He's critical of node. js but is in a constructive. In particular, he puts the onus on Joyent to make node. js more usable.
I have written about Poptip moving to Go. Many of the emerging services use Go, too. Docker, CoreOs, Dropbox and MongoDB to name some of the more prominent users.
is the node. JS issue overblown or misguided? I am curious about this one. It may be time does a Google Hangout on the topic.
Feature image via Creative Commons on Flickr.