I’ve taken the liberty of doing this, as I think it’s an important topic.
I could have sworn this was a topic discussed for Iris, but can only see a tangential reference to it in that doc, wherein one of the voters (presume you, Sean) answered “member” for a lot of options.
One language shortcoming I see in CFML is that prior to some OOness being implemented by adding some member functions is that the code we write as devs was OO, but the language itself was still procedural. This was less than ideal.
Then both Railo and ColdFusion added some “member functions”, which - IMO - might be seen as a reasonable halfway house, but also might be seen as “not completing the job”, and in a way the language ended up being slightly worse rather than slightly better. We no longer had one way to do things, nor did we have two ways (“new/current”, and “preserved for backwards compat”) of doing things: we kinda had 1.5 ways of doing things.
However let’s see the glass as “half full”, and the existing member function work as an “in-production proof of concept”. I think the PoC has been a success, so it’s time to roll out the implementation.
I think if we look at it from a CFML perspective from inside the existing CFML world, the addition of some member functions is good. From the outside looking in, it seems incomplete. Hardly anyone is on the outside looking in, so that doesn’t matter. However for Lucee, it should care more about people on the outside looking in, so it should do this job completely from the outset. I’d even perhaps discuss (separately) never implementing the procedural style functions at all in .lucee. Why have two ways of doing things?
I wonder if I should split this further into different topics, or whether we’ve all got the attention span to discuss multiple linked concepts in one thread?
Topic 1: implement the rest of the missing member functions
Topic 2: only implement the member function model for .lucee
–
Adam