Sadek Drobi’s Blog

November 6, 2009

Side Effects

Most of my Erlang programming is side effect free. I think I probably write very unusual Erlang programs that look a lot like Haskell ones. Now and then, I do write side effecting code. For example, when I use the random number generation libraries that comes with Erlang, it has a side effecting interface. It’s very tempting when you are building something on top of the library with a stateful interface to build code on top of that that also has a stateful interface.

That’s what I did the first time I tried to use it. That has caused me so much trouble. I think every single bug that I spent hours trying to track down has been caused by a side effect. In a way, I’ve been programming Haskell for so many years, that I’d forgotten just how devastating side effects are and just how difficult they make debugging. I’ve learnt that lesson again and nowadays, if I want to use a stateful library, I usually build a side effect free interface on top of it, so that I can then use it safely in the rest of my code.

from my interview with John Hughes at Erlang Factory

October 18, 2009

Wave: What I miss in F# when developing with Scala and what I misss in Scala when developing with F#

Filed under: Uncategorized — Tags: , , , , , , , — Sadache @ 10:03 pm

This was a not satisfying test of integrating a google wave in the blog. I’ll make a summary of the wave later.
I’ll remove the wave for now from the blog because 1: It is not viewable by eveyone 2: It takes quite some time to load.
Sorry for inconvinience…

September 21, 2008

Do we actually need Methods in C# 3.0? We just need a powerful function type inference

Filed under: Agile Programming, C#, Functional Programming — Tags: , — Sadache @ 10:54 pm

DSC_0150-

The big milestone of C# 3.0 got me thinking, what can we do more to improve the language. After a lot of interesting discussions an debates I got with people that care about the subject, I realized that it can be really interesting to remove some unimportant complexity of the language. This can be done by abstracting and generalizing some concepts. An example that I thought of for this blog post is Methods.

(more…)

Powered by WordPress