Live data from Hacker News

CoffeeScript Means Giving Up on JavaScript

w2lessons.com

41–50 of 71 posts

Re: CoffeeScript Means Giving Up on JavaScript

#41

Earlier quoted context omitted.

> To really program, you need to know assembly. That's just an absurdly untrue statement.

All abstractions are leaky to some degree. There will be problems you don't understand if you don't know what's happening one layer down. This is not to say there's something wrong with being a tinkerer - but it is saying that there is a difference between a tinkerer and a professional. http://www.joelonsoftware.com/articles/LeakyAbstractions.htm... for better writing on this topic.

And you're still wrong. Ass loads of professional programmers don't know and won't ever use assembly; they are not tinkerers. Your use of the words tinkerer and professional are decidedly non standard and frankly I don't think you know what you're talking about.

Being able to write slightly faster code than the next guy does not a professional make. In the vast majority of work you'll be called upon when writing applications in the real world, that will simply never matter. Real professionals know when the code is fast enough and move on to delivering real value on time for solving real business problems.

They also know there more than one way to skin a cat and if you ever do hit a wall on one approach because the abstraction leaks that much, you can just try another approach. I don't need to understand the machine at every level of abstraction down to bare hardware to be able to make the machine work well. One needs a vague idea of how an abstract machine works, one does not need the details of how this specific machine works. Knowing x86 assembly will be virtually useless on most modern VM hosted languages.

Even when you do find a bottleneck, algorithm choice is vastly more important than any fiddling you're going to do to get the compiler to generate better assembly or even hand coding it. The idea than one must know assembly to be a professional is just absurd and naive.

Re: CoffeeScript Means Giving Up on JavaScript

#42
It's a false choice that's been presented many times: Learn CoffeeScript, or learn to do JavaScript right.

