时间:2021-07-01 10:21:17 帮助过:12人阅读
首先贴两张图,先直观地感受一下两种语言不同的魅力,后面我来聊聊我对这两种语言的理解。
第一张是我用Nodejs为mongoose编写的简单的事务回滚模块。
第二张是我用PHP写的类似于Express框架的路由模块。
1.语法
相信看了上面的两张图,对于两种语言最直观的感觉是语法相差甚大。
首先来说说PHP
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
以上这句话摘于百度百科。PHP的语法是公认的比较独特的语法了,集百家之长,再加以创新。学习过OO的同学们一定会对此倍感亲切。不过对于我并不长的PHP编码经历,让我无法忍受的一点就是PHP的变量名必须在前面加一个$符号了。
至于Nodejs,Node本身就是Javascript语言,对于Web前端脚本开发者来说,学习Node简直是如鱼得水。Javascript作为脚本语言,在代码的编写上有极大的自由(画外音:PHP也是脚本语言好么!),但是Javascript的异步编码风格确实是让以学习同步编码风格的语言入门的同学Hold不住。
在语法方面,我更倾向于Nodejs(毕竟人家是写Javascript出身的233333)。PHP对于臣妾来说写的实在太累啦~
2.效率
这一点其实没有必要比较了,
Web语言效率问题,PHP还是Nodejs
看一下这里一楼的大大说的。
Nodejs凭借高效的V8引擎和它非阻塞异步I/O的特性,在其执行效率上远远超过了其他的脚本语言。
Node.js比PHP快14倍!
这里这位大大在效率方面分析的更加到位。当然我并不是在追捧Nodejs,就像这位大大说的
这不是简单语言细节之争,而是语言框架之争。将Node.JS这种异步机制从Javasctipt搬移到其他语言PHP .NET Java其实都会取得比原来堵塞方式有数十倍提高。
3.使用场景
毋庸置疑,这两种语言都是为Web开发而生。PHP多样化的内置方法和库,让Web开发变得极其的方便和高效,成熟的语言框架也给开发者提供了足够高的健壮性和稳定性。而Nodejs以其强大的特性吸引了大量的开发者为其贡献扩展库,Nodejs项目虽然还很年轻,但是已经聚集了大量的开发资源。
4.小结
毕竟对PHP了解的较少,所以以上言论中难免有点偏向于Nodejs,但是PHP发展多年屹立不倒肯定是有它的道理的,百度还用的PHP呢。
至于Nodejs,作为一门新兴(并不新啊,Javascript可比PHP老多了)语言来讲,它独特的设计特性足够吸引开发者向它看了。
最终回到题主的问题,不知道题主说的没有基础是指完全没有编程基础还是没有服务器开发基础?
如果完全没有编程基础的话,我建议题主还是先去学习C语言,先入了这一行,再选工具吧~
如果有编程基础的话,如果之前是学习OO的,建议先从PHP入手,毕竟更容易过渡,并且网络上对于PHP的资料要比Nodejs多得多。
如果之前学习过Javascript,我还是建议先从PHP入手,就像上面说的,先入了这一行,再选工具。服务器开发也算一个小行了,如果对服务器开发不了解,对网络机制不了解的话,先从PHP着手,把这些相关知识补充起来。
如果实在是被Nodejs的优势吸引住了的话,我建议先好好学习Javascript高级编程,深入理解一下异原型链和回调机制,这会对入手Nodejs有极大的帮助。
入行需谨慎,跳坑爬不出啊~
我不生产答案,我只是答案的搬运工!以上大都摘自网络。
无基础学PHP。最简单的。
nodejs的事件机制对初学者非常不合适。
php工程师会叫你学php,因为他会说,php是世界上最好的语言!
无任何基础就 PHP 吧
走 LAMP 系
我假设你要开发网站。否则的话,略过以下回答。
无基础建议从 PHP开始。
世界上60+%以上的网站用PHP开发的,有他自己的道理。
然后你应该学点Javascript,动态部分需要用到它。
Noje.js依托Javascript语法,如果你会JS后,再开始学会好一点。
网站大了以后,一般会改用Java/Scala语言,因为PHP需要解释执行脚本,速度上比不上Java编译后的字节码。
小结一下:PHP + JS => Java + JS。
最后,有时间、有兴趣的话可以再看一下Scala/Go/Rust等业界最新语言。谢谢。
nodejs吧,js顺便也就会了,再学学 html css 就可以写网站了~
我没用过PHP。
如果你什么语言的基础都没有,不建议你直接上nodejs。还是从其他标准一点的后端语言开始接触面向对象,MVC框架。Ruby,Python,Php首选,打好基础是关键。
新手一上去看到函数式的类实现,估计除了天赋较好的大多数都会搞晕了,JS的类实现不那么“标准”,对于你理解面向对象是会有混淆的。
如果一上来就用nodejs,你可能会很疑惑传给createServer那个函数里的request,response是什么,response响应头之类的又是什么东西。因为你没有MVC经验,不知道Web框架,模板之类的到底是什么东西,并且JS的面向对象实现的不那么“标准”,node的资料又不多,基本上没有多少中文资料,学起来可能会有困难。
如果你有其他面向对象语言基础(不需要水平太怎么样)。JS语法3天,node上手1天,直接看api和一些node框架的源码吧,当然要熟练那就另当别论了。
我觉得对应的应用场景不同,NodeJS应该主要应用在事务较少的web services上,搭配NoSQL数据库,达到很棒的性能。而且socketio实现web聊天也是Node的一个应用场景。
PHP应用在网页的呈现上比较好。PHP开发速度也很快,可以用于快速原型,不断迭代,效率其实还不是很差。
nodejs比php难学一些。而且异步的回调风格很容易让人踩坑。而且nodejs的调试也不方便。
综上所述,推荐Python。
nodejs不容易写,先开始php吧
写PHP时可以启用无脑模式,好方便,但函数命名,参数位置不统一,着实恶心。写node,额……,算了吧,还是乖乖用Java吧,(逃