扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
注:这是一篇翻译文章,不代表我们的观点!
创新互联公司专注于网站建设,为客户提供网站制作、成都网站制作、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,成都品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
Node.JS是一个非常糟糕的平台,他的糟糕之处体现在非常简单而重要的一个方面,就是他的核心工作机制:基于I/O的回调。
我想大家现在都知道。这种方式编写代码是很糟糕的。一段时间前我注意到了这个事情,
在使用了Go语言几周后我喜欢上了他。使得,我承认Go语言比python少了一些动态特性,而导致做开发的时候可能会多出一些任务(主要是做一些样
板)。Go比Python还少了一些“magic”的性质,从而代码具有明确性。
Go的这种明确性使得你更容易的阅读源代码。因为没有了这些“magic”特性,你就
弊,Python的开发速度要快简卖链,而Go的代码维护要容易。
可是,当你把这些事情往Node.JS上想的时候,你会发现没有了代码可维护性、没有了安心、得到了速度。可是我想说你真的得到了速度么?因为在此同时你同时失去了简易开发和简单维护。
我花费了很长时间去学习Node.JS,并试着做了一些东西,但是并没有成功,我是真的不知道从何开始。
通常我评价一个技术的好坏,是通过它自身的一些性质。是否容易上手、是否能帮助我提高
生产力、文档做的好不好、有没有帮助资源。很显然Node.JS没能通过上面的测试。在我学习了那么久之后我仍然没有做出一个产品。API参考虽然已经文
我看到HN(Hacker News)上的一些人说Node.JS有多好。我当时认为这些人都是很聪明的,Node.JS应该是一个不错的平台。很不幸,我花费了几个月时间最终发现这是一个非常糟糕的平台。我没能写出一点读起来很舒服的代码,(当然写起来也是很不舒服)
我开始怀疑我的编程能力!
当然,一些读者可能会说:我们将Node.JS用到的生产环境,所以这是你的无能。
也好,我接受,可能是我钻到某个牛角尖里了。但是我所说的权衡利弊的问题仍然成立,为了满足所承诺的可扩展性,你必须牺牲代码的可读性和可写性。而在Python下你可以非常方便的扩展。你可用gevent
,一个基于网络库/服务器的并发框架。这就意味着IO阻塞将不再是问题,剩下的唯一问题是python的解释器,而这也可以通过分布式多服务器来拦孙解决负载均衡问题。
现在只有一件事情是Node.js可以而Python不可以的,那就是
websockets。实际上我不确定是不是python确实不能,在Google后也许会找到一些方案。当然
Go可以很容易的实现websockets(go get code.google点抗 /p/go点虐 /websocket)
即便你认为websocket就是你使用Node.js的原因,但是我想说你仍然可以选择使用Node.js实现websocket,而其余部分都是用Python来做。这里有个例子
。是的,这个架构设计(联合Python和Node.js)可能是有点令人费解,配镇但是还是要比使用Node.js开发整个web程序要好的多。
其实世界上的编程语言的更新迭代,就是靠中国和美国两个国家在引导。
欧洲很多主流网站,还是VB写的。VB能在编程语言排行榜上占有一席之地,全是欧洲在撑着。从中派孙备国程序员的角度,VB似乎过时很久了,欧洲却还有大量的新项目在用它,但有人认为欧洲严重落后吗?
其实说来说去,技术基本没有变,只是写法一直在变。跟着变,只是显得时髦,不变,也未必就跟不上时代。
语言根本不是重点,平台才是重点。一句代码,尘毁怎么写更舒服?如何声明变量更人性化?这些重要吗?用一门语言,能做出什么样的项目,才更加关键吧?
比如JAVASCRIPT,单说语言本身,简直烂到爆。语法不严谨,各种劣根性,奇葩的面向对象写法,成堆的回调函数。。。。。在世界主流的编程语言中,没有一门比JAVASCRIPT更像半成品的了。但JAVASCRIPT却很火。为什么?因为现实情况下,它是唯一可以运行在web上的语言。
所以JS成功的关键,并不是JS这门语言本身有什么优点,而是因为web平台选择了它,因为Node平台选择了它。
现代编程语言的变迁,大概可以分为七个阶段。
早期是汇编语言,B语言的天下。那时候的计算机还很脑残。后来呢?Unix操作系统出现了。所以随着Unix诞生的C语言和perl语言火了。这基本可以算作第一阶段。
第二阶段,Unix没落了。。。而Linux取代了Unix,所以Python取代了Perl
第三阶段,Windows大杀四方,所以VB和C++一时所向无敌。
第四阶段,JAVA和.NET两大平台诞生,所以JAVA语言和C#语言崛起。
第五阶段,互联网平台发力,到处都在建网站,所以JAVASCRIPT和PHP成为了主流。
第六阶段,安卓平台发布,因此JAVA迎来了第二春。
第七阶段,IOS平台发布,OC语言从编程语言排行榜30名开外,迅速挤进前10
因此很容易看出,一门凯陪语言会火,并不在于语言本身,而在于新平台选择了谁。。。。而搞清楚下一个火起来主流的新平台是谁?其实就可以判断下一个要火的语言是什么了。。。。(语言靠前,则代表适用性越好,比如区块链的最佳语言是Go语言)。。
区块链——Go语言,C++,C#,JAVA
云计算——C#,Erlang,JAVA,GO语言
人工智能——Python,Lisp,C#,JAVA、Prolog、Yigo
物联网——C语言,C++,Python,C#,JAVASCRIPT
混合现实——C#,C++,JAVASCRIPT
WEBGL——JAVASCRIPT,C#
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流