|
|
|
|
|
by gpderetta
1637 days ago
|
|
I don't think it is indispensable, I think it is convenient and still better than what is done today were types without clear domain and purpose are already passed around. At the very least with row polymorphism, a function can declare which subset of the type it actually care about instead of taking an unwanted dependency on the whole blob. In particular I'm considering the scenario were a large application (or better a collection of applications) evolve without a central plan and messages tend to grow to accommodate orthogonal requirements (the alternative is splitting the messages, but it has performance, complexity and organizational overhead). In theory the alternative is message inheritance, but in my experience it has never worked well and it is very hard to retrofit anyway. |
|
This is the argument I no longer find convincing. Do you have an example where this is so much clearer than alternate, simpler ways of doing it?
For instance, in principle you could easily rewrite a function that works on a record with 3 fields to just accept 3 parameters. The only additional "burden" is that the caller has to pass in those 3 fields, where before they could just pass in the record.