3 ms·
I'll wager that you haven't written much Erlang, Go, Haskell, or any other language with transparently asynchronous I/O but blocking semantics. If you have, I d
by thirsteh 13y ago
I'll wager that you haven't written much Erlang, Go, Haskell, or any other language with transparently asynchronous I/O but blocking semantics. If you have, I don't understand how you can believe my cynicism is misplaced.
Despite what you seem to imply in your comment, I/O does not block an entire thread in any of these languages, however the control flow in a single thread does block, i.e. err = fireTheRockets() does block until fireTheRockets completes, but performance-wise it is equivalent to fireTheRockets(function(err) { ... }). Only now you're saved the callback spaghetti.
Node.js advocates are literally peddling callback spaghetti as an advantage because "it lets you write much faster applications with ease", yet Haskell's threads and blocking semantics blow any Node.js out of the water by an order of magnitude. (Check out Mighttp/Warp or Go's net/http vs. Node.js.) I come across as cynical because that is sad. It feels like we're travelling back in time, not forward.
The only thing that makes node.js "good" when it comes to threading and async is that it doesn't require synchronization as there is no concurrency. (Same thing for Python with Twisted.) Neverminding that that opens up its own can of worms (I hope you don't do any actual computation in your program, as that's going to block everything): Pretending that it's anything more than that comes across as incredibly ignorant of contemporary language design.
- corresation 13y agoI'll wager... And you would lose. This conversation was about .NET, and then you (rather oddly) decided to pull in nodejs. It has nothing, at all, to do with Erlang, Go, Haskell, or any other language, and the tactic of using them as the "big brother" to discount another language is petty and disingenuous.
- thirsteh 13y agoI like the part where you ignored my entire comment and went on believing Node.js was a revolutionary way to write performant programs. The reason I mentioned those languages is that there is essentially no way (short of using the C ABI) to actually do blocking I/O. It doesn't mean that you can't write performant asynchronous programs in C#.
- corresation 13y agoWhat is your personal hangup about nodejs? Again, this conversation was about .NET. You brought in nodejs. I responded specifically within the context of .NET and nodejs. No one said anything about about it being revolutionary, your ridiculous attempts to make it about something greater being grossly misplaced. Maybe you should knock that nodejs chip off your shoulder and get over it. Clearly you had some sort of argument with someone about it at some point, but your arguments just make you look absurd.
- thirsteh 13y agoFor someone calling me petty and disingenuous, you sure are performing a lot of ad hominem attacks. Here is what you said: "thirsteh's cynicism is misplaced. node.js is effectively predicated on asynchronous implementations, and you have to work hard to do otherwise. The end result tends to be very efficient implementations that can serve large numbers with ease." This is what I responded to. Your statements are simply not true. And no, I wasn't the one who brought up node.js either. My gripe with node.js is that it claims to be something much greater than it is, and people gobble it up. If you want to write Javascript, sure, it's a great tool. Just don't try to sell it as the only, or even a good way to write fast applications. That is what is disingenuous.
- corresation 13y agoThat's a funny claim for you to make considering your continued attempts to portray my statement as coming from ignorance (which you've done yet again). Actually, friend, my daily professional language is go, thought that has zero relevance here given that this discussion was .NET, and then apparently .NET relative to nodejs. Your quote comically excludes the preceding paragraph about .NET, and the following sentences specifically contrasting .NET with nodejs. Instead you continue this transparent charade of pretending that I said something that I didn't. This boring side discussion is done. You have said absolutely nothing of value, but should feel relieved that you took a irrelevant shot at nodejs for no particular reason.
- deleted 13y ago