PHP、JSP、.NET各自的真正优势是什么
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各自的真正优势是什么的更多相关文章
- JSP中两种模式的总结
运用JSP/Servlet实现的Web动态交互,主要采用: 模式一:JSP+JavaBean 链接:http://wxmimperio.coding.io/?p=155 模式二;JSP+Servlet ...
- Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
Jsp 环境目前最流行的是 Tomcat5.0.Tomcat5.0 自己包含一个 Web 服务器,如果是测试,就没必要把 Tomcat 与 IIS 或 Apache 集成起来.在 Tomcat 自带的 ...
- 初学Java Web(6)——JSP学习总结
为什么要学习 JSP Servlet 的短板: Servlet 的出现,是为了解决动态输出网页的问题. 虽然这样做目的能达到,但是存在一些缺陷: 在 Servlet 输出网页片段非常恶心 (可读性差, ...
- JSP应用开发 -------- 电纸书(未完待续)
http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术 第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...
- MVC模式与三层架构和表示层
1.MVC模式 - Model-View-Controller - 模型-视图-控制器 - Model(模型) > 模型分为业务模型,和数据模型 ...
- Strtus2框架笔记
Struts2以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架. Struts2引入了几个新的框架特性:从逻辑中分 ...
- FreeMarker的应用场景
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一 ...
- JSP的优势与劣势浅析
本文简单介绍了JSP技术,并对JSP的优势与劣势进行了简单的分析.JSP页面由HTML代码和嵌入其中的Java代码所组成. JSP(JavaServer Pages)是由Sun Microsystem ...
- JSP的优势
以下列出了使用JSP带来的其他好处: 与ASP相比:JSP有两大优势.首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用.第二点就是JSP易于移植到非MS平台上. 与纯 S ...
随机推荐
- winform窗体跟随窗体
Form2 frm2 = new Form2(); private void MoveProc() { frm2.StartPos ...
- cardslib
https://github.com/gabrielemariotti/cardslib
- [React] React Fundamentals: Component Lifecycle - Updating
The React component lifecycle will allow you to update your components at runtime. This lesson will ...
- VMware虚拟机安装Linux英文改中文系统并更新yum安装输入法
今天用VMware Workstation11时,出现了个"难题",在选择了系统盘后(我用iso镜像centos6.5)VMware会提示高速安装,安装后系统是英文版,并且找不到系 ...
- Android(java)学习笔记166:Java中输入和输出流概念
程序在内存中运行,文件在磁盘上,把文件从磁盘上读入内存中来,当然是输入流了, 反之,把内存中的数据写到磁盘上的文件里面去就是输出.通常都是这样的,用了过滤流的情况复杂一些,则另当别论.
- Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- Linux查看磁盘块大小
首先,使用df命令查看所在磁盘 df -hT 显示: Filesystem Type Size Used Avail Use% Mounted on /dev/vda1 ext4 15G .1G 12 ...
- 安卓数据存储(3):SQLite数据库存储
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级:使用 SQLit ...
- visio篇章--1
因为要做需求规格说明书的需要,所以学着用visio.发现visio中其实有很多东西的.我昨晚是用它来画ER图.不画不知道,花了之后才发现有很多窍门在里面.不说废话.我列举一下应该要的东西 1.百度链接 ...
- 使用ICSharpZipLib将文件夹压缩为zip文件
序言: 在我接触Git和SVN之前,我最常用的保存数据的办法就是把文件夹压缩成一个zip文件,添加上时间戳.下面是我在学习C#的文件操作之后做的一个练习,使用开源的ICSharpZipLib来 ...