问题答案
我以前写后端的~ 现在突然觉得应该学习下javascript了。
 
我是写Python和C的,现在想学习javascript,关于nodejs, coffeescript还有js有点不大明白,它们的关系是什么?
 
在语法风格上我更喜欢 coffeescript, 还有更好的选择麽? 使用coffeescipt需要我对js了解多少呢。
答案
coffeescript一句翻译成javascript一句或者好几句
 
以前编译器的概念是将语言翻译成机器码(native code), 如果javascript算浏览器的native code的话, 称coffee为一种编译也不为过
 
node如果说是服务器的话, 不如说是语言解释器好了: 把node想象成python或者ruby吧. node的本质是一个把libevent, v8等库编译到一个执行文件里面的东西, 所以node不仅仅是v8
 
异步是好是坏? 如果你的一个ajax要花上几秒去请求sql, 那么你一定会抱怨异步, 因为阻塞了其他请求(这个不是因为异步, 而是因为单线程). 异步本质上是一种更加高效的应用cpu的方式, 多线程是分时, 而异步是根据io和事件来分配cpu.
 
nodejs(也包括tornado)这种异步framework的兴起, 也使得我们要尽可能的使用各种cache技术来减少请求时服务器端的计算量(时间).
 
换一种说法, 你不希望google得到你的搜索词条以后, 花上数十个小时计算, 再返回给你结果吧. 你需要想进一切办法优化你的web性能, 而不是希望多线程能够替你掩盖糟糕的系统涉及和缓慢的查询. 在异步框架中这样的问题得以暴露, 让你不得不去解决.
 
异步框架使得有理想的团队敢于迎接挑战. 作为回报就是在大用户量下, 你的产品通常会拥有出色的性能.
 
这相对于那些非技术创业背景的人(他们喜欢先找外包, 做出一个能看不能用的产品, 梦想融资以后再重金请NB的人来重构, 结果往往牛人也木有办法, 只能修修补补), 你的产品内在就非常有优势. 通常一个从设计初期就没考虑到扩展的项目, 之后就会变得很辛苦, 比如facebook就被指责内部数据结构很糟糕, 他们宁可重写php(用C++写的hiphop, 现在是java)来提高生产性能, 也不愿意去重构现有代码.
举一反三