4 ms·
Nah, it's no biggie. What really is rough is the adherence to static types; it's very harsh and can really slow down a person hoping to build things. And of co
by MostAwesomeDude 15y ago
Nah, it's no biggie. What really is rough is the adherence to static types; it's very harsh and can really slow down a person hoping to build things.
And of course, if you're like me, then you don't want to go into a language where there's no Twisted equivalent.
- tikhonj 15y agoI find the static typing actually started helping me once I got used to it. Now almost all of my type errors correspond to errors in logic that I would otherwise have had to find at runtime. Is Twisted like Node.js? If so, look here: http://stackoverflow.com/questions/3847108/what-is-the-haskell-response-to-node-js http://stackoverflow.com/questions/3847108/what-is-the-haske...
- ezyang 15y agoI can't tell if you're trolling. GHC Haskell has first class pre-emptive concurrency support. You don't need Twisted because we give that all to you, out-of-the-box, without needing to do anything fancy.
- jrockway 15y agoI think he is complaining that he can write code in a natural form and then GHC's runtime makes the necessary calls to the event loop to make things happen as declared. This is annoying because all the hours you spent trying to work around Python turned out to be a big waste of time. Or something.
- MostAwesomeDude 15y agoTwisted doesn't just provide concurrency. Twisted also provides tools for building network servers and protocols. Haskell doesn't have anything unified; the community can't even decide which kind of I/O (lazy, iteratee/enumerator, handles) is best, let alone recommend a simple way to sit down and build fancy stateful networking. Twisted, Event Machine, and Node (yes, even Node!) provide this. Haskell should have a library which does, too.
- joeyh 15y agoFor a great counterexample, watch the first 10 minutes of this screencast of data-driven programming, in which the the data types for OCR, like PixelData, are first written as essentially undefined, and then refined and changed as needed by the code as it develops. http://www.youtube.com/watch?v=045422s6xik http://www.youtube.com/watch?v=045422s6xik