News for hackers. Stuff that matters.
Re:Why must you laugh at my back end? by ary on Tuesday August 30, 2011 @02:17PM (#2942571)
Cold Fusion? No, no... no.

> CFML. I really like programming in CFML (a programming language, “ColdFusion Markup Language,” as opposed to ColdFusion, a commercial CFML interpreter made by Adobe). I know it’s not "cool" like Node.js or Clojure or even RoR.

Doctors used to bleed people with leeches to get out the "bad humors". They stopped using that "tool" for a reason. It was a bad tool, and better "tools" came along.

Not only is CFML not cool, it is hard for most people not familiar with CFML to understand [1]. The syntax mixes in with HTML markup in such a way as to make it very difficult to distinguish the two apart. With a syntax highlighter your mind still has a hard time as there isn't enough of a difference to make a subconscious context switch easy. Also, the need to cram logic constructs into HTML/XML-like syntax makes for some screwed up code. My understanding is that you can put the attributes for the tags in any order, and that means that things you'd always expect (in other languages) to appear in a certain order, like conditions for statements, are instead a matter of style [2].

> It’s got an old vibe. Not just because it was the first made-for-web programming language (tho it’s modern & updated frequently), but because whenever I meet other CFML coders, they’re always old dudes.

My experience with CF developers is similar. This is not a good thing. This is nothing like the C and C++ graybeards you occasionally meet and develop immense respect for. These old CF developers are, in my anecdotal experience, the kind people that learned one type of development and stuck with it for a long, long time. They've not really improved their skill sets beyond what was popular practice when they first learned Cold Fusion. These are the kind of people (I kid you not) that think HTML tables are a great way to get your page layout just right.

Why did the OP take an entire blog post to say what could have been posted to Twitter ("you darn kids and your twittin'!")? The whole post boils down to what appears to be proud, willful ignorance.

A lot of "you're a developer, but you really should learn about business" stuff gets posted to HN. This case looks to be turned around and we have a business person doing double-duty as a developer. My advice is to learn something more current, and not because it's cool. More current technology has business value in that it's easier to find people who can work with/on it, and you will be able to find more of those kind of people for longer. The underlying tech will also (usually) be supported for longer, and by a wider range of companies. The reasons are too many to comprehensively list here.

I wasn't laughing at your back-end, by the way. It made me a little sad.

[1] http://www.quackit.com/coldfusion/coldfusion_tutorial.cfm

[2] http://www.quackit.com/coldfusion/tutorial/coldfusion_loops....

Re:Why must you laugh at my back end? by rmason on Tuesday August 30, 2011 @02:38PM (#2942658)
What I find sad is people making judgements based on twelve year old information. Like most languages CFML has evolved.

People writing CFML today use MVC frameworks, use ORM and the cloud. Yes it is still easy for beginners to write bad code, I think that may be more true in ColdFusion than in other languages. But getting started easily can also be a virtue.

You might be surprised but a lot of the ColdFusion community don't have tunnel vision and are familiar with a lot of other languages.

http://www.bennadel.com/blog/2061-Seven-Languages-In-Seven-W...

http://corfield.org/blog/post.cfm/learning-clojure

Sometimes another language is a better choice for a given task. We write CFML because we like it and are more productive in it, even if it isn't cool.

Re:Why must you laugh at my back end? by Tichy on Wednesday August 31, 2011 @08:21AM (#2945221)
"People writing CFML today use MVC frameworks, use ORM and the cloud."

But why? If they had to energy to create those frameworks, why didn't they invest it into moving on to a better technology?

Re:Why must you laugh at my back end? by rorrr on Tuesday August 30, 2011 @08:14PM (#2943732)
Yet the OP mentions the <cfquery> tag, which is exactly the problem. It's mixing of the presentation (view) with a DB call (something that should be in a model and routed through a controller).
Re:Why must you laugh at my back end? by snow_mac on Tuesday August 30, 2011 @10:27PM (#2943978)
No if you write in a CFC... N00bs. btw, that's the standard way; use CFC's for db logic, separate out logic & db functions from presentation
Re:Why must you laugh at my back end? by pud on Tuesday August 30, 2011 @02:30PM (#2942613)
Paraphrased:

> Some people write crappy code in CFML.

Yes. But people write crappy code in [your preferred language] too. There's nothing inherent in CFML that forces people to write bad or hard-to-understand code.

> OMG can you believe some people still use TABLES???

view source

Re:Why must you laugh at my back end? by ary on Tuesday August 30, 2011 @02:38PM (#2942657)
I stand by my comment. A few things to note.

  > Some people write crappy code in CFML.
  Yes. But people write crappy code in [your preferred language] too.
No, I said CFML code is universally hard to understand. Even more so for people already familiar with more popular languages.

  > OMG can you believe some people still use TABLES???
  view source.
That example was given to make a point about dated skill sets. I didn't imply that your Tumblr blog was table based.

Edit:

To InnocentB's point about HN's HTML. Does anyone here think HN's markup is meant at all to be inspirational? My take has always been that pg has priorities, and a layout for HN firmly based on cleaner HTML & CSS isn't high on that list.

Re:Why must you laugh at my back end? by beernutz on Tuesday August 30, 2011 @03:28PM (#2942879)
CFML is NOT universally hard to understand. I have been programming over 25 years, and use/have used all kinds of languages. CFML is just another tool.

If you don't like tag based language, you can use pure scripting in CFML pages. Also, nothing in CFML requires or even leads ANYONE to use table based layout. I don't know where you got that idea from.

When i first looked at CFML I had distaste for what i saw. The problem is, what i saw was other peoples bad code. Once i really dove in and started writing CFML myself, i found it is like any other language in that, you can write beautiful, clean, easy to understand and modify code.

CFML has a LOT of things built into it that make db backed web development VERY nice, including:

Db queries and transactions as a first class language member. Pdf generation, ftp access, email sending, graphing, ALL are first class language features, not to mention native use of java libraries.

Don't get me wrong, i see the value in frameworks like ROR. I just think CFML gets a bad rep when it does not deserve it.

Re:Why must you laugh at my back end? by justincormack on Tuesday August 30, 2011 @04:33PM (#2943129)
Sorry, you do not understand the meaning of "first class". You mean "included in the standard library". First class is as in first class functions, ie you can assign them to variables.

And for a second I was excited by first class transactions.

Re:Why must you laugh at my back end? by beernutz on Thursday September 01, 2011 @05:31PM (#2951863)
Yes, you are of course correct. I was using the term to mean "built in and part of the language"

Thanks for the correction!

Re:Why must you laugh at my back end? by bobstobener on Tuesday August 30, 2011 @03:58PM (#2942992)
CFML has great frameworks as well. One of many ... https://github.com/seancorfield/fw1/wiki
Re:Why must you laugh at my back end? by Zak on Tuesday August 30, 2011 @08:17PM (#2943740)
PG has addressed the issue of HN's markup several times. One of the major advantages of CSS, that sitewide changes can be made in one place doesn't really apply to HN. All the HTML is generated by Arc code which is written in a reasonably DRY style; major changes can be made in a central place.

I like modern markup and layout better than the way things used to be just like almost everyone else, but It's hard to come up with an argument for switching HN to more modern markup. It wouldn't make the site easier for PG to maintain, and it probably wouldn't result in a change to the visual design unless a designer was brought in.

Re:Why must you laugh at my back end? by InnocentB on Tuesday August 30, 2011 @02:40PM (#2942663)
I think he's referring to Hacker News, which is table-based.
Re:Why must you laugh at my back end? by seabee on Tuesday August 30, 2011 @02:50PM (#2942708)
to be fair, HN has had the same design for years...
Re:Why must you laugh at my back end? by kemiller on Tuesday August 30, 2011 @02:51PM (#2942711)
I read pud's comments as essentially the same thing: he has better things to worry about.

However. A lot of the leeway in technology choice you might have as a lone-wolf entrepreneur fly out the window once you grow beyond that. If you have no intention of growing beyond, go nuts. Use whatever makes you happy. If you do want to grow more, then be prepared for a rewrite.

Re:Why must you laugh at my back end? by snow_mac on Tuesday August 30, 2011 @10:33PM (#2943993)
Not if you're the guy cutting the checks.
Re:Why must you laugh at my back end? by kemiller on Wednesday August 31, 2011 @01:14PM (#2946487)
I'm not sure what that's in response to.
Re:Why must you laugh at my back end? by snow_mac on Thursday September 01, 2011 @01:28AM (#2948786)
Into: " If you do want to grow more, then be prepared for a rewrite." ... If you're the dude cutting the checks & you think it's well designed, you don't have to redesign just because your dev gets pissy.
Re:Why must you laugh at my back end? by sfk on Tuesday August 30, 2011 @03:03PM (#2942767)
Does anyone here think HN's markup is meant at all to be inspirational?

Yes, it's one of the most usable and beautiful sites on Internet.

Re:Why must you laugh at my back end? by ary on Tuesday August 30, 2011 @03:58PM (#2942995)
Markup, not layout.
Re:Why must you laugh at my back end? by snow_mac on Tuesday August 30, 2011 @10:31PM (#2943990)
Whats so hard to understand the difference between <form> and <cfform>? Everything cold fusion related starts with a <cf... <cfif> If you don't like it, you can also use a <cfscript> tag:

<cfscript> if(noob) { greetings = "Hello Coldfusion N00b"; } </cfscript>

<cfoutput>#greetings#</cfoutput>

Re:Why must you laugh at my back end? by olliesaunders on Tuesday August 30, 2011 @03:48PM (#2942961)
If you’re not quoting directly don’t use >. At best it’s misleading at worst it’s dishonest.
Re:Why must you laugh at my back end? by pyninja on Tuesday August 30, 2011 @02:44PM (#2942682)
> view source

Are you trying to tell me that PG is not a web designer?!

Re:Why must you laugh at my back end? by reinhardt on Tuesday August 30, 2011 @02:54PM (#2942730)
The whole post boils down to what appears to be proud, willful ignorance.

Perhaps, but I kinda liked the contrast to the constant stream of proud, wilful "Clojure/CoffeeScript/CaramelMacciatoScript is the new black" hipster-sounding posts on HN.

Re:Why must you laugh at my back end? by cookiecaper on Tuesday August 30, 2011 @09:33PM (#2943878)
For the record, I find the dogma around tables kind of grating at this point. I understand that table-based layouts get complex and it can be difficult to develop an accurate mental model, but the same goes for regular divs and CSS, especially considering all of the hacks necessary for IE to render CSS semi-properly. I don't know of many browsers that struggle with tables.

While I agree that it's a good general rule to use CSS/divs, if something is taking too long, my philosophy is that you should just make it easy on yourself and break out a table, especially if the layout is something obviously tabular visually.

Re:Why must you laugh at my back end? by dpark on Tuesday August 30, 2011 @04:34PM (#2943132)
> Why did the OP take an entire blog post to say what could have been posted to Twitter ("you darn kids and your twittin'!")?

How many blog posts couldn't be boiled down into a twitter post? The fact that something can be transformed into a 140-character blurb for teenagers with short attention spans does not mean that it should be.

> The whole post boils down to what appears to be proud, willful ignorance.

You whole comment really comes off as a bit short-sighted at best. The whole point was to share the way he gets stuff done. The fact that you do things a different way does not make his way wrong. Automatically assuming that your way is best is a sign of professional immaturity.

Re:Why must you laugh at my back end? by ary on Tuesday August 30, 2011 @04:39PM (#2943144)
You'll notice I didn't make a specific suggestion regarding technology. I merely suggested that what he is strongly advocating is archaic.
Re:Why must you laugh at my back end? by dpark on Tuesday August 30, 2011 @05:04PM (#2943243)
Your comment still comes off as needlessly arrogant. You compared Cold Fusion to leech therapy and stated that CF developers have simply never learned any new technologies. You mentioned the business value of newer tools, but you seem to miss the business value of leveraging existing knowledge and getting stuff done.

C is a lot more archaic than CF, but sometimes it's the right tool for the job. Archaic doesn't mean wrong. I certainly don't want to program in CF, but if someone else does and it works for them, then more power to them. As others mentioned, this is at least a nice counterpoint to the Latest-AwesomeYetUnproven-NoSQL-SemiFunctional-Framework/Language stuff that flies about so much.

Oh, and they still do leech therapy. The humor theory was bunk, but leech therapy can indeed have benefits.

Re:Why must you laugh at my back end? by drblast on Tuesday August 30, 2011 @02:42PM (#2942673)
>These are the kind of people (I kid you not) that think HTML tables are a great way to get your page layout just right.

Is there are good replacement for HTML tables yet that works well in all browsers?

I'm talking about for things that actually need to be laid out in a grid, which, in my experience, is many things. Grids are fairly fundamental to layout and design.

Re:Why must you laugh at my back end? by FuzzyDunlop on Tuesday August 30, 2011 @03:57PM (#2942990)
Tables are for tabular data. You wouldn't use a spreadsheet to design a web page so by the same token a table is just as unsuitable.

CSS support is a lot better and more consistent across browsers now than it was even just a year ago, and there are CSS 'frameworks' that make grid based design a trivial task without cluttering your page with table markup where it's not required.

There are even plenty HTML5 'frameworks' (or templates if you prefer) that take backwards compatibility and such like into account so you don't have to faff about with all that yourself.

http://www.blueprintcss.org/ http://960.gs/ http://html5boilerplate.com/ http://www.initializr.com/ http://codekickoff.com/

Re:Why must you laugh at my back end? by nl on Tuesday August 30, 2011 @09:28PM (#2943862)
Tables are for tabular data.

I'm going to rant now.

It think it is ridiculous that people get away with stating that one shouldn't use tables for layout because "Tables are for tabular data".

What is a table? It's a grid! And grid-based CSS layout frameworks are the new hotness; eg:

http://960.gs/

http://www.blueprintcss.org/

http://developer.yahoo.com/yui/grids/

http://www.w3.org/TR/css3-grid-layout/

(And look! Many of these are exactly what you listed!)

CSS has many wonderful features. However, I think the "tables are for tabular data" is an intellectually lazy argument that needs to die.

CSS should be used because of what it can do for you - not because of some theoretical argument about the purity of tags.

Re:Why must you laugh at my back end? by speleding on Tuesday August 30, 2011 @04:55PM (#2943214)
There are situations when a table based layout just works better. Have you ever designed a site that needs to work with right-to-left text (Arabic / Hebrew) as well as English? If you use tables for your layout a simple 'html {direction:rtl}' fixes everything. If you are doing it the "right" way then you have to reverse every float and margin settings from right to left and vice versa. A nightmare to maintain. Clearly the CSS designers did not have that use case in mind.
Re:Why must you laugh at my back end? by webnrrd2k on Monday September 05, 2011 @01:33AM (#2961271)
It's a mystery to me why the standards bodies didn't just take the code for tables and make an copy of it, just using a new name like "grid" or "layout" or something.
Re:Why must you laugh at my back end? by eurleif on Monday September 05, 2011 @01:39AM (#2961283)
Because HTML is for expressing semantics, not presentation. If you want something that displays like a table, but isn't, you can do that with CSS using display: table.
Re:Why must you laugh at my back end? by shadowfiend on Tuesday August 30, 2011 @03:53PM (#2942978)
Look at http://960.gs/ to see some examples of stuff that is done, cross-browser, with a CSS grid framework and without tables.
Re:Why must you laugh at my back end? by MatthewPhillips on Wednesday August 31, 2011 @08:57AM (#2945309)
These frameworks all use pixels. If you're developing a mobile app you need percentage based layouts because you must use the entire screen or the experience will suck. Luckily most mobile browsers support flexbox which seems to work relatively well.
Re:Why must you laugh at my back end? by shadowfiend on Wednesday August 31, 2011 @01:47PM (#2946652)
True. I don't use 960.gs personally, it just has some good examples (I tend to use compass+susy, but flexbox looks better for mobile).
Re:Why must you laugh at my back end? by pyninja on Tuesday August 30, 2011 @02:45PM (#2942690)
Using `display: table` is a great way to lay out your elements in a grid while keeping your HTML semantic.
Re:Why must you laugh at my back end? by zaphar on Tuesday August 30, 2011 @02:55PM (#2942733)
who said tables aren't semantic? Tables say "Hey, I'm going to show you some things with a row column relationship now." Some times table is exactly the semantics you need. It shouldn't be your primary and only tool but if your showing a set of numbers collated and sorted by rows and columns then its pretty much semantically a perfect fit.
Re:Why must you laugh at my back end? by shadowfiend on Tuesday August 30, 2011 @03:55PM (#2942984)
I see this argument a lot. You're right, there are situations where tables are semantic. But unless otherwise stated, it's fair to assume that someone who's talking about semantic markup knows that semantic markup includes tables, but simply discourages them for 99% of layout purposes.
Re:Why must you laugh at my back end? by olliesaunders on Tuesday August 30, 2011 @03:49PM (#2942964)
No good if you care about IE6 support
Re:Why must you laugh at my back end? by slowpoke on Tuesday August 30, 2011 @04:09PM (#2943038)
Unless you have a boss telling you to support IE6, you don't. People need to stop using this prehistoric excuse for a browser.
Re:Why must you laugh at my back end? by prawn on Tuesday August 30, 2011 @06:47PM (#2943557)
As you said, some people work at companies that mandate its use - they have no choice. While that's happening, it needs to be considered.
Re:Why must you laugh at my back end? by slowpoke on Wednesday August 31, 2011 @11:43AM (#2946031)
If by no longer supporting IE6 we can force these companies to finally go with the times, then by all means, no, we should not consider this. We cannot endlessly cater to every outdated technology ever.

Besides, these companies have absolutely zero valid reasons to keep using this crutch - it's severely outdated, a giant gaping security hole and a hindrance to the entire world wide web.

And no, legacy applications built upon IE6 on which some corporations have based their entire internal communication (or other things) are not an argument for supporting IE6, but instead gives us all the more reason to force them to get rid of it.

Re:Why must you laugh at my back end? by benihana on Tuesday August 30, 2011 @02:54PM (#2942729)
I recently left ColdFusion development and I've never been happier. IT has been my anecdotal experience that ColdFusion is an old man's game. They seem to look on newfangled things like Object Oriented programming with mistrust. This guy thinks it almost ruined his business.[1] The 'younger' guys who get into OO, seem to look at Java and think it's a good idea to have three layers of abstraction between their controller and their database wrapper that has four methods on it.[2]

I got out of ColdFusion 8 months ago into PHP, which isn't exactly known as being a hotbed of good code. I feel like just a mediocre programmer at the currently company I'm at would be a way-beyond-stellar ColdFusion developer. Of course this is all anecdotal and hearsay, but my experience is in line with yours.

[1] http://www.advantexllc.com/blog/post.cfm/how-oo-almost-destr...

[2] http://www.remotesynthesis.com/post.cfm/Objects-and-Framewor...

Re:Why must you laugh at my back end? by snow_mac on Tuesday August 30, 2011 @10:34PM (#2943996)
OOP is poorly implemented by many of the old dudes, partly because Adobe hasn't documented it well. When the defacto standard, Ben Forta barely writes a chapter on it, you know almost no one is listening.
Re:Why must you laugh at my back end? by georgieporgie on Tuesday August 30, 2011 @02:33PM (#2942634)
These old CF developers are, in my anecdotal experience, the kind people that learned one type of development and stuck with it for a long, long time.

That's basically the majority of developers, in any language.

I'm not going to bother defending the mindset of the author, though I suggest that if you examine concepts like toolset familiarity, code craftsmanship, and zen, you may see that his way is a path to happiness. (and honestly, from what I recall of CF in my college days, I liked it no less than PHP)

Re:Why must you laugh at my back end? by ary on Tuesday August 30, 2011 @02:40PM (#2942668)
> That's basically the majority of developers, in any language.

You have a point there, but I'd argue that on a platform like the web the impact of skill stagnation is much bigger.