[erlang-questions] Erlang 21, Stability and the murder of an innocent Statemachine

Loïc Hoguin essen@REDACTED
Fri May 4 12:36:50 CEST 2018


What's the issue exactly? Is there plans to remove gen_fsm already, or 
is it just about its deprecation?

On 05/04/2018 12:18 PM, Heinz N. Gies wrote:
> Since this might get long I want to start with an anecdote.
> 
> When talking to people about Erlang and why it is great one of the 
> things I mention is stability. I’m not talking about systems not 
> crashing but rather about the fact that change are slow, gentle and 
> breaking changes are rare or nearly unheard off. The example I use is a 
> non trivial toy program I wrote back in 2012 and that it took me a whole 
> of 20 minutes to get code form 2012 working 4 and a half years later 
>   (most of the time spent on updating dependencies).
> 
> Having used other languages and the constant catch up game with changes 
> I always found that impressive  and it gives me a warm and fuzzy feeling 
> inside that the code I finish will be finished and don’t require a 
> endless cat and mouse with the language.
> 
> Even changes that happen like random vs rand are well based with reason 
> - security and performance in that case, and the changes are minor 
> enough that for the most case changing a single function call here and 
> there is enough to even keep complex programs as long as they’re not 
> (ab)using internal knowledge of the implementation (I’m looking at you 
> riak_core).
> 
> This stability has always be a core value of the Erlang eco system to 
> me, and an important one.
> 
> While I have the feeling the frequency of deprivations and breaking 
> cross version compatibility has increased over the last releases for 
> most of them I can, as said before, see the reason and the tradeoff made.
> 
> Now lets talk about senseless murder of gen_fsm.
> 
> I understand that gen_statem is nicer, and more user friendly, and I 
> don’t want to advocate against it at all, it’s great that we have it and 
> I see forward to useing it for the next state machine I have to write!
> 
> The *next* one. I see forward using it *for the next one*, not the last 
> 100, or even last 15 not even for the last two. I don’t see forward to 
> being forced to go through all libraries that have perfectly fine 
> working gen_fsm without problems or troubles and have to change them.
> 
> Ripping out a widely used and not broken behaviour just because there is 
> a more fancy one goes against everything I value in erlang as an eco 
> system. It forces developers to do the kind of busy work I detest in 
> other platforms.
> 
> Worst of all forcing people to fundamentally re-write perfectly good 
> code means bugs, bugs we wouldn’t have had if we would just have left 
> the code alone. Bugs that are probably non obvious as differences are 
> subtile. And in the end for absolutely no benefit.
> 
> Now it’s just a rant without a proposal. And I detest whining without 
> constructive criticism as much as I detest platforms forcing changes 
> that are not required. So here is what I’d like to suggest:
> 
> - Keep gem_fsm around, it has been a friend to many for a long time and 
> there is a lot of code using it that shouldn’t have to change to use 
> newer erlang versions.
> - Encourage people to use gen_statm for new code, and if it is really 
> that much better then gen_fsm that it’d warrant to rip it out that 
> should happen on it’s own.
> 
> Heinz - member of team gen_fsm ��
> 
> PS: I’m not just writing this out of no-where I’ve been fighting subtile 
> bugs on gen_fsm -> gem_statem code that was ported by people a lot 
> smarter then me and I see no chance in hell that if they can’t pull that 
> off on simple code I will ever be able to do that on complex code.
> 
> PPS: if the this plea falls on deaf ears (which I really hope it does’t) 
> here is a plan-b for team gen_fsm 
> https://gitlab.com/Project-FiFo/gen_fsm_compat
> 
> 
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
> 

-- 
Loïc Hoguin
https://ninenines.eu



More information about the erlang-questions mailing list