[Haskell-cafe] [Newbie] Why or why not haskell ?
joelr1 at gmail.com
Sun Dec 11 08:54:21 EST 2005
I would surmise that speed is not always the point. This is what's
usually used to defend the laziness of Haskell :-).
Erlang is _the_ language for network programming, trust me on this
one. My dreamhost site seems to be down at the moment but you can
poke around the Erlang category at http://wagerlabs.com/ if you want.
On the one hand, I wrote a poker server in Erlang and that was a
relative breeze. I was able to host many thousands of poker clients.
On the other hand, I had a LOT of hard time with my current Haskell
project. I'm trying to launch many of thousands of poker clients so
there's a lot of similarity.
If I were to do this in Erlang I would focus my attention on the
actual logic of the app as binary packet parsing, serialization,
networking and heavy-duty concurrency are non-issues with Erlang.
Simple and absolutely nothing to speak about. This is why Erlang is
being used for a lot of telco apps that require massive loads,
protocol conversion, etc.
I did get my Haskell app to the point where it's about 90% ready and
working but most of my attention was spent on... binary packet
parsing, serialization, networking and heavy-duty concurrency :-).
Yes, it's working now but it took blood, sweat and tears. It's now
two months later and I have yet to see the Haskell app launch
thousands of poker clients and run them for hours.
On Dec 11, 2005, at 10:43 AM, Bulat Ziganshin wrote:
> Hello Joel,
> but anyway Erlang is dynamic alnguage, and this make things go slower.
> on the other side, it is strict
> Sunday, December 11, 2005, 7:02:57 AM, you wrote:
> JR> Erlang can be compiled to machine code with the built-in HiPE
> JR> You just have to explicitly make use of this facility.
> JR> On Dec 10, 2005, at 11:25 PM, Bulat Ziganshin wrote:
>>> what you mean saying "network programming"? Erlang has amazing
>>> distributed processing features with fault tolerance (when one
>>> processes supervises the others and restart them in case of fault).
>>> but Erlang is interpreted language and so it is slow in case of
>>> low-level programs. you can use C to make low-level or speed-
> JR> --
> JR> http://wagerlabs.com/
> Best regards,
> Bulat mailto:bulatz at HotPOP.com
More information about the Haskell-Cafe