Warning: This blog entry was written two or more years ago. Therefore, it may contain broken links, out-dated or misleading content, or information that is just plain wrong. Please read on with caution.
Can someone please tell me what the hell is going on with Lucee right now? I mean really, who is steering the boat?
Now I have been a huge fan of Railo for years and I thought that Lucee was going to be the best thing since sliced bread when I heard the announcement. But all I have seen so far has been an absolute bloody mess.
Poor to non existant documentation, questionable naming conventions, broken features due to broken tests and the worst kind of public(developer) relations since adobe.
In fact I really dont think the current release of Lucee should be called a beta, what I have seen looks to be of alpha release quality.
Documentation has to exist and be right
If you are releasing new features and your documentation is wrong then its not the users fault when they(the developer) cant make it work and blog that its broken...because it is broken. You have created a tool and labeled it "cut" but wired it to "drill". Yes it works as you the developer designed, but not the way you have told the end user how to use it.
And why is it that the documention is wrong? Well from the outside looking in, it seems that nothing was written down in terms of a specification. Just one developer deciding to go off and build something and come back to document it later.
It would be easy to forgive the poor documentation knowing that it will come eventually, but its this lack of detailed planning that is leading to the worst (in my mind) problem with Lucee, the questionable decision making process.
On one hand I love that we have static functions and variables now, but making it a scope and not having it as a modifier keyword?
Or the new createComponent() function, sorry loadComponent(), no initComponent() no.... whever it is being called. And then Micha announces off the cuff that not only is there this new function but that createObject is going to be deprecated? Im sorry but WHAT!
Who discussed this decision. Was any thought given to how much work it will involve for us poor developers who use it every day? This is not the same as deprecating cfform or cfgrid, this is a core function of cfml. You dont going making these kinds of design changes ligthly without buyin from the community, but that is exactly what is happening here.
Poor testing and poor community relations
And lets not forget that we are now seeing poor testing and even worse community relations.
I get that the migration of the codebase from railo caused some tests to be missed but I find it inexcusable the response I have seen to Adam Camerons comments and blog posts from some members of the Lucee team.
Fact AC can be abrasive sometimes. Many times I find myself wanting to disagree with him just because of how he comes off...but he's not wrong in what he is saying. And lets not forget that AC has no dependency on cfml anymore and is still taking his personal time to test the new code according to the limited documentation.
The lucee team should be thanking him for helping them out by testing and blogging, not making snarky comments and ignoring the valid points he is making.
Result a failing project
Look lucee5 has the potential to be really great. osgi support, final, static abstract etc etc etc. These are all things that show how much potential it has, but all that potential is being screwed up by the ham handed way the project is being handled and presented. I am rapidly losing hope that Lucee will be successful, right now it looks to me to be headed straight for the rocks unless it changes course.
How it could be turned around
It is not too late to fix this situation, but only if the lucee team get down off their high horses and change their attitudes.
- Delay the release of Lucee 5
- Document all the new features, changes in it and why they were made.
- Form a language advisory group and openly invite people with known language design knowledge(any language) and or proven experience with cfml to join it. (Sean Corfield, Adam Cameron, Luis Majano etc etc)
- Go through the documented design changes with a fine tooth comb and evaluate each one and where necessary revise those decisions.
- Document those changes and only then go and implement them.
- Do a proper beta release and when comments are made (be they good, bad or indifferent) listen and respond without the snark.
I would much rather see a delayed release while this issues are addressed than what I am currently seeing. Right now I have no intention of being an early adopter of Lucee 5 and if things keep going down this path I may never adopt it.