(didn’t listen to podcast as podcast really isn’t my kinda medium)
Thanks for bringing the discussion here, never thought there would be so many different opinions/views on this ![]()
My major interpretation of explicit vs. implicit is to a degree how much I can easily see what’s going on and control it.
My favorite example is ActiveRecord vs. Ecto.
In ActiveRecord I define all the validations and callbacks in the model. Somewhere else I then call save and all of these are magically executed (with all the weird conditions applied in the model). I don’t see what is executed and in what order.
In Ecto on the other hand I specifically choose a changeset that I want this to be run through, I can easily see what is done and in what order. If I don’t want something to happen I can easily remove it or explicitly call another changeset. Makes my intentions very clear.
Similar thing about automatic preloading of associations vs. not or the way in which you need a PhD in ActiveRecord to know what triggers a database case vs. modeling it more explicitly through use of a Repo in Ecto.
As it still rings in my head from an early Ruby Rogues episode where @JEG2 said “magic is always bad” - the more experience I have, the truer that statement rings - kudos James ![]()






















