PHP的优势在于, 跨平台, 极易部署, 易维护, 为Web而生, 开源社区强大, 文档丰富.
至于说3足鼎立, 谈不上, 全球前100万的sites中, 70%是PHP.
JSP和Asp、.net 也很优秀, 但是他们的部署问题是最大的问题.

首先从程序原理上来说
PHP才是脚本语言,也就是说,是被触发解释执行的。
.Net和JSP,都是在虚拟机里跑的应用程序,可以操作内存及线程 。本质上和PHP并不一样。

举例:
如果让PHP给百分之一女装做计划任务,那就必须依赖于系统本身的计划任务触发。而.Net和JSP只需要起一个线程就可以了。

但是PHP最大的优势就在于,免费、开放!
免费的好处就不用去说了,谁都不会向微软卑躬屈膝。
至于开放,还可以举例让你明白:FaceBook就是用PHP写的,但是PHP执行效率让扎克伯格很伤脑经,于是FaceBook提出了另一个思路:

就是把底层的数据库业务逻辑用C++进行封装再转而提供给上层API。
PHP可以做到,因为它是开源的。

这三个东西真的不是三国鼎立啊,因为这三个东西根本不是同一个分类维度上的:
PHP:语言(PHP Script)+ Web 运行时(PHP Engine)
JSP:JSP 和 Java Servlet 的关系可以看成是 CoffeeScript 和 JavaScript 的关系,本质上 JSP 不是独立的技术,而是一种模仿 ASP/PHP 形式写法,编译成 Servlet 运行的关系。以前曾流行于作为 Java EE 的模版引擎(视图层),现在似乎有更多更好的选择,正在逐渐被边缘化。
.NET:.NET 和 Java 才是同一个分类维度上的吧?不知道你是不是想说 ASP .NET,ASP .NET 是基于 .NET Framework 的 Web 运行时,和 PHP Engine 地位类似。目前比较流行的有“控件党” ASP .NET WebForm 和微软新推的 ASP .NET MVC 两种上层框架。
如果要评论优势劣势,我的观点是:
PHP:优点:草根,所以有广泛群众基础,极度适合做 CMS,入门门槛极低(补充一个鸟哥说的:部署方便,确实像 PHP 这样部署方便的不多见)。另外一个优点就是有大量成熟的 CMS 可以做二次开发(WordPress、Drupal、Joomla 等)。缺点:不适合做逻辑复杂的 Web 2.0 应用(不要谈 Facebook,Facebook 已经把 PHP hack 到不是 PHP 了),因为生命期单一(一个请求为一个生命期,请求间完全隔离),所以从 PHP Script 的角度扩展显得鸡肋(目前大多 PHP 框架的共同问题)。
JSP:已经边缘化的东西了。如果说 Java Web,那还有的一谈(Spring MVC 就很不错),JSP 真的没什么好谈的了。
ASP .NET:这个最大的优势是不开放,没错,不开放是 ASP .NET 系的优势。因为微软是几乎唯一的支持者,所以系内产品可以无缝搭配,支持也很到位,这点和 Python 的 Django 很像。劣势:不开放,所以如果需求比较独特了,微软的产品线没有覆盖,那么上述优势瞬间灰飞烟灭 = =~
我觉得当代 Web 应用,新兴技术才是真正值得选择的:
Ruby、Python 等 Web 框架和相关技术
JVM 扩展的其他动态语言框架
这些新兴技术的共同特点是开发效率极高,因为新兴语言的灵活性,适合做 DSL,所以在框架方面往往能实现近乎声明式的开发;同时因为社区活跃,需要造轮子的地方很少,很多可以复用的第三方社区扩展。

PHP、JSP、.NET各自的真正优势是什么的更多相关文章

  1. JSP中两种模式的总结

    运用JSP/Servlet实现的Web动态交互,主要采用: 模式一:JSP+JavaBean 链接:http://wxmimperio.coding.io/?p=155 模式二;JSP+Servlet ...

  2. Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)

    Jsp 环境目前最流行的是 Tomcat5.0.Tomcat5.0 自己包含一个 Web 服务器,如果是测试,就没必要把 Tomcat 与 IIS 或 Apache 集成起来.在 Tomcat 自带的 ...

  3. 初学Java Web(6)——JSP学习总结

    为什么要学习 JSP Servlet 的短板: Servlet 的出现,是为了解决动态输出网页的问题. 虽然这样做目的能达到,但是存在一些缺陷: 在 Servlet 输出网页片段非常恶心 (可读性差, ...

  4. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

  5. MVC模式与三层架构和表示层

    1.MVC模式     - Model-View-Controller     - 模型-视图-控制器     - Model(模型)         > 模型分为业务模型,和数据模型     ...

  6. Strtus2框架笔记

    Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架. Struts2引入了几个新的框架特性:从逻辑中分 ...

  7. FreeMarker的应用场景

      FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一 ...

  8. JSP的优势与劣势浅析

    本文简单介绍了JSP技术,并对JSP的优势与劣势进行了简单的分析.JSP页面由HTML代码和嵌入其中的Java代码所组成. JSP(JavaServer Pages)是由Sun Microsystem ...

  9. JSP的优势

    以下列出了使用JSP带来的其他好处: 与ASP相比:JSP有两大优势.首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用.第二点就是JSP易于移植到非MS平台上. 与纯 S ...

随机推荐

  1. linux环境下tcpdump源代码分析

    Linux 环境下tcpdump 源代码分析 韩大卫@吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分 ...

  2. eclipse设置快捷键sysout+Alt+/后出System.out.println!亲測可用!

    曾经一直用myeclipse,没有这方面的顾虑,如今换到了eclipse,非常多要自己设置了,比方非常多快捷键. 最经常使用的,执行到sysout ,eclipse总是不自己主动补全,非常是恼火!!! ...

  3. JSLink to render the list to show people detail info with picture

    I  create a custom list, and create a poeple column to store poeple detail info with picture in this ...

  4. 将默认的Netbeans中文版设置为英文界面

    问题:从官网下载的Netbeans不论是中文版还是英文版默认的操作界面都是中文,并且字体十分恶心. 原因:Netbeans 根据本地的操作系统自动设置界面语言,并且没有提供更改的功能. 目标效果:把N ...

  5. iOS开发中一些常用的方法

    1.压缩图片 #pragma mark 处理图片 - (void)useImage:(UIImage *)image { NSLog(@"with-----%f heught-----%f& ...

  6. Java 加密 AES 对称加密算法

    版权声明:本文为博主原创文章,未经博主允许不得转载. [AES] 一种对称加密算法,DES的取代者. 加密相关文章见:Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES R ...

  7. netty Architectural Overview --reference

    reference from:http://docs.jboss.org/netty/3.1/guide/html/architecture.html 2.1. Rich Buffer Data St ...

  8. eclipse下修改项目名导致tomcat内发布名不一致的解决方法 .

    eclipse下修改项目名导致tomcat内发布名不一致的解决方法 . ------------------------------------------------------- 解决方案: 直接 ...

  9. WWDC2016 Session笔记 – Xcode 8 Auto Layout新特性

    目录 1.Incrementally Adopting Auto Layout 2.Design and Runtime Constraints 3.NSGridView 4.Layout Feedb ...

  10. 一种协程的 C/C++ 实现

    一种协程的 C/C++ 实现 介绍 在前几天接触到了协程的概念,觉得很有趣.因为我可以使用一个线程来实现一个类似多线程的程序,如果使用协程来替代线程,就可以省去很多原子操作和内存栅栏的麻烦,大大减少与 ...