What behaviour in Lucee which is too "clever" woul...
# lucee
z
What behaviour in Lucee which is too "clever" would you like to see gone in 6.0?
a
Any behaviour where Lucee decided it could be more clever than CF and does stuff differently just because it can.
[and I am racking my brain for more directed answers, cos there's been a few things where Lucee's tried to "help" and it really doesn't get it right... but can't think of any for now... will need to check Jira]
d
I'd get rid of the Gzip compression option in the admin (as recent conversations brought up), this is much better to be handled by the web server. The more of the edge case that can be removed, the better.
2
a
Ooh the way it tries to resolve mapping paths and gets confused on *nix? Does that count?
d
I think @Adam Cameron would vote for it not randomly changing JAR files too 😃
😂 1
a
Does this count? https://luceeserver.atlassian.net/browse/LDEV-3738. Lucee is second-guessing (badly) what one might want to see in an exception and losing important stuff
https://luceeserver.atlassian.net/browse/LDEV-366 - Lucee too rigorous with its type coercion in boolean expressions Those are the only tickets that I have raised that might fit the thread description.
z
but honestly, what is the problem with an opt in gzip setting?
Igal would like to make localmode=true default, but that's er challenging, but i understand why
we've also been bouncing around localmode=never to get away from the arugment / local scope perf issue
a
Igal would like to make localmode=true default
Do you mean the application setting, or the attribute on a function (and a component?) If the latter... I can't see why not? One would have to tread cautiously if one is writing cross-platform code (basically: don't use it). Other than that, it's intrinsically opt-in, and it's localised to the code leveraging it, so doesn't cause any "surprises".
d
what is the problem with an opt in gzip setting?
I know there was a thread somewhere about this issue, but it's more likely to cause issues than not. It's really something the web server should be doing for you. Since it's not really a feature that's needed, it makes sense to remove it. Less code = less bugs, less issues, less code to support. Sometimes it's easy to go "oh that's easy to add, let's just add it so we have more features/options", but I'd rather Lucee concentrate on the hard stuff and leave stuff like this out that's better handled elsewhere. Unless I'm missing some use case where having this enabled is critical functionality.
z
it's about OOTB being modern cfml (localmode)
i don't want a python 2/3 situation
👍🏼 1
and with modules / forgebox etc, there's a lot of potential upstream problems
this.scopeCascading = "strict";
this.searchResults = false;
are all great defaults something like an opt in compat level via single setting, which is hard cross platform, never will we use modern again
a
it's about OOTB being modern cfml (localmode)
Absolutely not then. For the reasons you cite. Indeed the application-setting implementation would be a good one to remove for being "too clever". It just can't work with modern applications that use third-party libs. It woulda been fine back in 2003. It's too late now.
z
yup, we don't have even have component localmode="true" {}
a
I would deprecate the lot.
I think that's safe on a component?
z
nup, it's not apparently
a
Really? I mean like third-party code could not use it, as it's meaningless in CF. However for one's own applications that are destined to only run on Lucee... I don't see the downside? What am I missing?
d
This one fits the description, I think. Looks like it might already be set for 6.0 though? https://luceeserver.atlassian.net/browse/LDEV-2164
1
d
@danmurphy Good call on the URL Encoding thing. It's a compatibility issue with ACF too.
j
You know how Ortus is adding things to ColdBox, that are in Java but nicely managed. That is my standard, Kudos to Ortus for the awesome progress. Now, to answer your question... not just Lucee, but could we get rid of things like CFML version of CFThread! Seriously difficult solution that could be depreciated.
So to the point above, what about CFML in general, what would we like to go. 🙂 Could we have a version of Lucee that dumped things like that, keep the core language.
f
What about moving features out to extensions that are no longer commonly used? That way if you have an old app using the feature all is not lost, and it allows lucee’s core code base to be lighter and cleaner.
2
👍🏼 1
👍 1
But deleting code is also quite fun, maybe cfvideo
a
I had suggested a similar thing for all the stuff that Lucee actively (but generally needlessly / unhelpfully) has decided to do different to CF. The default Lucee install then just behaves as close to CF as poss, with add-ons that override or "improve" or add-to behaviour.
@danmurphy that one was precisely the sort of thing I was trying to remember. Is there a way in Jira to query for issues one has commented on?
z
@foundeo you mean remove unsupported old tech, applets, flash, mediaplayer, video (473 KB) https://luceeserver.atlassian.net/browse/LDEV-3343 (merged) 6.0.0.178
💯 1
d
My interpretation of that is to split out stuff like <cfajax* />, <cfdiv>, <cfform>, <cfinput>, <cfmap>, <cflayout>, etc. which really aren't recommended to use anyway (but keep as an extension for people trying to convert legacy apps) and remove things like <cfapplet /> or any other tag that wouldn't be supported by any of today's browsers.
z
d
Anything that's really better off by just doing implementing the work manually client side I'd split out into it's own extension.
z
they are all already extensions
j
depreciation and extension seem like mixed meaning, lol
d
Yes, that ticket looks like it would cover it
(And what I meant by splitting out to it's own extension, is not include it by default)
🎉 1
👍🏼 1
Basically, most anything that's just a HTML convivence wrapper, I'd be fine with it being something that has to be optionally installed. It seems most experienced developers never use them.
z
exactly
e
Tomcat 10, seriously, beat adobe to this. A spool / debug attribute / tag (HEH) so you could see the inner workings of anything called. Example CFDOCUMENT SPOOL = MYSPooL1 l= /someplace/ see exactly what was fired off at the bite code level, the second argument could be the staging of the execution of the code, ie . read, executed, files touched. Think of it as a PRE-HOOk for the JVM just as the lucee engine reads the file, It would be great to stop it at the lowest level without a CFUMP, and see what happened to the code. It could even output all 4 parts of the code, be it the read, the lookup, the logic then the execution. Seeing exactly what was run is huge in learning how to write better code, plus, my god a built-in function to debug (beyond CFUMP)