There is a knowledge gap in the ColdFusion community and it is only getting wider.
There are a lot of what would be considered "entry-level" or "junior" developers out there. These people can use a good bit of the database functionality that CF offers, but don't push it much beyond a way to display database tables and insert and update data. Inline queries are the norm for this crowd and they rarely, if ever have anything to do with CFCs. Some of these people have been using ColdFusion for a LONG time, but they are not what we would consider an advanced developer despite all the time in the trenches. This group of people have been using CF the same way for years and are very comfortable where they are, in regards their skill level. They are not the type of developer who you can count on to design and architect an enterprise level application, but are very strong in maintenance roles.
The other side of the spectrum are your advanced developers. People who push ColdFusion to the limits of what it can do and beyond. These are people who architect applications from the ground up. These are developers who recognize the power of objects and what they can bring to a ColdFusion application. They tend to look at a project from a much higher level and can abstract concepts much easier and quicker than the previous group. They have embraced CFCs and gateways and exploited all that CF can do, plus tried to push ColdFusion to its limits and beyond.
Why is this even an issue?
The ColdFusion market is BOOMING right now. Look at Monster, HotJobs, etc. Everyone wants a ColdFusion developer right now. A lot of people want an entry level developer, or a junior developer. Who, but someone fresh out of school, is going to call themselves a junior developer? Most people who have been in the game for a few years consider themselves senior-level, or highly experienced ColdFusion developers. But are they really?
It doesn't take long for a ColdFusion developer to ramp up. I believe that someone who has a decent grasp of programming concepts (procedural or OO) can become a decent ColdFusion developer in 2 months. The problem comes when they reach a certain plateau of their skill set. At this plateau, they can use the basic functionality that makes ColdFusion viable and make a decent living. They do not much more with ColdFusion than your rudimentary database tasks.
The other option is for them to push themselves and their skill sets with regard to ColdFusion. This is where that divide begins to get filled in as you have developers who push themselves past the rudimentary ColdFusion skill set and explore objects. They don't have to master a framework or break some new ground with ColdFusion, they just have to break out of that skill plateau that has been good them up to now.
One of the great strengths, and possibly weaknesses, of ColdFusion is that it allows for this divide to be created. Developers can code in a procedural manner, or they can embrace the object-oriented methodology. Cries of developers complaining that ColdFusion is becoming too much like Java can be stopped with one sentence: You do not have to use the new functionality if you don't want to use it. Plain and simple.
Will this gap fill overnight? No. Will it fill over the next six months to a year? Maybe. It's up to people to want to increase their skill sets and break out of their comfort zones to fill that gap. Until developers are ready to break out of their comfort zone and venture into space they have not before, this divide will remain.
Are you ready to push your limits?