Hey everyone, this is a rather non-technical quest...
# cfml-general
b
Hey everyone, this is a rather non-technical question, but what Framework is everbody using? I've been using an older FW/1 version for a while on an older application and now I'm trying to do something from scratch. I saw that FW/1 had quite some changes, but also that the last commits on GitHub have been in the middle of 2021. Never looked into ColdBox, but I guess Ortus is still maintaining it. Got any tips or recommendations?Thanks a lot in advance and greetings, Boris.
a
My feel is that whilst FW/1 works and is "complete", as you've noticed... not much community participation. If I was starting from scratch and needed to use CFML, I'd run with Ortus's oeuvre.
🙏 1
☝️ 1
a
The exciting part is that you're embarking on developing a new application with CFML. I've had experience with both F/W1 and ColdBox, and they both offer robust frameworks. However, the choice between them often depends on the scale and complexity of the application you're building.
🙏 1
b
Thanks for the answers! It's planned to be a medium- to medium-large sized application. Not overly complex tho, mostly CRUD operations with user forms.
a
I think in that case you can choose F/W1.
a
Hrm. I'd see what the *Box eco system has re ORM and form-building before I commit to that path. No need to write code if a library can do it for you
d
As your app grows, and needs more "stuff" hooked up and scenarios dealt with, I think with ColdBox you'll find there's a better chance that your needs will be handled by the framework itself, or by supported and documented add-ons to it. FW/1 is less full-featured, and has way less of a surrounding ecosystem.
a
Yeah @Dave Merrill you are right, if there is any chance/scope to scale up the application, definitely go with Coldbox
👍 1
d
I'll echo others responses. fw/1 was always meant to give you the basic MVC structure and di/1 was always meant to give you basic injection, based on a convention over configuration pattern. It gives you what you need to implement the MVC pattern, and that's pretty much it. Or, as Sean Corfield used to say... it gives you what you need and then gets out of your way. It is still being maintained (as in, if someone were to submit a pull request to enhance it, it would likely be pulled in if it's relevant), but no new bells or whistles and no changes to the core should be expected. ColdBox, on the other hand, is an ever evolving rich ecosystem of not just the core MVC patterns, but also touches a lot of other parts of an application lifecycle and (through add-on modules) can greatly enhance the core capabilities underpinning your application. I still use both quite regularly. For (small or large) apps that don't require a lot of the in-built or modular features of ColdBox, fw/1 is a perfect fit. For (small or large) apps that do require more bells and whistles, more in-built functionality or want to make use of any of the modules (cborm, cbsecurity, etc.) then I turn to ColdBox. ColdBox has deeper penetration (in the market) these days than any other framework and an entire corporation built around it to support, maintain and improve it (and the modules) over time. That said, most of the *box ecosystem's modules also work as stand-alone code so it is able to be incorporated into any framework or no framework code. So, one may still enjoy the benefits of most of the *box ecosystem without being reliant on the core ColdBox MVC.
s
@ddspringle Is it really maintained any more? I see two PRs from three years ago that have not been merged (or declined) and the last change in the repo is from me, three years ago, removing the Gitter link (since Gitter had no activity since 2020). As the originator of FW/1 (& DI/1), I don't think I could recommend it to anyone these days: the community around it is too small at this point and it is no longer being actively maintained. ColdBox and its ecosystem are really the only game in town at this point, in terms of active support and community. I still don't really like it: all my reasons for creating FW/1 in the first place are still true 🙂 but the reality is that since I moved away from CFML, FW/1 stopped moving forward on the roadmap I had laid out for it.
👍 1
b
A framework huh? I was chastised by Nolan Erck for brushing off frameworks, but I do understand his point. The upside is a framework will keep your code organized and offer time saving shortcuts. I have to tip my hat to ColdBox and FW/1 as they have stood up to the hard headed opinions of people like Adam and others. They have and will continue to help people be productive. But for me, I dislike all frameworks. Not just CFML frameworks, but javascript and CSS frameworks too. Maybe it's a personality flaw of mine. I like building my own features and not relying on a black box. Seans right about FW/1, it really isn't active... that is, if that kind of metric is important to you. However FW/1 is relatively easy. The other is ColdBox which is boated in my opinion. It does a lot for sure, but comes with a deep learning curve. So where does that leave us? Anyone brave enough to offer a new CF framework? One that will stand up to the likes of this crew?
metal 1
s
Creating, advocating, and maintaining a CF framework is a massive endeavor. Back when new frameworks were being created (Fusebox, Mach-II, Model-Glue, cfWheels, ColdBox, FW/1 -- and many others) there was a lot of back and forth between their communities and a lot of articles and conference talks and so on. Most of those frameworks have essentially died off now -- the "argument" is essentially done: ColdBox won -- so to get a new framework adopted would require re-igniting interest in the debate about frameworks, and pushing back on the status quo, in addition to all that work. Even as someone who contributed to nearly all of those frameworks in some ways and maintained my own, I wouldn't entertain that amount of work today... 🙂
(and that's not including all the random DI/IoC and ORM-like frameworks folks were also creating)
b
Thanks for the insight Sean, interesting, and makes total sense. Perhaps in the Node.js world the leading framework is Express. In the Go world, perhaps Gin. And we all know what Rails is in the Ruby world. I understand what you are saying. Nobody can just create a framework and expect it to be adopted, it takes effort and luck to grow organically.
e
Here is my "brave" post about implementing a "framework." If you are insanely dedicated enough to spend at least four hours a week mindlessly shouting at the wall only to get vast quantities of mostly negative feedback, Go for it! In the end, nobody will love you more or less for it. Buy @seancorfield a beer sometime and ask his unfettered opinion on the matter.
d
@seancorfield I was certain you’d passed fw/1 on to another maintainer (who I won’t name and shame lol) and I know it has been awhile but I’d seen at least a few PR’s handled since then… but I had not gone and looked before responding to see if there were still open PRs. That’s a shame… I know ColdBox is the clear ‘winner’ in that race, but I still use and still see fw/1 being used quite a bit (and afaic there’s a place for both) which is why I suggested it. Sorry I was wrong on the maintenance… perhaps I’ll reach out and see about bringing fw/1 under the TCFA umbrealla.
d
FWIW, ColdBox used to be more of a monolithic want-anything-here's-everything beast, but it's more modular now, wo you "only" need to learn the basics and attach whatever else you need. There's no denying that there's a lot in there though, especially including the whole ecosystem, so that's a lot of probably-best-practices to internalize.
👍 2