Suggested Example/ emacs questions
Tue Oct 10 13:08:12 CEST 2000
On Tue, 10 Oct 2000, Joe Armstrong wrote:
> The reason behind the gen_servers FSM's, worker-supervisor trees
>etc. was twofold
> 1) Get everybody programming the same way
This is a Good Thing.
> 2) Give novice programmers access to expert code
> The idea was "If you're an expert and know what you're doing then
>feel free to 'roll-your-own' otherwise use the appropriate generic code" -
>Of course you loose the feeling of "seat of pants" control if you use the
>generic methods but you gain convenience plus the fact that other people
>can understand your code.
> For small hacks I always "roll-my-own" - but for big systems
>programming I'd either use the generic-methods OR write a new generic
>method first and then use that.
My contention is that it's too hard to roll your own using today's
support. The behaviours are great, for the above reasons, but you
really have to know what you're doing to try to make your own
behaviour or bare-bones implementation in a production system.
We have a few processes in our system called "classic servers", in
places where it made sense to optimize away the gen_server overhead.
After a while, we ended up going back to gen_server and paying the
extra overhead, because rolling your own was simply too error prone.
There was too much code that needed to be written by hand -- not
necessarily because it did anything unusual, but because it fell just
a fraction short of being possible to generalize. At least 90% of it
is copy and paste. The remaining 10% causes the headaches.
I'm certain the situation could be improved, and that we should
continue to try and find better solutions.
Ulf Wiger tfn: +46 8 719 81 95
Network Architecture & Product Strategies mob: +46 70 519 81 95
Ericsson Telecom AB, Datacom Networks and IP Services
Varuvägen 9, Älvsjö, S-126 25 Stockholm, Sweden
More information about the erlang-questions