web前端工程师学Python还是Node.js?

很多人吐槽“Node缺少成熟的大框架”,我认为这个既是Node的缺憾同时也是Node的优点,为什么这么说?其实这和Node社区的开发思想有关,几个领头的开发者都推崇“写做好一件事的小程序,然后把它们串起来”的Unix哲学,加上npm对于包之间互相依赖处理得很好,灵活性其实是Node的卖点之一。所以从某种角度来说,实际上Node并不需要像Django那样大而全的web框架。
Node.js有微软的加持,Windows基本被视为一等公民来支持,libuv已经可以很好的做到统一跨平台的API;而Python虽然也对Windows有官方的支持,但是总感觉是二等公民,时不时出些小问题。

单纯从语言角度来说,Python写起来要比Javascript舒服很多。Javascript设计本身有许多缺陷,毕竟当时设计的时候只是作为在浏览器中做一些简单任务的script,所以代码一旦庞大,维护还是有困难。不过用Coffeescript可以很大的改善Javascript,几乎可以和Python等同。

就异步风格来说,Node.js的异步Style是CPS,也就是层层callback,基于event,和浏览器中的Javascript很像。缺点是逻辑一复杂,就变得很难维护。而Python的异步除了和Node.js很像的Twisted之外,也有基于coroutine的gevent,coroutine让异步代码维护起来更容易,不过个人感觉学习曲线要陡峭一些。

我当时也在Python和Node之间徘徊过,后来发现用Django做web的开发,在一些需要RESTful或高频请求的部分用Node.js简直就是一片新天地哇。

 

你可能感兴趣的:(Python,前端,编程,html5)