[Haskell-cafe] [Newbie] Why or why not haskell ?

Joel Reymont 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  
> compiler.
> 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- 
>>> critical
>>> functions
> JR> --
> JR> http://wagerlabs.com/
> -- 
> Best regards,
>  Bulat                            mailto:bulatz at HotPOP.com


More information about the Haskell-Cafe mailing list