I was writing the previous blog article about improving thread syntax, and suddenly went... hang on... what? What did you say, Rakshith? And I dug back into his blog article from yesterday "ColdFusion: News and Updates from Adobe"...
This was buried half way down the article:
There are quite a few language improvements such as [...] member functions that are already a part of the upcoming versionWhat?! Member functions? COOL.
I wrote a blog article about this a while back: "Improving ColdFusion CFML's OO-ness", basically pointing out that CFML has allowed us developers to write OO code using components since CFMX 6.1, but during this time CFML itself has steadfastly remained procedural, having stand-along functions which take data as arguments, as opposed to the data having methods which act on it.
EG, procedural:
numbers = ["tahi", "rua", "toru", "wha"];
arrayAppend(numbers, "rima");
OO:
numbers = ["tahi", "rua", "toru", "wha"];
numbers.append("rima");
This means that suddenly our code and CFML's code starts fitting in better with each other, making for a more uniform coding experience.
I raised an E/R for this: 3559652, and at the time Rupesh commented that it would be a good E/R, but not for ColdFusion 11, perhaps 12. However that comment has been removed, and the ticket is now marked as "fixed".
Fantastic is all I can say. And it's this sort of feature that makes me go "COOL!"... much more so than <cfclient> and that sort of thing.
I wonder if one will be able to do this:
["tahi", "rua", "toru", "wha"].append("rima");
"Zachary".length();
IE: literals are also objects too? It's not the sort of thing one would do all the time, but I think the idea that "everything is an object, even literals" is a good thing to aim for in a language.
In closing: yes, I know Railo already has a partial implementation of this stuff... that's not to say we can't also be pleased that ColdFusion is doing it too. I hope the implementations are cross-compatible!
Brilliant stuff, Adobe.
--
Adam