4 ms·
> I'm surprised it's still a thing. Because it was a good idea? The whole industry came full circle. Here's some ColdFusion that people now call "Mustache JS":
by wahern 6y ago
> I'm surprised it's still a thing.
Because it was a good idea? The whole industry came full circle. Here's some ColdFusion that people now call "Mustache JS":
<h1>{{Subject}}</h1>
<ul>
{{#names}}
<li>{{name}}</li>
{{/names}}
</ul>
The problem with ColdFusion was that it went in the wrong direction. It tried to copy the trends of the industry by inventing and emphasizing CFScript when it should have doubled-down on the templating strategies and evolved it. Also, it jumped on the Java bandwagon. And it was proprietary and lost mindshare to free PHP, which also had a strong template story, albeit one that was conceptually more limited.
CFScript and the Java integration weren't bad, per se. ColdFusion did have a problem when it came to extending the core engine functionality using traditional software architectural approaches. CFML had the concept of modules, but ultimately to do anything remotely sophisticated you had to drop down into C or C++ (and then later Java, I presume). IIRC, CFScript was superficially similar to Javascript, and if they had evolved it in that direction or just adopted Javascript outright, I think ColdFusion would have had more staying power. But the switch to Java probably made that impractical. A template engine integrated with a Javascript runtime running atop the JVM comes with too much performance baggage, even today. And the Javascript would have felt second-class and the "wrong" way to do things, anyhow, even if people ditched CF for an ecosystem that was that--Javascript or similar dynamic, RAD language instead of a "proper" strongly typed language.
I worked for a consulting shop that started with ColdFusion and tried to make the switch to Java but they could never make it work. I think I was the only technical consultant in the whole company with the time and motivation to learn Java. Java (including runtime and tooling) was too complex and sophisticated for both the application developers and the client's needs. That would still be true today. The technical leadership of that company, which at the time had also just became a subsidiary of ADP, drank the Java and then XML kool-aid and drove the whole thing into the ground. For similar reasons (including some similar leadership) ADP lost out to PeopleSoft (later acquired by Oracle) in the race to build and solidify their middleware and web-app positions.
- prepend 6y agoI don’t think it’s fair to give credit to CF for templating. In that I think we’d have the exact use of templating today if CF never existed, due to the other templating approaches that existed before CF.
- harel 6y agoAs far as I'm aware ColdFusion is a bunch of "firsts" and in particular the first "Application Server".
- prepend 6y agoPHP templated before CF (94 v 95), but I feel like the concept was around long before. I’m not sure what you mean by “application server” but there were in memory modules for web servers earlier than CF (eg, CGI). I think CF was around before ASP, Java, and JSP. But it always seemed like a commercial version of PHP to me. Looking at Wikipedia’s list of application servers [0] there’s quite a few older than CF (Tuxedo in 1983, Maybe CF was the first to be web specific? They were windows only so they can’t be that old. [0] https://en.wikipedia.org/wiki/List_of_application_servers https://en.wikipedia.org/wiki/List_of_application_servers
- harel 6y agoMaybe "First web specific application server" in the sense of a server specifically serving dynamic HTML output over the web" is better? I'm not vouching for the accuracy of this statement.
- prepend 6y agoMaybe “first sold” as the CGI spec in C came out in 1993 [0]. But this seems more of a marketing spin as PHP was out earlier and was the first, I know of, to have that easy “scripts in a folder that are interpreted by the http server” thing going where there was no compile process needed. My memory of the time was that CF was one of the many commercial web software companies that were selling to companies. [0] https://en.wikipedia.org/wiki/Common_Gateway_Interface https://en.wikipedia.org/wiki/Common_Gateway_Interface
- wahern 6y ago> As far as I'm aware ColdFusion is a bunch of "firsts" and in particular the first "Application Server". Especially true for Windows. Interest in commercial web development exploded at a time when Windows NT still held a dominate position in the emerging small- and medium-sized business markets. Perl bootstrapped web development in the Unix world, but Windows didn't have anything like the Unix software ecosystem--Perl, Apache, mod_php, etc. ColdFusion was where it was at for dynamic page generation in the Windows world. (I was only ever a visitor in that world. I had originally discovered programming thanks to Slackware Linux and Perl.) In the beginning ColdFusion was all Windows, IIRC, with Solaris and Linux ports coming about the time ColdFusion seemed to peak. ColdFusion programmers also tended to use Allaire's HomeSite, one of the first web-oriented IDEs. Allaire being the creator of ColdFusion.
- harel 6y agoI had 2 startups in total that were CF based, and still have a business running on ColdFusion (or a legacy version of it that is still in use). And yes, at it's prime, when choice was limited and 1 core was plenty, it was the best way to get a web application going. I actually welcomed the Java days since the original had enough issues that were resolved and having access to the JVM and it's ecosystem was a great thing. At this point ColdFusion became a JSP tag library. However, I cannot compare it to today's tech. It's not apples to apples.
- Cthulhu_ 6y agoSoftware development is cyclical in that regard. I mean another example is JSON, which has a subculture where they are trying to add structure and schemas to it. At the same time there's gRPC, which is more aimed at performance. But some really smart people already built all of this decades ago with XML and XSD. It's painful to write, but computers don't mind at all. And for transfering effectively, there's EXI which can move XML documents over the wire in a compressed binary format, instead of awkwardly converting it to a text-based format and gzipping it over http before converting it back to a digital format.
- wahern 6y agoFor a long while I felt oddly bitter that Apache AxKit, a pluggable XML transformation pipeline and web application framework, never enjoyed much attention. I always wanted to use it for serious work but could never justify it owing to lack of mindshare. I was never an XML advocate, but I never hated it either. Ditto for XSLT. AxKit just seemed so elegant and practical, smoothing over some of the problems with XML and XSLT and complementing them in a way that made their promise seem more attainable. For a startup I vetoed Ruby on Rails in preference to an AxKit-like approach, extending the PoC I had originally cobbled together. In retrospect it was incredibly stupid. Most importantly, I should've just let our dedicated web developer use what he was comfortable with, even though I had strong opinions about the usefulness of that approach. (Object binding had like near zero utility in our particular case.) Like with ColdFusion is was a hard-earned lesson in understanding that the best tools are the ones that maximize the productivity of your actual and prospective staff, not some hypothetical 10x coder. It's a seemingly obvious principle, but not so obvious and easy in application. It turned out that Ruby on Rails would still be on the upswing for some time afterward, so vetoing it was especially dumb. But ColdFusion, which made sense in context for similar reasons, was doomed to flame out quickly and so even if I teleported my post-RoR-veto self to my first ColdFusion job, I would have made the wrong decision as I had actually successfully advocated moving away from ColdFusion, the accidentally correct decision.
- danesparza 6y agoSo your defense of Coldfusion is a javascript templating language that is over a decade old and has implementations in 30+ other languages? And then you further defend it by admitting, "The problem with ColdFusion was that it went in the wrong direction" I'm confused. Yes. That's why it's terrible. Most things that go in the wrong direction usually are terrible.