热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javascript-js是不是越来越强大甚至可以取代php这类传统的后台语言?-php教程

以前一直偏向写php,偶尔写点js,后来做毕业设计用到大量js后觉得php这类后台语言的存在感一步步在削弱,特别是nodejs的出现,前后台js统一是不是大势所趋?
以前一直偏向写php,偶尔写点js,后来做毕业设计用到大量js后觉得php这类后台语言的存在感一步步在削弱,特别是nodejs的出现,前后台js统一是不是大势所趋?

回复内容:

以前一直偏向写php,偶尔写点js,后来做毕业设计用到大量js后觉得php这类后台语言的存在感一步步在削弱,特别是nodejs的出现,前后台js统一是不是大势所趋?

不满JS借助浏览器的历史惯性,在自身并无绝对优越的情况下,却能获得可怕的竞争优势,对其他语言极其不公的现实,因而产生这个包含情绪化的答案。
注意:我痛恨一个技术的流行,掺杂太多除去自身优越之外的因素。所以我并从来没有后悔过这样去写这个答案!
但答案本身确实毛病不断,这同样也是我否认不了的。
↙ 所以只管踩。

开玩笑!

请允许我说一句话:Why Javascript?

设计随意,坑要多少有多少,修修补补多年照样还是乱七八糟,语言本身没有版本管理,写下的代码多年之后的环境就跑不了了的语言,本身有什么优越可言?

其实php被取代掉,不是Javascript的功劳,而是Node异步化模型的贡献。是新的程序设计方法取代旧的程序设计方法,而不是新的语言取代旧的语言。思想是主力军,语言只是副产品。

请允许我说一句话:Node的优越并不在于JS,而是在于Node本身异步架构的设计。JS只不过是“前后端一体化”这种宣传上的噱头。在Javascript和Node的关系中,JS吃了浏览器客户端语言难以更新、难以代换,这个本来是技术落后点的甜头,也借助了Node与Javascript混为一谈的现实来给自己镀了镀金。这甚至有点寄生生态和“劣币驱逐良币”的意味在里边。

要我看Node.js早晚被其他语言作为核心的Node.***自己超越掉。因为JS对Node,甚至对整个异步化编程模型来说,在很大程度上真的是可有可无。

学里子,不要学样子。

看透思想,不要迷惑于表象!

首先,我不赞同 @沙渺 对NodeJS的理解

  • JS (或者说ECMA5标准的strict mode)是一门非常优秀,几乎没有什么坑的语言。不要把过去十几年浏览器大战造成的DOM和BOM混乱的屎盆子扣在JS的头上
  • 异步/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几条街
  • 鲁棒性强,耐操。PHP的正常业务代码,想要搞挂服务没那么容易,多数情况就是那个进程挂了而已,不影响其他请求;而Node侧想保证代码在不会搞挂进程没那么容易,而搞挂一次进程就算有各种容灾/重启/切换挡着,进程挂之前负责的若干个请求还是死定了。
  • 运维环境/工具链成熟。 NodeJS毕竟太年轻,周边的工具链远远不成熟
  • RDBMS,DAO,ORM成熟。node的sql orm和dao至今还没有特别靠谱package,而PHP侧至少前十的流行框架,每个的DAO&ORM部分都是好样的,不用第三方,自带的PDO也是干净利落。这里顺便黑一下mongodb,号称nosql还支持慢的要死的关联查询和索引,就是个笑话

最后,我认为前后台想要统一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这样的小框架也会非常给力的。

存在即合理!多一种选择不挺好的吗?为什么非要去取代呢?这种问题只会引起口水战。

你怎么缩进大括号?
ANSI
(ง •̀_•́)ง┻━┻ 去死吧异端。。。

noder: 我们比你更加适合做高并发!
PHPer: 世界上60%动态网站是php做的
noder: I/O密集型应用,我们轻松搞定!
PHPer: 世界上60%动态网站是php做的
noder: 你们PHP都是坑,我们nodejs才是高大上!
PHPer: 世界上60%动态网站是php做的
noder: 再见,不和你聊了。
PHPer: 世界上60%动态网站是php做的

怎么可能。毕竟js的话,得TMD考虑各种的浏览器

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • 在Ubuntu中安装MongoDB
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • Itwasworkingcorrectly,butyesterdayitstartedgiving401.IhavetriedwithGooglecontactsAPI ... [详细]
  • 用JavaScript实现的太空人手表
    用JavaScript实现的太空人手表-JS写的太空人手表,没有用canvas、svg。主要用几个大的函数来动态显示时间、天气这些。天气的获取用到了AJAX请求。代码中有详细的注释 ... [详细]
author-avatar
二狗子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有