8 ms·
Rails 3.1 Adopts CoffeeScript, jQuery, Sass and.. Controversy
- akkartik 16y agoWhy not haml? Was there a discussion about this?
- petercooper 16y agoDHH finds it to be a "splinter in [his] brain": https://twitter.com/#!/dhh/status/58289541068492800 https://twitter.com/#!/dhh/status/58289541068492800 Can't say I disagree with him. Sass extends CSS with extra functionality. CoffeeScript allows complicated things to be expressed easily. But Haml is essentially an aesthetic thing for coders who merely don't like HTML, IMHO. (But luckily it's so easy to add in and if you use the "haml" extension on your views, it should mostly Just Work™ so it's all cool!)
- SpiralLab 16y agoAgreed about SASS (prefer LESS, but still applies), and somewhat with CoffeeScript (I'm in the "make-it-optional-not-default-but-i-heart-CS" camp)...but 100% about HAML. It just always strikes me as backlash against HTML rather than an actual improvement. What happens when you give HAML to a non-Rails designer? Maybe it's just taste, but I feel that true markup with template tags for data (erb) is much better than a whole new markup language for designers to learn. YMMV.
- petercooper 16y ago"Backlash" is a good word. I agree (and without saying no-one else should use Haml.. people totally should if it "clicks" more with them). I think "designers" or non-Rails people are only the tip of the iceberg though. I've been doing Ruby and Rails since 2004 and while I've tried Haml a couple of times, it never clicked with me because I already both knew and liked HTML. It felt like learning Japanese for the fun of it, yet I can already say everything I want to in English.
- SpiralLab 16y agoAgreed! (IMO the ML backlash is more of a XML backlash that carried over to other MLs). Regardless - A designer that can design for any* framework with standard CSS/HTML is more flexible than a designer that knows HAML, but could't write vanilla markup. That why I was surprised about the Coffeescript (preferring HAML is a popular opinion, as-is Rspec: yet Erb and Test::Unit are still the defaults). Edit: I agree that alt. languages/syntaxes in frameworks are nice. Forcing them on people is not nice.
- carbon8 16y ago"A designer that can design for any framework with standard CSS/HTML is more flexible than a designer that knows HAML, but could't write vanilla markup." This is a very bizarre statment. How can someone write haml without understanding HTML and CSS? How could that even be possible? Haml is little more than classes, ids and element names. In my experience as a Ruby contractor I've seem many, many more WTFs in erb than haml, to the point where when I join a project using erb I now brace myself.
- epochwolf 16y agoHaml user here. I use haml because it allows me to see an entire page's code in a much cleaner format than erb with HTML. I can hammer out or rearrange chunks of HTML much faster in haml. To draw a comparison: haml is to HTML as yaml is to XML. Haml is denser and cleaner but it won't do everything. I still use erb and HTML for some templates because the haml just gets ugly. Edit: a note, I am plenty comfortable writing vanilla HTML, I just prefer the speed and clarity of haml.
- _pius 16y agoCoffeeScript allows complicated things to be expressed easily. But Haml is essentially an aesthetic thing for coders who merely don't like HTML, IMHO. Haml and CoffeeScript serve practically the same type of role (the greater complexity of JS notwithstanding). "It's just an aesthetic thing" can be used to dismiss practically anything, even the differences between, say, Ruby and Java. If you're writing a lot of HTML, turning <div class="foo"> <div id="bar"> <span class="baz"> qux </span> </div> </div> into .foo #bar %span.baz qux is a big win. It reduces the noise in a template substantially and is a perfect impedance match with the CSS3/JQuery selector syntax. For what it's worth, I hated Haml until my third time playing with it. :)
- prpatel 16y agoHAML is a DSL for doing HTML markup & templating, Coffeescript is a "language extension" to JavaScript. How are they playing the same role???
- bradleyland 16y ago"Is a rose by any other name still not a rose?" I write HAML, the plugin generates HTML. I write Coffeescript, the plugin generates Javascript. Surely you can see how these two are similar. Yes, there are more precise definitions for each, but pragmatically, they play a similar role.
- petercooper 16y agoExcept that a proficient Haml developer will still need to "think in HTML" and Haml is just another way to express it. CoffeeScript goes so far and introduces enough new concepts that you can "think in CoffeeScript" and not worry about JavaScript too much. You're right that the translation idea is similar but I can't agree that the mental model for using both is similar.
- _pius 16y agoCoffeescript isn't a "language extension" to JavaScript. Coffeescript is a language that compiles down to Javascript. Haml is a language that is interpreted into HTML.
- swilliams 16y agoI tried to like Haml, but every time I've tried it on a semi-complex page it get's way too annoying. I don't think it solves the kind of problems that Sass does.
- carbon8 16y agoIn the years I've been using haml my experience has been exactly the opposite. Haml discourages excessive code in the template, reduces noise, makes the document structure immediately obvious and places emphasis on classes, ids, element names and attributes, making it easier to work with CSS and Javascript. As a result, its benefits become even more obvious as templates become larger and more complex.
- SupremumLimit 16y agoOne useful piece of advice I read about HAML on HN was that it's for structure rather than for content. It gets annoying when you're trying to style words within a paragraph with italic or bold, or when you try to insert a link followed by a period. In those cases, I just use HTML, and the annoyance is gone. Otherwise, I find HAML very useful for reducing visual clutter.
- drivebyacct2 16y agoWho cares? How much longer is this going to drag on? It doesn't force you to use CoffeeScript, you can easily continue to write JavaScript or Sass with no detrimental effects. If I understand correctly, it only changes the templates created.
- bdclimber14 16y agoIt doesn't even change templates. I literally is one line of code in a configuration file (the Gemfile) which most people populate with their own settings anyway. Without it being explicitly talked about, a Rails developer wouldn't see the difference beyond "Hmm, I wonder what CoffeeScript is?"
- bradgessler 16y agoHow will this be integrated? Does this just mean when I generate a rails project, I'll see: gem 'haml' gem 'coffee' in my Gemfile? That's cool, I just hope this stuff isn't vendored.
- darklajid 16y agoYes, that's about it. In fact, that's what the diff shows if you follow the link.. :) (no haml though). This is purely about adding a line saying gem 'coffee-script' That's it. Lots of 'nerdrage' in the comments though, feels like reading 4chan. Considering that more and more people like to point to Github as a reference for their future employers I do wonder what the motivations are for some of these comments.
- bradleyland 16y agoYes, that is all there is to it. Whether or not it's vendored will depend upon your method of gem install. If you'd rather not have it at all, simply comment out the `gem 'coffee-script'` line before running `bundle install`.
- deleted 16y ago[deleted]
- jarin 16y agoWell, bad news guys: http://doihavetousecoffeescriptinrails.com/ http://doihavetousecoffeescriptinrails.com/
- bad_user 16y agoWhile I don't agree with this change, I have to hand it to DHH -- he brings "opinionated" to breathtaking heights :) And he's right -- these kind of changes may be controversial, but Rails was never about being mainstream / safe / conservative. Rails was always about being productive, and in that context taking risks is good -- which is the reason for the dozens of Rails-clones written in dozens of languages.
- jarin 16y agoIt amazes me how many developers (even ones who like coffeescript) feel compelled to rage on behalf some hypothetical developer who is capable of learning all of the other stuff in Rails but whose head will explode the moment he touches a .coffee file. Not to mention the people who "left Ruby a while ago" but are somehow super passionate about this commit.
- bad_user 16y agoIf you're referring to my disagreement, I disagree simply because IMHO, the price paid for Coffeescript is not worth it. But heck, whatever.
- jarin 16y agoHaha, I wouldn't really consider your post "raging" (if it was intended to be, it needs way more hyperbole), it was a response to your comment about the controversial nature.
- dzine 16y agoI don't see why this should be controversial, it's so easy to switch to Haml, Sass or jQuery when you need/want to. The defaults are there to get the uninitiated off the ground as quickly as possible, and is in keeping with the 'rails way'. I, on the other hand, have my 'own way', and rails doesn't in any way prevent me from implementing that when I start a new rails project.