84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
以前一直偏向写php,偶尔写点js,后来做毕业设计用到大量js后觉得php这类后台语言的存在感一步步在削弱,特别是nodejs的出现,前后台js统一是不是大势所趋?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
不满JS借助浏览器的历史惯性,在自身并无绝对优越的情况下,却能获得可怕的竞争优势,对其他语言极其不公的现实,因而产生这个包含情绪化的答案。 注意:我痛恨一个技术的流行,掺杂太多除去自身优越之外的因素。所以我并从来没有后悔过这样去写这个答案! 但答案本身确实毛病不断,这同样也是我否认不了的。 ↙ 所以只管踩。
开玩笑!
请允许我说一句话:Why JavaScript?
设计随意,坑要多少有多少,修修补补多年照样还是乱七八糟,语言本身没有版本管理,写下的代码多年之后的环境就跑不了了的语言,本身有什么优越可言?
其实php被取代掉,不是Javascript的功劳,而是Node异步化模型的贡献。是新的程序设计方法取代旧的程序设计方法,而不是新的语言取代旧的语言。思想是主力军,语言只是副产品。
请允许我说一句话:Node的优越并不在于JS,而是在于Node本身异步架构的设计。JS只不过是“前后端一体化”这种宣传上的噱头。在JavaScript和Node的关系中,JS吃了浏览器客户端语言难以更新、难以代换,这个本来是技术落后点的甜头,也借助了Node与Javascript混为一谈的现实来给自己镀了镀金。这甚至有点寄生生态和“劣币驱逐良币”的意味在里边。
要我看Node.js早晚被其他语言作为核心的Node.***自己超越掉。因为JS对Node,甚至对整个异步化编程模型来说,在很大程度上真的是可有可无。
学里子,不要学样子。
看透思想,不要迷惑于表象!
首先,我不赞同 @沙渺 对NodeJS的理解
异步/epoll是NodeJS的重要优点,但我认为这并非它如此流行的引爆点。我认为NodeJS最大卖点在于计算机历史上首次基本解决了依赖地狱(dependency hell)的优秀包管理系统NPM。几乎所有流行语言都可以通过扩展库的形式或多或少支持异步/epoll,但在NPM之前,没有任何一门语言的包管理系统能像NPM一样方便地管理依赖,保证再复杂的交叉依赖也不会版本冲突。(如果你知道有,欢迎举例我们来讨论其流行/不够流行的原因)
由于node有靠谱的NPM管理依赖,nodejs才能在短时间吸引大量开发者开发package,使得NPM上的package呈现良好的指数性增长,质量也非常高,由于依赖管理得当,不容易(几乎不会)版本冲突。真正形成了类库推动语言发展的良性循环
PHP原来的pear在这方面毫无建树。好在新兴的composer据称已经吸收了npm的优点(我没实际用过)。如果composer早一点,在php5.3支持namespace的同时出现,那nodejs的这波爆发的光芒可能就属于php了
然后说说我的答案,也就是我眼中PHP相较Node的优点
所有的程序员都觉得自己会写JS,除了JS程序员
最后,我认为前后台想要统一JS不是什么事。就好比方wow客户端用C++写,服务器也用C++写(不知道实情,只是打比方),你可以说是前后台统一C++。但两侧的技术栈完全不同,从写OpenGL/3D/物理引擎的客户端开发转写高并发/实时/事物处理的后台开发还是天堑。两边用的语言相同并没有实质性的帮助。
我认为 PHP 在技术上已经没有什么优势了,很容易被 Python, Ruby, JavaScript 这样的语言取代。PHP 整个看上去就像是一个模板引擎,但是便利性比不上专门的模版语言(jade, Smarty 等), 语法又很随意,构建大型项目时,组织代码不如一些通用编程语言有力。
Node.js 的优势在于 IO 密集的应用,Node.js 可以通过事件回调,最大化地利用 CPU 时间,并行执行多个 IO 操作,而不是很适合 CPU 密集型的应用(比如科学计算). 事实上,大部分的网站都是 IO 密集型的应用,瓶颈在于读写文件,读写数据库,读写网络,而不是在于计算,从这个角度来说,Node.js 在 Web 领域的确非常有竞争力。
至于 @ty4z2008 说的 Java 和 Golang, Golang 的应用领域是系统编程,即代替一些原本用 C/C++ 编写的网络应用,和 Java 没多少交集。
Jeff Atwood在2007你的博文 The Principle of Least Power中说到:any application that can be written in JavaScript, will eventually be written in JavaScript.
any application that can be written in JavaScript, will eventually be written in JavaScript.
如果没有项目的历史束缚,比如项目已经基于Java或PHP开发多年,完全取代或重写是不可能的,需要成本。社会上Java或PHP程序员仍然占到很大比重,并对NodeJS似乎不太看好,甚至仅仅知道有这么个东西存在而已。NodeJS开发者目前相当一部分是从前端开发工程师发展而来的,自然让人容易想到:前后端都统一用JS了。
NodeJS确实可以完成大部分应用,只是NodeJS从09年出现到现在,应用人群还不够广泛,存在各种质疑(性能、安全、稳定性?)或者老大不允许。毕竟Java、Erlang等已经在线上有大规模应用,经受住了考验,对于NodeJS来说,是抱存疑虑的。这些需要更多NodeJS开发者去努力。
个人感觉:PHP+MySQL造就了曾经的辉煌,而如今的黄金搭档则是NodeJS+MongoDB。
专业的答案有了,, 吐感想..
Facebook 是 PHP 写的, 我学 Node 的时候就在想早晚被干掉吧. 结果呢 Facebook 开发了 HipHop 的 PHP 编译器, 后来又有新闻发布 Hack 语言引入 Optional Type 提升性能. 我理解就是, PHP 不好, 但是还是被想办法用类似 PHP 的技术替代.
Node 流行跟 JS 开发者基数关系大, 而 JS 开发者多是因为浏览器只能写 JS. 按 Paypal 淘宝等等实践, Node 作为后端服务器够用, 而且一门语言打通前后端的好处不止是降低门槛, 甚至能改变人们对于应用的理解. 比如 Meteor 前端框架, 在浏览器端直接调用 MongoDB 操作等等来加速开发.. 其他语言或许能做, 但能不能像 JS 这样带来开发效率的提升就难说了.
具体说语言好坏恐怕关系到社区,编译器,开发者,互联网趋势方方面面分析不清楚 简单说我就是喜欢 CoffeeScript 而且对 JS 很有信心
我觉得 Golang 真心比 JavaScript 设计得好.. 但是做网页的人不完全是专业程序员. 考虑以后门槛变低, 而 Go 的门槛相对高, 我还是认为 JS 更热
不会 到很多人都说java会golang被取代。 因为利益相关的原因,java或5-10年至少没有问题。同样php也是。如果php被取代了那些php程序员干什么去? 到现在为止做.net还有很多。 语言只是一种工具,用好工具很重要。会选择性的使用工具更重要!
不会。
抛开所谓的nodejs技术上的优点,从之前项目的可替换性角度考虑,想要将所有php的项目换成nodejs无异于开玩笑。
PHP因为曾经的简单易学,加上个人主页(PHP设计初衷就是这个)的大量出现,使得PHP技术飞速发展,诞生了大量的开发框架和针对各种其他技术的驱动。但是如今,不管是移动API还是大型网站,或者是设计复杂的网站,PHP都有点吃力了。 js之所以有一统前后端的趋势,少不了json和mongodb的功劳。目前来看,对json支持最好的莫过于js,其次或许是python。不过归根结底,技术没有绝对的好坏,关键看你用在什么样的项目里。在某些小项目里,ThinkPHP这样的小框架也会非常给力的。
存在即合理!多一种选择不挺好的吗?为什么非要去取代呢?这种问题只会引起口水战。
你怎么缩进大括号? ANSI (ง •̀_•́)ง┻━┻ 去死吧异端。。。
不满JS借助浏览器的历史惯性,在自身并无绝对优越的情况下,却能获得可怕的竞争优势,对其他语言极其不公的现实,因而产生这个包含情绪化的答案。
注意:我痛恨一个技术的流行,掺杂太多除去自身优越之外的因素。所以我并从来没有后悔过这样去写这个答案!
但答案本身确实毛病不断,这同样也是我否认不了的。
↙ 所以只管踩。
开玩笑!
请允许我说一句话:Why JavaScript?
设计随意,坑要多少有多少,修修补补多年照样还是乱七八糟,语言本身没有版本管理,写下的代码多年之后的环境就跑不了了的语言,本身有什么优越可言?
其实php被取代掉,不是Javascript的功劳,而是Node异步化模型的贡献。是新的程序设计方法取代旧的程序设计方法,而不是新的语言取代旧的语言。思想是主力军,语言只是副产品。
请允许我说一句话:Node的优越并不在于JS,而是在于Node本身异步架构的设计。JS只不过是“前后端一体化”这种宣传上的噱头。在JavaScript和Node的关系中,JS吃了浏览器客户端语言难以更新、难以代换,这个本来是技术落后点的甜头,也借助了Node与Javascript混为一谈的现实来给自己镀了镀金。这甚至有点寄生生态和“劣币驱逐良币”的意味在里边。
要我看Node.js早晚被其他语言作为核心的Node.***自己超越掉。因为JS对Node,甚至对整个异步化编程模型来说,在很大程度上真的是可有可无。
学里子,不要学样子。
看透思想,不要迷惑于表象!
首先,我不赞同 @沙渺 对NodeJS的理解
异步/epoll是NodeJS的重要优点,但我认为这并非它如此流行的引爆点。我认为NodeJS最大卖点在于计算机历史上首次基本解决了依赖地狱(dependency hell)的优秀包管理系统NPM。几乎所有流行语言都可以通过扩展库的形式或多或少支持异步/epoll,但在NPM之前,没有任何一门语言的包管理系统能像NPM一样方便地管理依赖,保证再复杂的交叉依赖也不会版本冲突。(如果你知道有,欢迎举例我们来讨论其流行/不够流行的原因)
由于node有靠谱的NPM管理依赖,nodejs才能在短时间吸引大量开发者开发package,使得NPM上的package呈现良好的指数性增长,质量也非常高,由于依赖管理得当,不容易(几乎不会)版本冲突。真正形成了类库推动语言发展的良性循环
PHP原来的pear在这方面毫无建树。好在新兴的composer据称已经吸收了npm的优点(我没实际用过)。如果composer早一点,在php5.3支持namespace的同时出现,那nodejs的这波爆发的光芒可能就属于php了
然后说说我的答案,也就是我眼中PHP相较Node的优点
所有的程序员都觉得自己会写JS,除了JS程序员
。NodeJS需求的扎实的JS功底是非常高的门槛,没搞明白的人来写NodeJS基本只能添乱。而PHP则简单的多,其编程范式和C到C++/Java一脉相承,又抛弃了指针/宏/模板等各种『可能有用但很容易写错』的机制。它是这个星球最容易学习的CGI语言。入门容易程度甩NodeJS几条街最后,我认为前后台想要统一JS不是什么事。就好比方wow客户端用C++写,服务器也用C++写(不知道实情,只是打比方),你可以说是前后台统一C++。但两侧的技术栈完全不同,从写OpenGL/3D/物理引擎的客户端开发转写高并发/实时/事物处理的后台开发还是天堑。两边用的语言相同并没有实质性的帮助。
我认为 PHP 在技术上已经没有什么优势了,很容易被 Python, Ruby, JavaScript 这样的语言取代。PHP 整个看上去就像是一个模板引擎,但是便利性比不上专门的模版语言(jade, Smarty 等), 语法又很随意,构建大型项目时,组织代码不如一些通用编程语言有力。
Node.js 的优势在于 IO 密集的应用,Node.js 可以通过事件回调,最大化地利用 CPU 时间,并行执行多个 IO 操作,而不是很适合 CPU 密集型的应用(比如科学计算). 事实上,大部分的网站都是 IO 密集型的应用,瓶颈在于读写文件,读写数据库,读写网络,而不是在于计算,从这个角度来说,Node.js 在 Web 领域的确非常有竞争力。
至于 @ty4z2008 说的 Java 和 Golang, Golang 的应用领域是系统编程,即代替一些原本用 C/C++ 编写的网络应用,和 Java 没多少交集。
Jeff Atwood在2007你的博文 The Principle of Least Power中说到:
any application that can be written in JavaScript, will eventually be written in JavaScript.
如果没有项目的历史束缚,比如项目已经基于Java或PHP开发多年,完全取代或重写是不可能的,需要成本。社会上Java或PHP程序员仍然占到很大比重,并对NodeJS似乎不太看好,甚至仅仅知道有这么个东西存在而已。NodeJS开发者目前相当一部分是从前端开发工程师发展而来的,自然让人容易想到:前后端都统一用JS了。
NodeJS确实可以完成大部分应用,只是NodeJS从09年出现到现在,应用人群还不够广泛,存在各种质疑(性能、安全、稳定性?)或者老大不允许。毕竟Java、Erlang等已经在线上有大规模应用,经受住了考验,对于NodeJS来说,是抱存疑虑的。这些需要更多NodeJS开发者去努力。
个人感觉:PHP+MySQL造就了曾经的辉煌,而如今的黄金搭档则是NodeJS+MongoDB。
专业的答案有了,, 吐感想..
Facebook 是 PHP 写的, 我学 Node 的时候就在想早晚被干掉吧.
结果呢 Facebook 开发了 HipHop 的 PHP 编译器,
后来又有新闻发布 Hack 语言引入 Optional Type 提升性能.
我理解就是, PHP 不好, 但是还是被想办法用类似 PHP 的技术替代.
Node 流行跟 JS 开发者基数关系大, 而 JS 开发者多是因为浏览器只能写 JS.
按 Paypal 淘宝等等实践, Node 作为后端服务器够用,
而且一门语言打通前后端的好处不止是降低门槛, 甚至能改变人们对于应用的理解.
比如 Meteor 前端框架, 在浏览器端直接调用 MongoDB 操作等等来加速开发..
其他语言或许能做, 但能不能像 JS 这样带来开发效率的提升就难说了.
具体说语言好坏恐怕关系到社区,编译器,开发者,互联网趋势方方面面分析不清楚
简单说我就是喜欢 CoffeeScript 而且对 JS 很有信心
我觉得 Golang 真心比 JavaScript 设计得好.. 但是做网页的人不完全是专业程序员.
考虑以后门槛变低, 而 Go 的门槛相对高, 我还是认为 JS 更热
不会
到很多人都说java会golang被取代。
因为利益相关的原因,java或5-10年至少没有问题。同样php也是。如果php被取代了那些php程序员干什么去?
到现在为止做.net还有很多。
语言只是一种工具,用好工具很重要。会选择性的使用工具更重要!
不会。
抛开所谓的nodejs技术上的优点,从之前项目的可替换性角度考虑,想要将所有php的项目换成nodejs无异于开玩笑。
PHP因为曾经的简单易学,加上个人主页(PHP设计初衷就是这个)的大量出现,使得PHP技术飞速发展,诞生了大量的开发框架和针对各种其他技术的驱动。但是如今,不管是移动API还是大型网站,或者是设计复杂的网站,PHP都有点吃力了。
js之所以有一统前后端的趋势,少不了json和mongodb的功劳。目前来看,对json支持最好的莫过于js,其次或许是python。不过归根结底,技术没有绝对的好坏,关键看你用在什么样的项目里。在某些小项目里,ThinkPHP这样的小框架也会非常给力的。
存在即合理!多一种选择不挺好的吗?为什么非要去取代呢?这种问题只会引起口水战。