State of The CF Union Analysis part 1
You can listen to the podcast and read the show notes here.
Michael: Okay. Hi, I'm Michaela Light from TeraTech, and here is Brad Wood from Ortus Solutions.
Brad: Yes, I am Brad Wood. I'm a developer advocate and I consult in Ortus Solutions. Thank you, Michael.
Michael: Thank you. Brad helped in making sure the questions for this year's State of the Union CF Survey were good, along with some feedback from the community that we both gathered, so I'll thank you on that, Brad.
Brad: Every year we have suggestions that people have, so we try to make a note of those and include them in the following year for sure.
Michael: Yeah, and we read all the comments and suggestions. What we're going to do now is going to share the screen on it and just talk through some of the really interesting results on this year's survey. Let me go ahead and get that …
Brad: Absolutely.
Michael: … Screen to share.
Brad: While you're doing that, I think it's worth pointing out that it's not just us that read through all of the survey results, but I know that even Adobe pays attention to the survey as well, so it's good to know that the comments and the results on here are definitely being seen by even the largest players in the CF space.
Michael: Yeah. That is true. Everyone's welcome to read the results. They're at the TeraTech website and you can all see all the results in as much detail as you care to. Let's just have a look at this. Hopefully you can see the first question here on the screen share of which CFML engine do people use? The most popular engine is still CF 11, which was true last year, which is kind of surprising in some ways, Brad.
Brad: It is. It's nice to see the ColdFusion 9 members finally shrinking. It was a version that a lot of people got stuck at for many years, so we feel better about dropping support for that in the ColdBox framework, ColdBox 5, for instance, coming up. CF 11 is still very much on top. 2016 is growing, but it's even behind CF 10 at this point, which is very interesting to see.
Michael: Yeah. Also, if I just … Let me get my cursor back. There's some interesting numbers here too if I just scroll down a bit on Lucee, because Lucee 5 is actually more popular among the survey takers than CF 10 or CF 2016.
Brad: Yeah, so of course it's important to note that this is only out of the people that take the survey, so I do think the people more active in the community that are likely to see the survey are more likely to be using Lucee, but it is very heartening to see a very solid uptake, especially even just in Lucee 5. Of course, now that it's been a year or so you can see the Railo shrinking into oblivion since it's essentially unsupported at this point. Very strong numbers.
Michael: I'm just scrolling down so we can see the oblivion at the bottom. Of course, BlueDragon is just totally … There's one or two people using that, but most people who are using CFML open-source run Lucee.
Brad: It's interesting to note as well, thinking about these graphs, which versions are still supported, right? Railo at this point has no support. Lucee 4 has support only for security fixes, but it's not seeing enhancements, that's all going to Lucee 5. On the Adobe stack, CF 9 was still a decent chunk of users, that's already outside of the support window, and CF 10 is coming right behind.
Michael: Yeah.
Brad: All those CF 10 users are very quick.
Michael: Yeah, CF 9 I think went … I think CF 9 went end of life, is it two years ago?
Brad: Quite a while ago.
Michael: It's quite a while.
Brad: CF 10 I think is maybe just a very short period of time away, so very soon there's going to be quite a chunk of Adobe people that are outside of the support window, which is a little scary to think about.
Michael: Well, and that means not just support, but it means no more security hot fixes, which to me, that's like driving a car with no brakes and praying that nothing comes on the road that you need to stop for.
Brad: If a zero day exploit comes out with an unsupported version, you could find yourself in quite a pickle.
Michael: If any exploit comes out really, because Adobe is not going to release any hot fix, so what are you going to do? Doesn't matter if it's zero day or if it's day 100, you're still screwed.
Brad: True.
Michael: Well, anyway, let's move on down to … I don't know if there's much to say about Enterprise versus Standards, quite a lot of people using Enterprise.
Brad: Not a great deal. Pretty neck and neck. I assume the non-applicables are probably mostly the Lucee user base, since there's no differentiation there.
Michael: Yeah, you get all features in the one version. I guess it's either free in one version or free in the other versions. They said, “Screw it. We're just going to have one version.” And then on … Yeah, go ahead.
Brad: I was just going to say, interesting note is that back in the early Railo days, there actually used to be a premium version of Railo that had additional features, but that's no longer the case with Lucee. Little factoid there.
Michael: It doesn't make sense in open-source, I don't think. Server OS, most people using Windows but there's a big chunk of people using Linux or something similar.
Brad: Yeah, I think the large …
Michael: There's still some Unix flavors out there.
Brad: I think the large Windows use is something that's sort of unique to the ColdFusion and .NET environments probably. If you were to do a similar poll looking at PHP or some of the other popular languages, I think you'd see an inverse of a lot more Linux users. What's interesting though is there is a solid chunk of Mac people, and this is for the server OS. This means people are hosting their servers on Macs, and that's actually a decent chunk. I've only met one person before that I knew that hosted on Macs. That's an interesting number there.
Michael: Yeah, I've met a few people. Sometimes ColdFusion doesn't work exactly the same on Mac in my experience, but maybe they're running a staging server or development server, and they develop on Mac and they're hosting it on a Mac.
Brad: True.
Michael: Don't forget, this was a multi-option question, so if people run both Windows and Mac, they could've checked both.
Brad: That is correct. Some people could've checked all of them depending on their deployments.
Michael: Moving on, what about their laptop? Where are they doing their development? Again, Windows is the big winner there which I thought was an enormous surprise.
Brad: Mac and Linux is obviously going to flip-flop here. I find this question particularly interesting for me as a lead developer of CommandBox. It's a native CLI tool that runs on the operating system, so this helps me know what to target as far as the operating systems people are going to be running those tools on. I think this also plays in as well with the operating systems that Adobe supports for things like CF Builder, which, again, I don't think it supports Linux currently, and you can see it's … What is that? 13%.
Michael: Yep. 13%.
Brad: Honestly, it's difficult to write off 13%. That's still a decent chunk of users.
Michael: Yeah. Well, there's a lot of reasons to have your laptop on Linux. It's more secure and you've got more options and things, and you can still emulate Windows in it if you need to. Lot of folks go that way. All right, so what about browsers and client platforms that you support in your apps? Seems like it's all over the place here. People are supporting just about every browser, I mean some of them are.
Brad: I don't know of many places that ever explicitly don't support a browser, the only exception typically being a government type of intranet site in which they'll say, “We only support IE, screw everybody else.” Generally speaking, if you have users with money in their hands saying, “Shut up and take my money,” then whatever browser they're using, your company's in favor of supporting. It's just harder to be a place that won't support a browser.
Michael: I think there have been … I've seen people who don't support IE sometimes. Maybe Microsoft stepped up a bit in the last few years, but there seemed to be a while where they really weren't updating it as much as Google updated Chrome.
Brad: Yeah, Microsoft got a little fat and lazy for a while. It wasn't until they get some pretty stiff competition that they really stepped up their work on IE and now Edge.
Michael: Yeah, that's really come up. I don't remember that even being there last year.
Brad: Yeah.
Michael: All right. Moving down, databases. Everyone uses a database, right? Some of us use Access, apparently.
Brad: I think everybody who does ColdFusion since the late '90s used Access at one point in time.
Michael: It's fine for developing, as long as you get it into MySQL or SQL Server or something else later.
Brad: There's nothing incredibly surprising here. I think SQL Server is an incredibly common pairing, and a lot of the government uses a ColdFusion, especially with Windows-based hosting. MySQL probably the most common source. I'm a little surprised PostgreSQL isn't a little higher, just since I know that the people that love it, it's a rather beloved option. It's interesting.
Michael: Oracle's pretty big too, and considering every time I talk to Oracle it seems to be quite complicated to use compared to MySQL or SQL Server.
Brad: Yeah, for sure. It's nice to see some other options like Couchbase things with some decent uptake in there.
Michael: Yeah, that's the distributed database, right?
Brad: Couchbase does have a distributed architecture. It started out as a marriage of Memcached and CouchDB, but it's grown quite a bit since then.
Michael: There are also some distributed options you can do with SQL Server, Oracle, and MySQL.
Brad: They're nothing like Couchbase, but that's a great topic for another day.
Michael: Yeah, we'll save that discussion for another time. Frameworks. Oh yeah, this used to be a contentious thing. I think maybe it's less contentious these times, these days. What is the most popular framework? It seems to be kind of neck and neck there, Brad. custom homegrown, by looks of it.
Brad: There's a lot of people still to fall on the custom homegrown and the don't use a framework. I think a lot of …
Michael: Oh yes. I thought that was a framework down there called none.
Brad: It's the none framework. I think a very large percentage of the ColdFusion code out there falls in the legacy bucket, and even if those people would use their framework today, they're unlikely to rewrite it from scratch. I don't know, but those two bars have fallen much, to be honest. I've seen the ColdBox and the Framework One bars increase every year a little bit, but it seems like the other ones don't manage to decrease too much.
Michael: Yeah, makes sense.
Brad: Right? Even Fusebox has a pretty solid usage of 18% or something, and I don't think many people are building new things, but it's just a lot of existing …
Michael: Lot of legacy.
Brad: Yeah, doesn't go away quickly.
Michael: Well, I think we'd better declare a winner here, which I think is ColdBox by a hair's breadth there. Looks like there's a few more ColdBoxes than FW1s, but they're both very popular. And then Fusebox respectable, and then Mach-II, Model-Glue, CFWheels, pretty more unusual.
Brad: Yeah, CFWheels is at least the third framework in that list that is actively developed on, whereas Mach-II and Model-Glue have essentially hit the end of their road.
Michael: All right. CMS is content management systems.
Brad: We broke this out into a separate question this year. It used to be kind of mixed in with the framework question.
Michael: Yeah, I think it makes more sense separate. That's a great suggestion that you or someone else there made.
Brad: The custom homegrown, there's a lot of homegrown CMSs in the ColdFusion space, which I guess isn't that surprising, but it's interesting. I think Mura is the clear winner. They're probably the oldest ColdFusion CMS. We ContentBox.
Michael: I thought FarCry was pretty old. I'm sure they came out before Mura did, but …
Brad: FarCry is very old, though I don't know if anyone outside of Daemon is using it. Geoff Bowers helps run that. I've never seen a lot of uptake, but it has been around for a very long time. I do know this.
Michael: Mura of course is open-source, so you can tweak with it however you feel. Really the winner is custom homegrown, interestingly.
Brad: It is.
Michael: Unless you want to think that the none CMS is the winner.
Brad: The none.
Michael: Right, yes. It's made by these people in habits in a little monastery somewhere.
Brad:
Michael: JavaScript libraries. I think we have a clear winner there. I see jQuery is used by nearly everyone.
Brad: I consider jQuery more of a building block than a comprehensive library like Angular and such. It's no surprise that everybody uses jQuery. We did break out AngularJS one and two this year, and so I'm kind of glad we did that. You can see that Angular 1 is still ahead, but there's a lot of uptake in Angular 2. I think React is the next closest thing that we have there.
Michael: Yeah, and then all the others are down in the 5% kind of zone.
Brad: We're only representing what? 15 of about 15 billion JavaScript frameworks that exist right now.
Michael: Yeah, there's a lot of choice there. Then CSS frameworks. Now, interesting, no surprise, I think that Bootstrap's the winner there, but it's not like everyone uses Bootstrap. There's definitely use of some other frameworks there, and none is also popular.
Brad: Total response is 459, so most people did respond to that question.
Michael: Yeah. I'm not sure … These days when you have to get code to work on a desktop and mobile and tablets, I'm not sure why you wouldn't use a CSS framework, but maybe I'm missing something here.
Brad: They don't work with my table-based layouts, Michael.
Michael: Oh, okay. Yes. Okay, I'd forgotten about that. Let's move on to a bit more coding stuff. CFCs dependency injection. Maybe we'd better explain what that actually is, just in case some people aren't clear why they'd even want to use it.
Brad: Right, yeah. Dependency injection frameworks help you create your CFC instances and they help inject references to other CFCs to help manage the relationships between them. I think this question is very interesting juxtaposed with another question we have coming up that says how many of you are using CFCs? There's a much larger segment of the ColdFusion community that says they're using CFCs, but that's not really reflected here in the who's using dependency injection. That tells me that a lot of people using CFCs I think maybe more in a very simplistic level. It's just manually creating their own CFCs and not getting too fancy.
Michael: Well, and if you only have two or three CFCs and a few functions in each, that probably doesn't matter, but once you start getting hundreds of the things, it really can get screwed up if you don't do dependency injection.
Brad: I call that glorified includes. Some people essentially as a fancier cfinclude, which is fine. It's nice to look at and logic, but they're probably not modeling their actual business entities out of CFCs.
Michael: If you're using CFC seriously, you really want to be using one of these dependency injection frameworks.
Brad: WireBox and DI/1 are actively maintained. WireBox obviously part of the ColdBox ecosystem, DI/1 part of the Framework One ecosystem. Cold Spring has been a project that hasn't seen development in many years, but there still seems to be a decent amount of use out there. I am curious about the homegrown. I'm curious what that looks like. I can't say I've ran across too many people that talk about building their own DI engine, so maybe it's just some factories that they've built. I'd be interested to see what those are.
Michael: Right. Well, maybe some people will message you after this and say, “Here's my cool injection tool.”
Brad: Sure, yeah.
Michael: The system frameworks, looks like most people don't use those, but if you are using objects in your code and a system framework to instantiate them, the one built into ColdFusion is what most people are using.
Brad: Yeah, and these aren't all mutually exclusive. For instance, the ColdBox cborm module is actually a library you use along with ColdFusion ORM, not as opposed to, so that's interesting. You can see a lot of the major frameworks, the CMSs, have their own versions, CFWheels, Objects, FarCry Object Broker. A lot of those were written in last year in the same questions, so we added them as actual responses.
Transfer I think is the closest that the ColdFusion community ever saw to the full ColdFusion ORM. That obviously was back in the days prior to CF 9, but all but disappeared here.
Michael: Yeah, as has Reactor, which came out around the same kind of time.
Brad: Mm-hmm (affirmative). ORM isn't an incredibly popular option in the ColdFusion community. A lot of places like Ruby and Groovy, Grails, they really push ORM as just the default way to built things. It's never quite caught on as much in the CFML space, and I think you can see that reflected here.
Michael: Well, I think people like their cfquery tag and don't want to let someone else manipulate the data, but can speed things up if you do that approach. All right, well, what about mocking and testing? What exactly is mocking, Brad? Just in case some of the people on the none option weren't too clear why they'd even want to be doing it.
Brad: When you start writing unit tests, you want to test a single function in isolation, only the code in that function. If that function calls another function, you want to mock and have a fake function call, but it can call for you. Mocking is just a library that creates fake CFCs, fake functions, fake queries to fake a database call, basically used for creating mock data and mock interfaces so you can eliminate everything else but the code you're running the test on.
Michael: And then presumably automate the testing, so once you've made a change, the tests will get re-run automatically.
Brad: Yeah, so MockBox is a part of TestBox, right? You don't have to use MockBox, but it comes a part of TestBox. TestBox is the only maintained testing framework at this point. MXUnit was very popular, but the creators, they sort of left the ColdFusion space. Selenium is a browser-based testing, like a web driver, though there is a CF Selenium project. I'm unclear on the respondents to this question if they're using the CF Selenium project that I think Bob Silverberg had made, or if they're just using Selenium by itself, which you can drop in as a jar. CFC unit, I believe that's also …
Michael: That's pretty old.
Brad: … No longer maintained.
Michael: I seem to remember MXUnit was based on some Java unit testing thing.
Brad: Yeah, just the standard xUnit style of test. TestBox supports and of course it's the only CFML testing framework that has the BDD style of testing as well, sort of very.
Michael: Oh, so if you've got some tests written in MXUnit, you can just pull them into Test Box? Is that what you're saying?
Brad: Yes, actually. TestBox actually has a compatibility feature where it will run any MXUnit test out of the box. In fact, a couple notable people, Sean Corfield and Adam Cameron, when TestBox first came out had a very large MXUnit test suite, and they just ported them right over to TestBox with very few changes. We did that on purpose to make it easy. No one wants to go through and rewrite all of your tests, right?
Michael: No. It's bad enough having to rewrite your code when a new version of ColdFusion comes out. I know Adobe and Lucee both do their best to be backwards compatible.
Brad: To a fault, yes.
Michael: To a fault, okay.
Brad: Sometimes people wish they'd be a bit less backwards compatible, but at the end of the day they get money when people upgrade, and people upgrade when it's easy, right?
Michael: Well, yeah, and who wants to go through thousands of lines of code just because you upgraded the server? What I'd like is the old code runs fine but there's some way to get a list of things that really should be changed that are depreciated or whatever the appropriate …
Brad: Deprecated.
Michael: Deprecated. There you go.
Brad: Deprecated. The only surprising thing in this question for me, we did add “modules and extensions that are provided by your framework.” That was a new answer this year. The only thing that's surprising about this one though is the none. There's actually a couple people that somehow managed to not use anything. Five people. How do you not use even cfincludes? I can't imagine, unless there's five people that no longer program on ColdFusion who took the survey.
Michael: Well, that's possible. I guess if you had a really long piece of spaghetti code with no includes, that's possible, but I wouldn't recommend it.
Brad: 95% of people say they're using CFCs in their code, but I forget the number, a fairly small amount of people are actually …
Michael: 40% wasn't it?
Brad: Yeah, are using a dependency injection framework to manage it.
Michael: I suspect, like you said earlier, Brad, that they're not really using objects. They're using them as includes in a CFC. Just a piece of code they're calling and they're not really dealing with the object stuff, but we could be wrong. It could be they're doing all this and just didn't know you should be using dependency injection.
Brad: Well, if it works for them and their company's making money, you can only fault it so much.
Michael: There you go.
Brad: People have apps in production that don't use dependency injection and it solves business problems, so I can't bag on them too much for not doing it, that's for sure.
Michael: Now, we're coming to a question here, what source code control method do you use. That was somewhat contentious last year. I think a certain Mr. Cameron had a …
Brad: Actually, it was two years ago when he.
Michael: Was it two years ago that he wrote that blog post that ripped a few butt holes for people who needed extra ones?
Brad: One of the first times the survey was run, I believe the, “I don't use source control at all,” question, which was here at the bottom, was up to like 20% maybe. It was a very large amount of people.
Michael: Well, here's none. Still got 5% there. It's still pretty popular, but you've also got the zip-up folders option, which I admit I used to do that like …
Brad: I've done that too.
Michael: … 15 years ago or whatever.
Brad: Command line man.
Michael: There's another one here somewhere that's copy directories.
Brad: Copy directories.
Michael: Yeah. If you assume that people who copy directories, zip them up, or don't do anything are all separate, that's 15% of people still not really doing source control in any serious way.
Brad: But I mean that has shrunk, which is good. I think Git is emerging as the clear winner here. GitHub obviously is a specific hosted of Git's.
Michael: Again, this is check all that apply, so people who check Git could also check GitHub.
Brad: Bitbucket as well. There's actually a bit more Bitbucket than I expected. That's pretty cool.
Michael: Yeah, that's the semi-paid version of Git. I say semi-paid because if you've got five people or less on your team, you don't pay, but once you click over five.
Brad: Bitbucket seems to specialize more in private repos, where GitHub seems to specialize more in public. Bitbucket of course also allows Mercurial repositories as well as opposed to …
Michael: Oh, I didn't know that.
Brad: Yeah, so some people using Bitbucket may be using Mercurial, whereas everybody who checked GitHub in theory checked the Git box as well.
Michael: And then if you're not into Git, there's always Subversion, which is still popular.
Brad: 10 years ago I think it probably would've had the most votes in here.
Michael: Yep. Right, but there's a lot of advantages to get if you're working with people in different locations and want to branch more easy.
Brad: I think the open-source community has really embraced Git in general as the source control to use, especially just with GitHub becoming the hub for open-source projects. It makes a lot of sense.
Michael: All right. Well, let's skip on to the next question. IDEs and tools, always a good place for a healthy discussion.
Brad: I was surprised to see a lot of CFEclipse users, and that's great to know that people are still getting a lot of use out of it. I think Denny Valiant has been doing some maintenance on that, so there's still more people than I would've expected. Even Dreamweaver, having dropped ColdFusion support for a while and then now very recently bringing it back, there's still a lot of people using presumably old versions of Dreamweaver. Even Notepad++ has a lot of people.
Michael: Doesn't that have an add-on that supports CFML?
Brad: Yeah. There's some code coloring, so for a quick and dirty editor it's not too bad.
Michael: A lot of these text editors that are from any programming language have basically you can write an add-on or download an add-on, the couple highlights that has.
Brad: We removed a couple this year, like I think Vim used to be on there and maybe Emacs. We did that because we only had like two or three last year, so we just removed both.
Michael: I just noticed scrolling to the bottom that it looks like the most popular is actually Sublime Text 3.
Brad: That's no surprise. All the trainings and things that I do, it's by far what most everybody in the room is using. There's ColdFusion highlighting, there's ColdBox plugins, there's a CommandBox plugin, there's a lot of community input around Sublime Text 3, so it's no surprise to see it being used so heavily. What, 44%? What's CF Builder at? The official Adobe IDE …
Michael: 25%.
Brad: 25%.
Michael: CFEclipse, which is older, 19%. Notepad++ is beating them at 23.
Brad: This was a check-all, right? So it's entirely possible people have one of these on their server, one of them on their local machine.
Michael: Yep. Even Visual Studio. I think what happens with IDEs, and I know this is true for me, you learn one and you get to like it and it does it good enough, and you just stay with it.
Brad: Yeah. You get.
Michael: Unless it goes into a death row and isn't being supported or something, why would you change? Why would you change? Let's make that a question.
Brad: One of the biggest reasons I think people change is plugin communities and speed. Several of these on the list are all Eclipse-based, which is based on Java, it can be slower, can take a lot of memory. One of the big things about Sublime is it's always been very lightweight and very fast, and I know that's attractive to a lot of people. They don't want an IDE that's very heavy, it locks up for five minutes while it re-indexes everything or whatever it might be doing.
Michael: I know some of these other ones, like I know Ultra Edit is really fast and I'm thinking that TextPad and Notepad++ probably have the same benefit. They're not running on Java, they're coded in C probably. They just run a lot faster, even if they don't have all the amazing bells and whistles that you might get in CF Builder. Right. We've looked at IDEs, what about browser dev tools? How do you debug all that HTML and CSS being admitted by ColdFusion?
Brad: I'm not sure how we actually got Firefox. Oh I see. I thought Firebug was the Firefox dev tool.
Michael: I think there are things built into Firefox for inspecting elements and things. Maybe that's …
Brad: I haven't used Firefox in years now. I mostly use Chrome.
Michael: Yeah, I mostly use Chrome too. I only fire up Firefox when Chrome is feeling sick for the week.
Brad: Yeah. I assume the prevalence of Chrome debugging tools is probably based on the fact that most developers are using Chrome just as their browser, and so it's the.
Michael: I'm pretty sure it used to be that Firefox had better debugging tools, but then Google caught up.
Brad: Back in the day, when Firefox was busy smashing Internet Explorer, it was the golden child for a while, and then Google started leaning their weight on Chrome when it became very popular.
Michael: I know. What are you going to do if you have an open-source project and then Google decides they're going to have a competing one?
Brad: You're screwed.
Michael: Well, I was trying to think of a more polite way to put it, but yeah, basically. All right, let's look at some experience questions. How long have people been using CFML who took the survey? It's very clear that a lot of people have been doing it for a long time, basically since ColdFusion 1.5.
Brad: Absolutely, and this is one of the more sobering questions on here, because this isn't really what you want to see in a language. If you look at Clojure, which is a language that has about as many people doing it as ColdFusion but it's only a few years old, you'll see a graph that's almost the complete inverse. First of all, it doesn't go to 15 years because it hasn't been around that long, but second of all, you'll see the majority of people using it all started in the last one or two years.
I was at a Java conference with Luis Majano last week, the creator of ColdBox, and we were talking to some of the Java developers there and they were saying that the Java community suffers from a lot of the same sort of stuff, lots of legacy code, lots of older people just age-wise in general as well as the amount of time they've been into it, and Fusion is not as new, it's not as cool, not as many people flowing in. I think this is something that the ColdFusion community, that Lucee, that Adobe all need to work on addressing. How do we get people in to look at a language? I'm guessing those, what, five people that started this last year probably got hired at a job maybe out of college or something and they said, “Oh hey, we're using ColdFusion,” and that's why they learned it.
Michael: Or not necessarily out of college. I've seen companies hire Java programmers or PHP programmers or whatever, and if they're good at programming and they know how to write clean code, they can learn ColdFusion in a month or two good enough to churn out good code.
Brad: Yeah, but I think this is one of the graphs we need to bring.
Michael: Turn around. Yeah, absolutely. Where are the new people coming into the language? They're just not there, at least not for the people answering the survey.
Brad: Eventually you're going to have just a natural attrition. All the people in that 15 year group are going to retire at some point, right? They're not going to develop until they're 70.
Michael: Well, retire or get run over by a bus, one or the other.
Brad: I was thinking of a more polite way to say that, Michael.
Michael: I used to run a user group, and honestly we had at least two people die in the 11 years we ran it. I know it's a little morbid.
Brad: This is an area of opportunity, in my opinion. I think this is best serviced by grassroots. I know a lot of people say they want to see Adobe do more, they want to see Lucee do more. They always want people to do more and that's fine, but I think this kind of growth happens at the grassroots level. I think people start using Clojure because they run into people at a local, open source user group that say, “Man, I'm using this language called Clojure. It's amazing, you should try it.” I think that's the kind of stuff that grows these people looking into a language even more so than Adobe running marketing ads somewhere. I guess I say that to say the onus is on all of us as ColdFusion developers to help fix this graph.
Michael: Do some mentoring of some students in a college or teach a course in a college, just encourage younger people to give it a go because it's so easy to get going on it and it's really powerful, because we don't want to end up looking like the COBOL curve, which is even more extreme version of the same graph.
Brad: Yes. I agree. I've worked at some places that still use COBOL.
Michael: But look at this, there is some good news here. Not every language lasts 18 years or 20 years. I forget how old ColdFusion is. I want to say it was 19.
Brad: It's 21 this year.
Michael: Is it 21? Really? Wow.
Brad: Not this last year, but the previous year, they had the big 20 year anniversary at CF Summit. This year was the 21st year.
Michael: Well, not every computer language makes it to 21 years. Not everyone makes it to five years. Let's face it.
Brad: More or less. The average age of web-based technologies is actually around 22 to 23 years. If you look at Java, Ruby, JavaScript, HTML, CSS, SQL, which is like 45 years old, the average language being used to write web applications is actually a bit older than ColdFusion. We're below average, but that's not to detract from the fact that the language is very mature. Food for thought.
Michael: I think we're going to have to add a 15 to 20 and 20 plus thing next year.
Brad: I think so.
Michael: Then similar question how long you've been using object orientation. About a third of people been using it for six to 10 years, a bunch of people using it for more than 10 years.
Brad: My question here is always what are they doing with it? Are you building what I would refer to as a modern CFML application? Or is it, “Yeah, we've got some CFCs and we put some code in it,” which may solve their business problems but it may not necessarily be a modern application life cycle.
Michael: Yeah, I don't know. I can't even think how we'd phrase the question that could be accurately answered for that.
Brad: I don't know if we can.
Michael: I think you've got to have people open the kimono to their code and reveal how object orientated it really is. All right, other languages. A lot of ColdFusion people code in other languages too.
Brad: Ajax isn't so much a language, I'm not entirely sure why we have that there.
Michael: Sounds cool.
Brad: Everybody uses Ajax, right? .NET's a big one.
Michael: JavaScript is a language though.
Brad: It is, and everybody uses JavaScript. If you're doing web development, you can't avoid JavaScript. Lot of Java, quite a bit of Node. I actually expected a bit more Ruby. Where are they at on here? They might be down a bit lower. Yeah, there we go. Rails of course is actually a framework, an MVC framework. I expected it'd be a bit more Ruby. Not surprised, no. Lot of Java, lot of PHP, Python.
Michael: Not that much … There's a fair amount of .NET.
Brad: Yeah.
Michael: But really a really wide array of different languages people know.
Brad: Look at AIR and FLEX. There's still a decent chunk of people, and that's not too surprising. I think the companies that put a lot of investment into FLEX and AIR, the Adobe, are still using some of those things. I know of a couple people that make a lot of money updating FLEX applications.
Michael: I sometimes think that when I learn a programming language, it's almost like getting a tattoo. It's a lot easier just to leave the knowledge there and occasionally look at it than have it deliberately removed.
Brad: A tattoo. That's an interesting way of putting it.
Michael: Languages just persist.
Brad: Now, this I found interesting. I actually this trended towards the corporate enterprise stuff, but this shows me that there's a lot of smallish teams. The Adobe guys, Alisha and Kishore, I was with them last week at a conference, they said they see the same thing, a lot of smaller ColdFusion out there. The team of one is what? 20% of people work by themselves.
Michael: We forgot to put zero in here for those people who no longer use ColdFusion who answered the survey anyway because they were feeling generous. There's some big teams out there too. I don't know how big. We just put 30 plus here, maybe we should have a larger number next year. I don't know.
Brad: We could. I know of a couple people that have more than 50 developers. Now, they may be broken into teams, but as far as at their organization, I know of a couple of them.
Michael: In fact, maybe, I don't know if we want to have … There's a trade-off for how many questions we have and how much detailed info we get, because I really appreciate everyone spending the time they took to fill this out. It's a question of team size versus how many developers there. Some of the organizations, like Boeing or whatever, I forget how many employees they have but it's 10,000 plus, I think.
Brad: It's like 80 billion I think.
Michael: 80 billion employees.
Brad: Boeing has a lot of ColdFusion servers.
Michael: They do, and a lot of developers.
Brad: And this is.
Michael: Total employees, so that's right into this question. 5% of people doing the survey are organizations with 10,000 or more people in them, whereas you can see the majority of people are in small organizations.
Brad: We have sort of a long tail, but it's the other way around. To me it's refreshing I think to see that the majority of people taking the survey are in small business. I think that's kind of cool, because we talk about how ColdFusion is still prevalent in government and the financial sector.
Michael: Well, government must be all … This is either Fortune 100 or government, this 10,000 plus.
Brad: Fortune 500. I'm guessing most of those people who did 10,000 plus are probably a part of some government or a small handful of companies.
Michael: Very interesting. ColdFusion user group meetings. Now, I remember a while ago back when Allaire ran ColdFusion …
Brad: That was more than a while ago, Michael.
Michael: Okay. Might've been in the last century, actually.
Brad: There you go.
Michael: Yeah. Everyone and his dog went to ColdFusion user group meetings, but now, a lot of ColdFusion user groups have closed or they can't get speakers. Maybe people are bored of going to them, I don't know.
Brad: I kind of want to add an answer to this next year that says, “There's no available user groups in my area,” because I think most of the people that checked never quite possibly just somewhere where there's not a user group. I'm from Kansas City. We used to have a ColdFusion user group. It died down a few years ago, just no one to help lead it. If I wanted to go to a user group meeting at this point, no I couldn't if I wanted to, at least not an in-person one.
Michael: That's a great suggestion to add onto this because maybe there's some pent up demand that's not being addressed.
Brad: Pent up demand.
Michael: Yeah. Maybe there's … I'm trying not to make mine go dirty at this point. Maybe that's something some people might feel like stepping up to do, to host a user group, even. I know when I started a user group, only a handful of people would turn up, but it builds over time. Even when only a handful turn up, I still would learn stuff and we'd share info and have a good time.
Brad: It would be interesting to see how many cities are there out there, medium cities, whatever, where there's at least five or 10 people that would go to a ColdFusion user group if one of them would take the time to be able to reach the rest of them and say, “Hey, let's start up a group,” because many people might think, “Well, who would come to it?” So they don't do it.
Michael: I think we could have a separate discussion about that and maybe a separate survey.
Brad: I'd like to know who's not going to user groups because they don't want to, like, “Yeah, I could, but I don't care,” and who's thinking, “Man, I'd love to have a user group to go to,” because maybe that's something, like you said, that's untapped. I think this is another graph of opportunity here. How can we change that? It's going to be way harder for me to talk to a friend and say, “Hey, I code in this language called ColdFusion, you should try it,” if I don't have the ability to say, “And why don't you come to my user group meeting this month and take a look at some of the stuff we're working on?” Without that community … Communities grow languages. Communities grow languages, and the ColdFusion community can't grow a language when there's so few attended user groups, in my opinion. That's what the.
Michael: Forums and Slack and what have you are all very great for community, but they are not the same as getting together at a user group meeting or a conference.
Brad: Yeah, networking works best in person, grassroots networking.
Michael: Or even just explaining a code problem you have. You bring your laptop with you and you get together over a beer or a coffee or whatever and say, “Hey, can you help me out on this piece of code?” I've seen people do that at user group meetings. Definitely. Speaking of conferences, all right, most popular conference is none, yes? But if they are going to a conference, the ColdFusion Summit, cf.objective(), CF Camp, Developer Week, in fact that's next week I think, right?
Brad: No. Into the Box is next month. We have some dates for Ortus Developer Week, I don't think we've announced them yet.
Michael: Oh, okay.
Brad: The one thing that's interesting to me about this is that out of the respondents of the survey, nearly as many people checked cf.objective() as checked Adobe ColdFusion Summit. If you look at the actual attendance numbers of these conferences, Adobe ColdFusion Summit last year was about 550, CF Objective was about 140, CF Camp was probably about 120 to 150, Into the Box was like 60, NC Dev CON I think is right under 300, and these graphs don't necessarily represent that.
That tells me there's a lot of people that attend Adobe CF Summit but didn't take the survey, because there were two to three times as many people in attendance, yet a marginally larger number of people. I think a lot of people that took the survey are probably some of the more active types that already hit several conferences to begin with. CF Summit pulls a lot of the dark matter out of the community that you don't see anywhere else, which I think.
Michael: Have they proved that dark matter exists?
Brad: It does. It's the rest of the ColdFusion developers. No one can find them, but they're out there.
Michael: Is there even darker dark matter that don't even go to conferences but they're still coding in ColdFusion?
Brad: Those are the people who left ColdFusion, Michael. They went to PHP.
Michael: No, I think really … I think there are people in corporations who just … That's the darkest dark matter. No, I think there are people who just, they've got a 9:00 to 5:00 job. They don't have time to go on Slack or go to forums or anything or go to conferences, they just want to get their job done, but they're still coding away in it.
Brad: I can see that. The other thing I'd like to see here is would you attend a conference if you had the opportunity?
Michael: Oh, that's a good question.
Brad: I'm guessing a lot in the none category who would be like, “Man, it would be awesome to go to a conference. My company's not paying for that.” That's something I would like to see that's not represented in the graph here.
Michael: What's the deal with CF Camp? Is that like a code camp?
Brad: No, it's just a regular conference.
Michael: It is?
Brad: Yeah.
Michael: But do you remember those Bar Camp or Code Camp or whatever they call them? It was like a free thing where you'd show off code. It was like an un-conference kind of thing.
Brad: No, it's just a regular conference. I've been there the last two years. Net does it right there in Munich in Germany. It's at the right there in the airport. It's actually one of my favorite conferences. It's a smaller field, but it has a very family feel to it. It has great food, great location, and it has regular sessions just like every other conference. Has a lot of after activities. They do a code war that Gert Frans will help organize every year, I had to sumo wrestle Chris Schmitz in a sumo suit the first year I went. They have a lot of fun after-party stuff.
Michael: Cool.
Brad: It's a good conference. At this point, it's really the only conference left
Michael: If you're either in Europe or you have an excuse to go there, then that's good to check out.
Brad: Died off.
Michael: I was going to say, that's just not on here anymore.
Brad: That went by the wayside.
Michael: Probably drank too much Scotch. All right. Let's have … Maybe now's a good point to stop this one. I know you've got to wrap up at the top of the hour for you. Maybe we come back another day and have a look at some of the other ones because there's definitely some more interesting questions further down in the survey.
Brad: Yeah, there definitely are. We have a lot of good content in here to unpack.
Michael: Yeah. Let me just stop the screen sharing if I can get that to …
Brad: If you can figure it out.
Michael: Yeah, I've got to figure it out. There we go. All right, now we can see Brad and myself. That was really interesting.
Brad: What's the total number of respondents so far this year, Michael?
Michael: Gosh. I'm just going to go up to the top of the survey.
Brad:
Michael: It's over four … Oh, I was going to say it's over 450. 470.
Brad: We're closing in on 500.
Michael: Yeah. I think it'll get to 500. I think last year's was around that.
Brad: Even though …
Michael: And they kind of keep dripping in over time. When we put out, we say, “Okay, this is the final survey results,” another flurry of people say, “Oh yeah, I forgot to do it,” and they come in and fill it out.
Brad: Sure. Even though it's a relatively small sample of the population, I usually tell people that the State of the CF Union survey is the largest out of the ColdFusion surveys, so I do think we get the best sampling, if you will, from the survey.
Michael: Yeah, and it's a free survey. We tell as many people as we can about it and if anyone … Because I had a few comments from people saying, “How can we get ‘regular ColdFusion programmer starts the survey'?” I'd love to reach more people to get better data, but it's how do you reach them, because …
Brad: Well, that's the trick, yeah. It's that dark matter again, right? They're not part of the social spheres, and it's very difficult to get things in front of them. It can be frustrating sometimes. There's people that I'll run into sometimes at conferences and I'll ask them about a certain technology and if they're using it. It might be three or four years old, and their response is, “I've never heard of that.” That's one of the frustrating parts, I think, this other area of opportunity is increasing the engagement of the CF community out there so people are more familiar with what's going on.
I think CFML Slack has been a fantastic platform. Just this morning, somebody asked on CFML Slack about a querying language for ColdFusion, and I happened to see it and so I gave them a link to a query builder project that Eric Peterson made a while back, and like four other people all saw it and said, “Oh, that looks really amazing. I'll try that.” I was thinking CF Slack's sort of like the telegraph of our time for ColdFusion developers. It's really brought the communication points together so it's a lot easier for people to hear about stuff like this. The trick is just you have to onboard people to get them there.
Michael: Yeah. I don't know how you even communicate to people that these resources exist, whether they're CF Slack or Facebook groups or various other forums people can get into, or the conferences. I bet a lot of people in the dark matter part of the ColdFusion community don't even know these conferences exist.
Brad: It's a possibility.
Michael: In fact, they may not even know CF 2016 exists. I'm not trying to make fun of people, it's just how would you hear about it if you're not on a mailing list and you're not in a social community?
Brad: Yeah. Those are the questions of our time.
Michael: You just wouldn't necessarily know. They may not even know that Lucee open-source exists and that there's a free open source version of CFML.
Brad: That's absolutely.
Michael: That's actively developed.
Brad: I've had a few conversations in this last year where people suggested Railo, and I said, “Well, do you realize that the Railo project's essentially dead? It's been forked. The entire team's over here,” and it's like, “Oh, what? No.” You're like, “Oh my gosh. It was like headline news on every CF outlook for months. How did you miss it?” But if you're not inside those bubbles, then.
Michael: One of the good things about this survey is a fair number of people have said after reading the results, they suddenly realize some technologies that existed that they had never heard of.
Brad: I saw that. There was a couple of write-in responses. Someone said, “I had no idea there were so many options in ColdFusion.” I don't know who it was, the email addresses are private, but still, it was like, well at least they've seen these, they can google them.
Michael: Yeah. I think this is a useful thing. It takes a lot of work to put the survey together and it takes a lot of work for everyone who fills out the survey too, but it's very valuable because it does make people aware of what new technologies are out there and what trends are out there.
Brad: Absolutely.
Michael: Cool. Okay, well thanks so much, Brad.
Brad: Absolutely.
Michael: Look forward to talking through the remainder of the questions another day, and looking forward to CFML and ColdFusion going from leaps and bounds of popularity and useful vigor, and whatever the opposite of dark matter is.
Brad: Amen to that. Dark matter, I don't know.
Michael: It's into the lights maybe.
Brad: Into the Box.
Michael: Into the Box, there you go.
Brad: It's the Heisenberg principle I think. It's the particles you can't see. Or no, no, observing them alters their behavior. Maybe that's the opposite of dark matter.
Michael: Oh, so if we just observe the dark matter developers, then they will shift their behavior.
Brad: Yep. All right, well I've got to run.
Michael: Okay.
Brad: I will catch you later.
Michael: Okay. Bye guys.
Brad: Bye.