When I wrote the PragProg book on CoffeeScript (http://pragprog.com/book/tbcoffee/coffeescript), my aim from the start was to fill common gaps in JavaScripters' knowledge while introducing them to the new language. Brendan Eich himself said in his blurb for the book: "It helps readers become better JavaScripters in the process of learning CoffeeScript."

Far from distracting people from learning JavaScript properly, CoffeeScript is a terrific learning tool.

Re: CoffeeScript Means Giving Up on JavaScript

#43
post #20
post #15

To quote the author: "For the extra effort you'll make learning CoffeeScript and its idiosyncrasies, why not put it towards really learning JavaScript?" There are so many wrong saying in this statement. First, understand that CoffeeScript is JavaScript - but without its idiosyncrasies. If you know JavaScript really well, learning coffeescript takes minutes. CoffeeScript embraces closures and prototype inheritence; it…

> Good programmers tend to enjoy learning new technologies and paradigms. You've stumbled onto a pet peeve of mine. I think it's rather that people who like learning new programming languages like labeling people like them as "good". The flip side of the coin is that there's a huge intersecting set of attention-deficit afflicted dabblers who play with a large number of technologies and master none of them. I enjoyed…

I think software developers would be wise to be a little more flexible. The field is new enough that ideas change all the time. The worst projects I've worked on we're stilted by "we'll bring in a new tech if we need it (but we can always work around needing it)".

Conversely, the second worst projects I've worked on suffer from ADD: "Look, a shiney, new tech. We must embrace it!"

My philosophy is to continually learn new stuff for its own sake (I've focused on languages in the past, but I think it's time to switch to algorithms). I may never use something I've learned, but my tool chest is much more broad (and that Erlang tinkering is coming in handy now!).

I don't think I'm a better developer that a highly-focused compiler writer that knows YACC inside and out. We have different skills for different needs. But I still think the compiler writer would benefit from broadened education.

Re: CoffeeScript Means Giving Up on JavaScript

#44

CoffeeScript will mean giving up on JavaScript. The more popular CoffeeScript becomes, the less proficient the overall developer population will be at JavaScript,especially if they spend most of their time writing CS over JS. The problem at the moment is that the world still works in JavaScript, not CoffeeScript. He rightly draws the analogy between jQuery and JS. I spend a lot of my time working on jQuery core, and…

How many people will be running IE6 in the year 2016?

Also, what is the desired end game here? Do we want software developers to have encyclopedic knowledge of browser quirks in 2021? How about 2026?

Re: CoffeeScript Means Giving Up on JavaScript

#45

It's very gratifying to see how overwhelmingly the comments are both positive and in disagreement with Michael's blog post. If you'd like to see the most complete explanation of why CoffeeScript is all about working with and embracing JavaScript -- not giving up on it -- the best resource is probably Brendan Eich's and my joint talk at this year's JSConf: http://blip.tv/jsconf/jsconf2011-jeremy-ashkenas-5258082 But t…

[deleted]

Re: CoffeeScript Means Giving Up on JavaScript

#46
Did C mean giving up on assembler? Maybe so. Some people still use assembler but it is good to have a choice.

JavaScript is just an 'ok' language. It has serious warts and it might have been great in 1998, but not now. But we are stuck with it. There are JIT compilers for it, it is on every browser out there so.

Re: CoffeeScript Means Giving Up on JavaScript

#47

I really hope that we can finally end the tyranny of Javascript and allow programmer freedom. This is why PNaCl is so exciting -- just send LLVM bytecode which can be executed more directly and efficiently. You can choose whatever language you'd like! Imagine if every server (every. server.) had to run PHP on the backend and Java, Ruby, OCaml, even C just compiled to PHP. You would go insane. We don't have that situa…

Whoa, JavaScript is so much better then PHP.

PHP is an ugly language, but its issues are way more manageable. The worst PHP code I worked with was easier to understand and debug than an average JQuery plugin I've worked with.

Re: CoffeeScript Means Giving Up on JavaScript

#48
There are a lot of fair points here, but I know personally for me that I was using jQuery for a lot of websites, then saw the beauty of some .coffee files and got into it. Since then, I've cared more about just plain ol' JavaScript and have stopped using frameworks (most of the time).

So while the syntax of CoffeeScript may mean giving up on the syntax of JavaScript, it's brought me closer to vanilla JavaScript and made me more aware of it, without being in the context of a framework like jQuery or Prototype.

Just my two cents...

Re: CoffeeScript Means Giving Up on JavaScript

#50

CoffeeScript will mean giving up on JavaScript. The more popular CoffeeScript becomes, the less proficient the overall developer population will be at JavaScript,especially if they spend most of their time writing CS over JS. The problem at the moment is that the world still works in JavaScript, not CoffeeScript. He rightly draws the analogy between jQuery and JS. I spend a lot of my time working on jQuery core, and…

I was interested until this:

> "Five years ago when jQuery was created, just about every web developer knew JS quite well and understood the quirks of every browser and JS implementation."

False. Five years ago programs thought of JavaScript as a silly little non-language to add fantastic effects onto their serious back-end code. When Rails 0.6 added a way to do sort-in-place lists via ajax, and they worked every time, I remember feeling that this was surely some kind of dark magic, because who could write JavaScript that worked all the time with different back-ends?

What has actually happened is that the pool of people who used JavaScript five years ago, with in most cases an appropriate dash of fear, are now quite competent JavaScript programmers who can do fancy things. And newer programmers can get started with jQuery even without knowing browser quirks from the start, though eventually they have to learn them.

jQuery has lowered the barrier to entry, it hasn't made people stupider. It's made the prior intermediate-level js programmers into ninjas, and it's given newbies the power to do cool things and then complain when they find small problems.

CoffeeScript is the same. It lowers the barrier to entry for people who don't care to understand why the arguments array isn't a real array, or how functions definitions are hoisted if they don't come as part of a var statement.

Yes, this means that new users will complain because they don't understand the technologies underneath. And that's a challenge to us to be a welcoming and educational community that helps them learn.

Post reply on HN