为什么我从Python转战到Node.js

简介:

老生常谈?这些日子谁不是切换到Node呢?我就是其中之一,下面是我的理由。

Python 2,抑或是Python 3?

Python版本之间缺乏重点和运转是一个巨大的阵痛。是的,我知道很多库正在被转换或已经被转换过了。但是,一个接一个地缺乏重点以及明确的方向使得我对它的信任降到历史最低。我知道这和不想移动的社区有很大的关系,但开发人员对此不买账,尽管是社区驱动项目。

Unicode支持

你有没有试过在Python中使用Unicode?TMD真心太痛苦了。是的,关于这个主题有很多这方面的文档,因此它不应该那么令人费解。Python 3是一个进步。当然我并没有说Node和JavaScript在这方面非常突出,但它们绝对有更佳的选项。

循环导入

循环导入是任何Python程序员的 痛苦之源,并且在我看来是这个语言非常破的一个架构选择。我知道在大多数情况下,循环导入是模块设计被破坏的一个标志。但是,如果你是一个有经验的开发人 员,那么可能你会将更多的时间花在将Python硬塞到高级模式中。好吧,对此我只想说祝你好运。Node.js允许我导入模块到任何地方。

旁注:显然Go也有这个限制。这太让我伤心了:(

NPM VS PIP

Python有PIP,这真的很棒。不过,我在NPM上经常能发现更多最新的现代化模块。随着NPM上其他共享的内容也出现了废话,因而你得对此提防。我一直认为在PIP上共享烦人,而在NPM上真心易如反掌。我的第一个模块共享只用了总共5分钟。

效率=更多钱!

这是毫无疑问的。当涉及到硬件(如果编写正确的话)的时候,Node比Python更精简。能够真正利用低端硬件并产生可接受结果是一个重要优势。 很多优势都可以归结为Node的异步特性。是的,我知道Twisted和类似的库。你有没有在其中实际写过一个异步app?在构建一个产品时,开发速度很 重要,但保持低的开销成本也很重要。我们可以运行相同的Node项目在Python所需的一半硬件上。

团队熟悉度

这总是一个值得探讨的话题,但是我更喜欢整个团队都能有一个基本的JavaScript水平。这意味着他们可以查看Node代码,并理解是怎么回 事。如果团队里面有前端开发人员,那意味着连接到API端点或处理意见非常容易。这对我而言也意味着在帮助他们时受到的干扰更少。太棒了!

MongoDB和JSON

我们喜爱MongoDB和JSON。Node不假思索地使用它俩。当然,显然这也可以用其他语言来完成,但是它的便捷性有着致命的吸引力,使得我不得不提到它。

它就是JavaScript

如果你像我这样热爱JavaScript,那么这是一个额外的优势。如果你不喜欢JavaScript,那么这个优势可能也不是很大。我认为 JavaScript之所以有趣是因为它善于表达。它提供了很多做事的方法,这在应用特定策略来解决关键问题时非常棒。这也滋生了一些愚蠢的辩论,例如 “添加分号VS不要分号”。在此郑重声明,我赞同使用分号。

结论

需要说明的是,我依然深爱着Python。它已经陪伴了我好多年,并且我用Python写了好几个产品app(见Postach.io和 QuoteRobot),然后经常用于快速服务器脚本。Node.js本来并非我的第一选择,但是我想要一些现代化的东西,并且做一些新颖的Web设计。PHP,Python和Ruby显然不符合要求。我的第一个选择是去学习Go(golang),但是由于时间限制和团队技能集让我与之无缘。初创企业对工作玩命,你懂的!Node折中了这些方面,允许我们立刻上手。

你对于现代语言有什么想法?你更喜欢Python抑或其他?为什么?欢迎分享任何有关于Node方面的“陷阱”。


作者:小峰

来源:51CTO

相关文章
|
8月前
|
JavaScript 前端开发 Python
Node.js在Python中的应用实例demo
Node.js在Python中的应用实例demo
|
8月前
|
JavaScript 前端开发 API
Node.js在Python中的应用实例解析
Node.js在Python中的应用实例解析
|
1月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的社区养老管理系统
基于python+django+vue.js开发的社区养老管理系统
153 1
|
1月前
|
编解码 JavaScript 前端开发
python如何解决js逆向混淆?
python如何解决js逆向混淆?
34 0
|
1月前
|
JavaScript 前端开发 API
如何利用Python的Flask框架与Vue.js创建RESTful API服务
【4月更文挑战第10天】本文介绍了如何使用Flask和Vue.js创建一个前后端分离的RESTful API服务。Flask作为后端框架,负责提供CRUD操作,与SQLite数据库交互;Vue.js作为前端框架,构建用户界面并利用axios库与后端API通信。通过示例代码,展示了Flask设置路由处理用户数据以及Vue组件如何调用API获取和操作数据。此基础结构为构建更复杂的Web应用提供了起点。
|
1月前
|
JavaScript 前端开发 Python
生成X-Bogus的js代码,通过python调用生成
该文本是一个关于如何解析和执行JavaScript代码的步骤说明。主要内容包括: 1. 找到JavaScript文件的位置。 2. 下载代码并进行格式化。 3. 运行代码时会出现缺少变量错误,需要添加模拟环境的代码。 4. 指出主要的入口函数是`_0x5a8f25`,将其赋值给`window`。 5. 提供了整个JavaScript代码的长串内容。 6. 提供了一个Python脚本,用于调用这个JavaScript函数并处理返回的数据。 总结:这段文本描述了如何处理和运行一个JavaScript文件,以及使用Python来与这个脚本交互的示例。
104 0
|
1月前
|
存储 JavaScript 编译器
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!
这款国产中文编程火了!通过文言文编译生成Python、JS、Ruby代码!
|
1月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
80 0
|
1月前
|
机器学习/深度学习 JavaScript Python
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
101 0
|
1月前
|
数据采集 机器学习/深度学习 JavaScript
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
画【Python折线图】的一百个学习报告(二、pyecharts引入js文件)
69 0