top | item 15376347

CFWheels 2.0 – ColdFusion Markup Language framework inspired by Rails

30 points| bdcravens | 8 years ago |cfwheels.org

29 comments

order
[+] Posibyte|8 years ago|reply
Is there a captivating set of advantages or other reason to use ColdFusion compared to any of the more common languages today?1 I'd love to play with this and learn something new if it brings something interesting and different to the table.

1: Of course, other than leveraging existing CF knowledge.

[+] moduspol|8 years ago|reply
We used it at my last job a few years ago, and it was pretty easy to get people who aren't normally even coders to build a ColdFusion page. We used it for the university's intranet and it was very good for making simple internal CRUD web apps that various members of our team could understand / troubleshoot / maintain easily.

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.

[+] bdcravens|8 years ago|reply
A few of my favorites (some of which aren't relevant when using a framework like this):

- 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)

[+] rad_gruchalski|8 years ago|reply
Not really, not much one can learn from ColdFusion. The problem with CF is that it tries to do everything. CF server is a huge monolith, some functionality you'd never use still loads and occupies the memory. I call it "a bag of memory leaks wrapped in legacy dependencies". Haven’t used it for a few years but back in the day “tuning the JVM" seemed to be a common pattern among the CF folks. Basically, instead of accepting the fact that CF is memory hungry, sometimes not releasing memory correctly and literally consuming gigs of RAM within minutes, everybody tried to find some magical JVM settings that would prevent this behavior. Server used to require rather often restarts. the other thing is, some of libraries used by the CF server, even the most recent versions are years old. It’s not really a problem if you plan on using CFML layer only but if you want to do some more advanced stuff with event gateways, you may find yourself in trouble. For example, I was recently writing some Kafka stuff that supposed to be working as an event gateway. The amount of shading required to deploy the JAR is insane.

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.

[+] timsayshey|8 years ago|reply
It's been a long road to 2.0 with lots detours but we've finally made it! Thanks to an awesome dedicated team and community :)

Lol, and yes, asking if Coldfusion is still a thing is like asking if Java is still a thing. It's a dynamic scripting language on the JVM that gets stuff done. It's not going anywhere. If you had a bad perception of CF many years ago, do yourself a favor and check out Lucee before making any comments, lest you misrepresent the language and speak out of ignorance ;) -- Remember bad code happens in every language

[+] rbanffy|8 years ago|reply
> Remember bad code happens in every language

I remember writing a Windows service to reload the CF's DLL every time the number of concurrent connections to ISS exceeded a certain threshold.

That happened, literally, in the past century, but Cold Fusion earned its bad reputation at that time. I was glad when I saw most of the original plumbing being ejected years later.

[+] clairity|8 years ago|reply
i still have a soft spot in my heart for coldfusion (and the fusebox framework) and the ease with which you could get a dynamic page up on the web. </cfmemories>

it's remarkable how resilient the dynamic templated web paradigm has been over the years. we keep coming up with new variants, like php, or even ones that run client-side, like react (reminiscent of coldfusion components), or shoehorning it into other languages like java, python and perl.

[+] harel|8 years ago|reply
It was a thing a good while back. In fact it was the first Application Server. Still around early 2000s it was one of the best ways to create web applications. And then it wasn't. What is interesting is that the Lucee (http://lucee.org/) project doesn't even mention ColdFusion or CFML in the first few pages.
[+] notjustanymike|8 years ago|reply
Does anyone know if this is compatible with Fortran?
[+] bdcravens|8 years ago|reply
Worth noting the ColdFusion is about as old (1995) as Ruby (1993), Java (1995), and Javascript (1995). Python is of course a few years older than these. (1989)
[+] tempodox|8 years ago|reply
Nope, it requires COBOL.
[+] gremlinsinc|8 years ago|reply
is coldfusion still a thing in 2017?
[+] brixon|8 years ago|reply
I doubt there are many new companies starting to use CF, but it was a good option in 2001 when CF5 came out when compared to PHP4, ASP3, or CGI from those days. Companies that have a decade of CF code is not going to just replace it all because it is not the cool flavor of the week. It works and generally does an OK job.

It has always been an approachable language to people that don't program full time. It looks and feels like HTML, so novice programmers were productive fairly quickly in CF. Career programmers tend to not like it since it is verbose and restrictive, but I have know numerous people use CF as a jumping point for programming and IT careers solving company problems with a bit of code.

[+] bdw429s|8 years ago|reply
Yes it is. Very much so actually. CFML has been a dynamic and loosely typed JVM language since before that was cool (~2002). It is reported by W3Techs as the 4th most popular web language on the internet today (behind PHP, .NET, and Java). Wow, amazing that Ruby, Node, and Clojure all aren't as popular as CFML for server side code still!

CFML has open source engines like Lucee Server, and a modern arsenal of tooling including CLI, REPL, package management, MVC, IDE plugins, conferences around the world, and active support forums like our Slack team with 2.2K people in it. CF's modern scripting syntax reads like JavaScript and includes function programming, closures, and classical OO constructs. It sounds like you need to check it out again. Everything I listed above has been around for years in the CF space.

[+] bdcravens|8 years ago|reply
It has a lot of use in government and health care. I can't speak to his current projects, but Pud was still using it on some of his recent startups.