Okay, yeah, I'm breaking radio silence. :)
There's been a lot going on around here and all my open source projects have been kind of on hold for the past month while these things get taken care of. Tiffany and I are preparing for a move back to Dallas TX so I can be near my kids, so there's been apartment hunting. I've been working on some client work (involving both DataFaucet and the onTap framework). I also got the results of the neurological testing back. The latter indicates that yes I do indeed have Asperger Syndrome, and thankfully nothing else. I feel I'm in good company... perhaps I'll never win a Nobel prize, but I do agree with Vernon Smith that different kinds of minds each have their own advantages. If we all thought the same way, I think it's pretty obvious that we would never progress technologically speaking. There are more things I would like to share regarding autism later, but for now I'm going to get back to ColdFusion.
Over the years I've seen a number of people make comments that they didn't like something or another about ColdFusion because it didn't seem to give them the same kind of control they had with Java. One example of this is with regard to the cfquery tag. I've seen at least one person say that they weren't happy with cfquery because it didn't give them the ability to programmatically control the connection pooling within the application. It worried them that they couldn't get direct programmatic access, that there might be a day when they really needed it and wouldn't be able to get it.
Now I know that this kind of fear isn't entirely unfounded as there are examples of APIs in the wild that were glossy on the outside but that didn't provide access to required low-level functions and forced people to use high-level functions to try and get access to recreate them... This is described as the anti-pattern of abstraction inversion.
So yes, there is such a thing as oversimplification. Which means that these fears aren't entirely unfounded... however... in practice I've never run into "lack of control" as a legitimate barrier when working with ColdFusion.
In over ten years working with CFML I've never run into a scenario in which there was an actual need to programmatically control the database connection pooling. Or for that matter any scenario at all in which CF simply proved to be oversimplified in such a way that there wasn't a viable work around.
Part of the reason for this is that even long before CF was built on top of J2EE, there was relatively easy access to more complicated (lower level) languages like Java and C++. Need to manipulate images programmatically? C++ COM object. Done. The later addition of the cfimage tag is just gravy.
I admittedly would just about rather eat broken glass personally than work with C++ on a daily basis, but my preference isn't really what's in question here. If there's a legitimate business need, we can justify the time for me to figure it out or we can justify the cost of buying a 3rd party API or hiring an outside contractor to make that happen.
At the end of the day, the simplicity of ColdFusion isn't hurting me or the company in any real way that I can tell. As best I can tell the only thing it's doing is helping us meet deadlines.
So where is this mythical oversimplification problem? Does anybody else know? Has anyone else run into problems that were legitimate barriers as a result of ColdFusion being oversimplified? Are there any examples of this on the web?