【问题标题】:Web Frameworks & Available Libraries: Is it a brave move to opt for Node.js instead of Python?Web 框架和可用库:选择 Node.js 而不是 Python 是一个勇敢的举动吗?
【发布时间】:2012-01-05 15:22:34
【问题描述】:

我现在有相当长的一段时间(一两个月)才能真正开始学习网络编程语言;所以我还在为学什么语言而烦恼。

无论我选择哪种编程语言,我还必须与该语言一起学习 JavaScript,因为它是客户端脚本的首选。

我在看: (1) Python, Ruby, JavaScript (Node.js -- server-side & jQuery -- client-side); (2) DBMS - PostgreSQL (3) 我还是要学习 C/C++ (但在我学习了上面提到的高级编程语言之后)。

所以,问题是,选择 Node.js/JavaScript 进行服务器端编程是一个勇敢的举动吗? (从某种意义上说是勇敢的,学习 Python 会容易得多,而且好得多,而你只是试图通过选择 Node.js 变得勇敢/愚蠢)

需要考虑的要点:

  • 我相信 Python、Ruby 和所有这些都会有一个美好的未来。 Node.js 也会享受同样的乐趣吗?你认为? (长期计划)

  • 可用性网络框架:有没有像 Django(或 Pylons)一样成熟和完整的 Node.js 框架?

  • SO 社区和网络支持的可用性:也就是说,如果出现问题并且我需要帮助,我能否确定我会从 SO 社区获得一些好的答复?我的意思是,如果是 Python、C/C++ 等,我肯定会这样做。

  • Node.js 编码速度是否比 Python 慢?

为什么我还要考虑 Node.js?

  • 我读过关于 SO 的 cmets/answers 说 Node.js 比 Python、Ruby 或 PHP 等其他高级语言快得多。抱歉,但就像我说的,这不是我的意见[READ]
  • 如果我选择 Node.js,我基本上只需要学习一种编程语言——JavaScript。 (我不是在找工作,我想开发一个(大型?)网络应用程序,比如社交网络或照片共享服务)

[我相信任何人都会有这些问题,所以这并不完全是主观的]

【问题讨论】:

  • 您是否有任何事实证明您的理论,即 Node.js 并不比 Ruby、Python、PHP 快?或者这只是一个咆哮?:)
  • @alessioalex 这就是我有阅读链接的原因。 stackoverflow.com/q/1902991/860672 - - 我现在加粗了。
  • 拜托大家,这不是咆哮。只是一个简单明了的答案。
  • 对不起,我误解了你的说法,实际上是关于编码的速度。 #mybad
  • @alessioalex 很高兴这个问题不再令人反感。

标签: python node.js server-side serverside-javascript


【解决方案1】:

1) 我个人喜欢 (!) Ruby,我认为它是可以编写的最漂亮的语言,但我也喜欢 Node.js 和 JavaScript 的速度。幸运的是,我可以将我喜欢的两者结合起来,答案是 CoffeeScript(它具有 Ruby / Python 编程风格,但它编译为纯 JavaScript)。注意:您应该正确学习 JavaScript,然后才能传递给CoffeeScript

2) 我不会使用 PostgreSQL,因为我想使用更“快速”的东西,比如 MongoDB(数据库上的 JavaScript 也是 - 如果你只知道 SQL,那么学习 MongoDB 比 CouchDB 更容易)或 CouchDB(这是一个非常棒的 db,也在 JavaScript 中——它默认支持同步)。但是,如果您想使用 PostgreSQL,则有适用于它的驱动程序。

3) 很高兴您计划学习 C/C++,因为每种语言都建立在此之上。您可以为 Ruby、Node 或 Python 编写 C/C++ 模块。

回答您的(额外)3 分:

1) 有一个非常好的 Web 框架,名为 Express,它深受 Sinatra (Ruby) 的启发。还有其他框架,但我相信 Express 是最好的(你甚至可以在它之上构建自己的框架等,它是“灵活的”)。

2) 我实际上订阅了 SO 上的“node.js”标签,我可以说,如果你发布一个有效的问题,你会在 1 分钟到 24 小时内得到答案。不仅如此,只需加入 Node 的 IRC 频道 (#node.js #express #socket.io #nodejitsu ) 并查看那里的活动。我可以向你保证,在我学习的过程中,我没有任何未解决的问题(真的,这些人非常乐于助人)。

3) 不,一旦你习惯了,情况就不是这样了。在 Node.js(不仅是 Erlang、Twisted 或 EventMachine)中编码时,您唯一需要习惯的就是异步编程方式。此外,几乎所有东西都有大量的模块和助手(这样也可以加快您的编码速度,您不必为所有东西重新发明轮子 - 您也可以在前端使用一些 JS 代码)。

我可以根据我自己的经验告诉你,一旦你习惯了异步编程风格(使用回调等),就没有什么能让你慢下来了。

额外

虽然 Node.js 还很年轻(2009 年),但 Github、Linkedin、Yahoo、37signals、Learnboost、Trello 都在使用它,所以你不会那么勇敢:P

【讨论】:

  • 但我猜他们(Gitbub、LinkedIn)都没有完全使用 Node.js?就是这样,因为我想我会的(而且我不想看起来很愚蠢)。那么,Node.js(库等)的可用资源是否与 Python 相当?
  • Github、Linedin 和 Facebook 等都不是只使用一种语言,而是使用多种解决方案来扩展他们的应用程序。 Node.js 的资源不能和 Python 一样,因为两者的成熟度不同,但是 Node.js 的库还是有很多的:github.com/joyent/node/wiki/modules(这些都是一些)
猜你喜欢
  • 1970-01-01
  • 2016-09-11
  • 2020-08-11
  • 2010-09-17
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
  • 2022-06-26
  • 1970-01-01
相关资源
最近更新 更多