As for the rest - I think the issues in January has put Rails in the spotlight, and while scrutiny is certainly warranted, I think the extra pressure on the project over the past months to clear this stuff up has had its consequences.
1,642 karma · joined August 2, 2011
As for the rest - I think the issues in January has put Rails in the spotlight, and while scrutiny is certainly warranted, I think the extra pressure on the project over the past months to clear this stuff up has had its consequences.
This reminds me quite vividly of Stack Overflow's login page. I can never remember if I signed up direct, with OpenID, or Google, or whatever else is there.
I've been starting to dig Mozilla and Firefox again lately (the last week of developer tools news cemented that), so I'd love to see their idea take off and gain full adoption.
Unlike your typical "it doesn't work" or "this sucks", the frustrated individual still takes care to detail, step by step, exactly what felt wrong or what was missing. In doing so, they demonstrate exactly why it's so frustrating.
There's feedback not only on the quality of the documentation, but the experience of getting an Ember app up and running. While improving the former would make life a bit simpler, the setup seemingly being so involved - requiring you to manually resolve missing dependencies - still diminishes the initial experience.
All of this makes it surprising that someone would totally dismiss it in such an unceremonious manner, and for reasons that are totally at conflict with what doubles up as a support forum. Is that discussion board there as a flagship Discourse site, or for support?
It says what it does then, doesn't it?
isLargerThanSix = if x > 6 then yes else no
You don't need CoffeeScript to do something as redundant as that, since comparison operators return a boolean: var isLargerThanSix = x > 6
Of course, CoffeeScript doesn't even offer an improvement for the level of explicitness in the example, since it removed the ternary operator. This javascript is invalid CoffeeScript: var isLargerThanSix = x > 6 ? true : falseThey could easily have been embedded direct, for what little value they offer. As it stands, it's just frustrating and really poor writing.
This was the work of someone who knew what they were doing, of course. Had it been, say, me, then the effect and utility of the piece would have been considerably lacking.
Looks like Module#prepend is there to do a similar thing.
It wasn't that long ago when all JS did was put snowflakes on a page, or trails of fire behind your cursor, or annoying sequences of alerts and prompts. And it was called DHTML.
Were it possible - in the 90s - to anticipate the recent surge in popularity of JS, maybe we would have had a totally different language.
That said, these 'gotchas' are just part of learning the language. Same with PHP really. With a sufficient level of experience you tend to forget they actually exist.
To clarify the nested tag example, using an unordered list fails to take into account the other methods of nesting elements in HTML:
%p This is a paragraph with
%strong emphasis
inline and maybe a
%span dynamic portion of the text
%p This is a paragraph with <strong>emphasis</strong> inline
and maybe a <span>dynamic portion of the text</span>
I'd also add that the fact HAML auto-closes your tags is totally negated by the fact you have to keep track of indentation instead. If you nest something when you shouldn't or vice-versa, good luck tracking it down, because the markup won't be broken.As for interpolation, I like to know when part of the template is evaluated as code, and when it isn't. PHP, ERB, etc. all keep the distinction between the markup and the language very clear. These don't.
This stuff clearly adds value for you. That's fine. For me, it doesn't, and I think using an abstraction like this on the basis that it stops you getting the markup wrong feels worse than using it because you just dont know HTML. If you need something like HAML or Jade or this thing to close your tags for you, then that says something about the structure of your document.
Writing plain old HTML is fucking simple. Abstracting it out into another 'language' just means you have to deal with a whole load of quirks and workarounds you'd never see with HTML, and while it looks all purdy and shit to some, it's an absolute nightmare to maintain.
Want to nest elements? Either you can't, some syntax has been introduced to discourage it (the end of line pipe), or you're told to just... use plain HTML.
Want to interpolate variables? That's probably built in, which is great until you try changing it back to plain HTML, and then have to scan for all the interpolation, which is now plain text.
There's likely so much focus placed on "one-lining" everything that you have to do silly things just to actually make the template readable, when it wouldn't be a problem in HTML.
Never mind the total lack of portability and, especially these days, requiring a copy of Node just to run the damn things. Which is fine until you realise you shouldn't need to add a full on javascript VM to your development dependencies.
That so many of these attempts at 'HTML templating languages' exist is probably testament to the fact that no one agrees on what one should look like. They've actually been staring it in the face all along: plain old HTML.
I also think that the attractiveness of one of these projects can vary quite heavily depending on whether you're a UI/UX designer or a programmer, and there's always the opportunity cost of giving up working on something new and fancy.
Using nil as a final argument (also called the 'sentinel') is fine for C to mark the end of a variable length array like it expects with 'strings' (so it doesn't stretch into the next unrelated block of memory), but you'd expect Ruby to handle that for you. Because in any other circumstance, it does.
I'm a Ruby developer, and I find Obj-C a nice language to work with (though I do prefer the s-expression style in favour of the more recent dot notation). I still haven't managed to justify using Ruby in place of Objective-C.
The only major benefit I see is the REPL that ties into the simulator, and losing the dependency on X-Code, but again, I feel that the verbosity of the APIs is the fault for that.
This is a sight for sore eyes for someone who has to maintain a phpBB forum and its modifications (all of which, by design, require patching the source code with some bizarre XML-diff format).
Even with no formal plugin architecture, the decision to choose Rails is massively beneficial.