1: Of course, other than leveraging existing CF knowledge.
1: Of course, other than leveraging existing CF knowledge.
One of the defining features of ColdFusion is the tag-based syntax. You can have a single "web page" file in, say, "my-widgets.cfm". It can then have a mix of HTML and CFML tags that lay out the page, which would include an SQL query of a database and the HTML being output for each row. Other languages have templating, but this is more like a core feature of the language.
By default, it's also got that PHP style of "just upload a file and open it in your web browser" that makes it simple. So if someone else wanted to make a page like my "my-widgets.cfm", they could simply duplicate it with a different name and make changes until it's ready to go. This lets you turn around internal web apps very quickly that, you know, does in realtime what an administrative assistant does in a week with an Excel spreadsheet.
I use Python now and I certainly recommend it, but it wouldn't be as simple to jump right into as a barely-techie. Same with modern PHP (on something like Laravel). Earlier PHP would be similar, but ColdFusion's <cfquery> functionality is so easy to use and so critical that it's really a big deal. You don't need to know much ColdFusion to run a query and output the results (safely even) in HTML.
- simplified query recordsets (loop through, values referenced as queryName.columnName)
- you can turn anything into a recordset
- in-memory SQL queries of recordsets
- easy access to SQL (<cfquery ...>select a,b,c from foo...</cfquery>)
- write code using integrated markup or using ECMAScript-type syntax
- built-in web-based UI
- simplified REST API construction
- simplified web services construction
- simplified access to global, app-local, session-local scopes
- delimited-lists as a top-level data structured
- simplified access to things like email, charting, etc
- most of what you need for a web app is in the box, so if a server is running a CFML application server, you can build an app with no boilerplate (frameworks like Wheels and ColdBox obviously work differently, but CF is no framework required)
There are some really nice things though, for example <cfprint> tag would be the sole reason I'd put a CF instance up. Haven't seen anything out there that would handle printers so easily.
Personal recommendation would be: if you do not have to, stay away. Nothing new to learn there. I am saying this as a certified Adobe ColdFusion 7 and 8 developer who’s not working with this technology for at least 6 years now.
Some people in this thread mention that it’s a benefit that people who know nothing about programming are able to write some working code. I find this a problem often contributing to the issues mentioned above.