虽然这些内容在百度里搜一下有一堆,但很多其实都是表面的描述了。我希望在知乎上可以了解到一些真正开发者的理解。当然这些编程语言始终只是工具。
回复内容:php的优势在于, 跨平台, 极易部署, 易维护, 为web而生, 开源社区强大, 文档丰富.
至于说3足鼎立, 谈不上, 全球前100万的sites中, 70%是php.
jsp和http://asp.net 也很优秀, 但是他们的部署问题是最大的问题.我看个这么多评论,真的很搞笑,国内就这个水平。 这三种web后端语言,在工作中我只用php。 其他二种只是了解。 如果你真的懂web怎么运行,什么语言都不重要。 如果不懂web怎么运行, 就搞一种比如php,然后你就必需至少理解http协议, 如果天资不好,最好搞一本网络协议看看,从硬件光缆看到应用层比如http,ftp. 只有你懂得网络,你才能懂得web 怎么运行。像php后台语言就是干http协议的事(当然还有apache辅助,如果非要往后扯linux->硬件->物理,数学), 以及把后台逻辑变成前台http/javascript/css 等,当然javascript是把能够在后台处理的逻辑移到前台了。
至于用什么web后台语言真的不重要。重要的是你知道web是怎么干的,
我看到好多人说精通一门技术,这太宽泛。如果技术是一门编程语言, 你不需要精通任何一门语言。我觉得计算机体系结构是最好的入门点,向后可以研究硬件,向前可以研究软件。如果非要一门语言作为工具。c语言最好。 比如web开发。 如果你搞懂了web是怎么回事,用c开发web程序也是很容易的事。
总之,如果你真想编程,最好做长期打算。从头开始。这样会事半功倍。实际上,学计算机的人,到最后真的懂计算机1/10, 精通我猜1/100.
至于初学者为了开发web用哪个,一定要用php,只有一个原因,她最流行且已是主导地位了。
首先从程序原理上来说
php才是脚本语言,也就是说,是被触发解释执行的。
.net和jsp,都是在虚拟机里跑的应用程序,可以操作内存及线程 。本质上和php并不一样。
举例:
如果让php做计划任务,那就必须依赖于系统本身的计划任务触发。而.net和jsp只需要起一个线程就可以了。
但是php最大的优势就在于,免费、开放!
免费的好处就不用去说了,谁都不会向微软卑躬屈膝。
至于开放,还可以举例让你明白:facebook就是用php写的,但是php执行效率让扎克伯格很伤脑经,于是facebook提出了另一个思路:
就是把底层的数据库业务逻辑用c++进行封装再转而提供给上层api。
php可以做到,因为它是开源的。
明白了么? laurence 大神说的部署问题,我认为并不存在,php再轻也需要一个 apache跟php, java要tomcat跟jvm,net 要iis跟.net framework..但是现在.net的部分框架甚至可以让.net自宿主运行,安装一个mono/net framework就解决了所有问题
注意:.net通过mono来跨平台运行,所以win已经不再是障碍了
php在web领域有不可动摇的地位,70+的占有率,大部分是由wp,discuz,ecshop
这些开源整站程序支持出来的。从tiobe最新的排名来看,
java 19% c# 4.7% php 2.8%
由于php只在web执行,还有android为java带来的巨大优势,私认为在web领域三者应该不分伯仲
.net拥有宇宙最好使的ide visual studio(甩开eclipse几条街有木有),能最大优化开发效率…但是也由此催生一些只会用工具的码畜。
php轻巧,请求上来,由服务器接受请求,转交php执行脚本,跑完了事。net跟java的主要web框架,都会事先有一部分在内存执行。
php开源程序应该是木有java多的,我大.net最少。
运行效率嘛,几个循环其实没什么代表性。
不同版本的php.jvm.net.mono 可能都有一些差别
不管神马语言,都不会影响你成为优秀的码畜。在企业应用领域,只有java和.net。原文链接:
usage statistics and market share of server-side programming languages for websites, august 2015
server-side programming languages ( 8月)
1. php 81.2%
2. http://asp.net 16.7%
3. java 3.0%
popular sites using phpfacebook.combaidu.comwikipedia.orgqq.comtwitter.comtaobao.comsina.com.cntmall.comvk.comsohu.com据我所知,php的需求量还是挺大的,很多公司都招不来可用的php人才三者各有个的优势 , net开发速度快 , 底层类很多 ,能快速开发出性能不错的程序 。但问题是很多人只懂皮毛开发出来的不尽人意 。php、jsp和.net都是好的编程技术和工具。
php容易上手;jsp是java的高级应用,意味着你要有较扎实的java基础;.net只能应用于微软平台。
不知道这个话题背后的问题是什么?是想选择一种技术来规划自己的职业方向,还是来确定一套业务系统的技术方向?其实,它们都只是工具,是用于软件系统中来解决现实业务问题的。很多人按系统的大小、功能的复杂程度的实现来对三者打分,其实没有必要。如果你只是要掌握编程能力来找工作,学习一种到两种都可以。况且南方和北方对技术人才需求的方向也是不均衡的,(个人感觉,南方偏.net多一些,北方偏java多一些)。工具毕竟是工具,用好用坏是个人的能力,但最终都是要归根于行业和业务,所以重视行业业务才是发展的主线。
从运行效率来讲,php是比后两者慢。但实际上对于对大多数应用,其影响是微不足道的。运行效率很重要,但快和更快一点的区别对应用体验来说,价值不会很大。在现今瞬息万变的信息时代,一个好的系统,其实最重要的是扩展性好,稳定性高,就足够了。在这些点上,各种开发平台各有优势。
php开发效率高,交付成本低
java流行(网上解决方案信息最多),成熟,灵活,稳定性好
.net不清楚
so,精通一种技术就好,不用管是什么语言。不用的应用不同的场景有不一样的选择和取舍。语言不重要,重要的是用对地方。