PHP是个很古老的脚本技术了,当年CGI比较让人诟病,于是PHP横空出世。PHP即写即用特性,吸引了一大批粉丝,而且类似C语言的编程风格,让那些C程序员非常容易地转到这个平台上来。当然PHP刚出来的时候,也有很多人怀疑性能问题,确实解释语言相对编译行语言,极限性能上确实有些不足,然而动态交互网页的趋势是不可逆转的,人们越来越需要一种更有友好的编程语言来实现这些需求。PHP便首当其冲,一时间出现了许多基于PHP的优秀程序。

虽然当年PHP如日中天,但也不是一家独大,还有一个与之抗衡是微软的ASP,ASP用的VBScript或jscript,一般情况下用VBScript,因为JScript跟客户端的JS混在一起,那代码看上去会非常的难受,那时候编辑器还没有那么智能,这让你傻傻地分不清某部分代码究竟是服务端的还是客户端,而VB就好多了,因为语法上有明显的差别,这可能就是大量使用VBScript的原因了。ASP在国内非常流行,这利益于Windows的大量普及,加上Visual Studio的支持,在国内产生了大量的拥趸。当时PHP跟ASP在大陆是平分天下,ASP跟现在微软技术一样,入门比较容易,PHP虽然也很容易,但配置起来步骤要比ASP复杂,ASP装了IIS就可以使用,而PHP还要下载PHP运行环境,并且要修改相关的配置文件,对于小白来讲,肯定选择ASP的机率会高一点。

随着电脑的普及,开发人员接触到的技术越来越多,掌握的知识也越来越丰富,服务端越来越多的使用开源的Linux系统,跨平台则成了一个刚性需求,ASP慢慢的就被人抛弃了,相对性能及可扩展的能力,ASP的那点友好度就渐渐不那么吸引人了。当我接触了Linux后,也开始学习PHP。不过那个时候网络不是很发达,我是在网吧里花了一个星期时间学会了PHP,后来靠这三脚猫的功夫写了几个程序,还投入到生产环境去用了。

动态脚本程序还是主流的年代,国内出现了很多优秀的开源系统,只是当时我们没有国外的这种开源的概念,比如要遵守某某开源协议什么的,我们就是把源代码打包放到某个网站上,让别人去下载使用,这有点类似共享软件的传播方式,只是把代码也扔出去了。后来有了代码混淆和加密技术后,有些闭源的东西也扔在这些源码网站上,开源闭源混杂一起。

微软在.NET的第一个版本发布后,ASP就微软彻底扔掉了,取而代之是ASP.NET,一种类似JSP的半编译的技术。而PHP则与时俱进,不断地进化和迭代,性能也越来越好。不过,随着时代的发展,独立的应用系统越来越少,哪是一个可以互动的网站,也免不了跟各种第三方的系统进行集成,这就需要更高层面的平台框架来实现这些新的需求,这显然不是用PHP这样的脚本程序能实现的。这个在JAVA上早已考虑到了,微软也是发现ASP不足,所以才弄出一个.NET来跟JAVA进行抗衡。.NET也好,JAVA也好,都能实现PHP的功能,虽然这两个平台是基于编译的,但也可以嵌入脚本引擎,实现网页的动态执行,而不必重新编译整个应用程序。

无论技术怎么发展,这种纯粹的脚本引擎还有存在必要的,毕竟.NET和JAVA的复杂度要高很多,很多中小企业并不需要多么庞大的平台,PHP这种即跨平台,又是即写即用的东西,也是有很多用武之地的,只是它在整个行业中,比例可能会缩小,但不会彻底消失。

【编程漫谈】PHP的更多相关文章

  1. .net 4.0 面向对象编程漫谈基础篇读书笔记

    话说笔者接触.net 已有些年头,做过的项目也有不少,有几百万的,也有几十万的,有C/S的,也有B/S的.感觉几年下来,用过的框架不少,但是.net的精髓一直没有掌握.就像学武之人懂得各种招式,但内功 ...

  2. C语言编程漫谈——main函数

    写在前面 促使我写这篇文章是因为我这几天找了几个一样是大三的同学,与我相同专业相同方向(物联网)的人,除了@小胡同的诗,基本没有什么其他人会现在看起来很简单的编程题目了.问了一下其他同学,他们大部分都 ...

  3. 【编程漫谈】用JAVA画多边形

    一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了.另一个就是在窗口界面上直接画,可以实时看到程序的运行效果.刚开始学编程的时候,我加 ...

  4. 【编程漫谈】Hello world!

    Hello world!是打开编程世界的第一把钥匙,只要你能运行出Hello world!,基本上就算入了个门了,因为程序正确的运行代表着基本开发环境都有了,包括编辑器,编译器,解释器,运行环境等待, ...

  5. 编程漫谈(二十):如何自学编程及Java、上手真实开发及转行程序员的建议

    前路漫漫,吾将上下而求索! 最近有时在知乎上逛逛,发现很多人对自学编程及转行程序员有困惑.我是在25岁读研时转程序员,正赶上好时候(中国云计算刚刚起步及移动互联网正红的阶段),同时又走了不少弯路,因此 ...

  6. 【转载】C#之int与Java之Integer的区别

    本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍<深入Java虚拟机(第2版)>,将它与我在<.NET 4.0面向对象编程漫谈>中介 ...

  7. 斗地主你什么时候才会托管?(.NET中的托管于非托管)

    文章部分引自<.NET4.0面向对象编程漫谈(基础篇)>第1章.NET面向对象编程基础(作者:金旭亮) 无意间看到一位四五岁左右小朋友在玩斗地主,总开始到结束,她一直都在使用“提示”(托管 ...

  8. 3000本IT书籍下载地址

    http://www.shouce.ren/post/d/id/112300    黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299    黑 ...

  9. 终于,我也要出一本C#的书了 - 我的写作历程与C#书单推荐

    我之前的面试题停了很久,是因为 - 我写书去了. 前言 我于2012年3月开始工作,到现在马上就满六年了.这六年里,我从一个连Sql server是什么都不知道,只会写最简单的c#的程序员开始做起,一 ...

随机推荐

  1. mint-ui下拉加载(demo实例)

    <template> <div class="share"> <div class="header"> <div cl ...

  2. js对象的所有方法

    Object构造方法 Object.assign() 将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象. Object.create() 用指定的原型对象和属性创建一个新对象. Object ...

  3. 用Buildout来构建Python项目

    用Buildout来构建Python项目   什么是Buildout (Remixed by Matt Hamilton, original from http://xkcd.com/303) Bui ...

  4. ubuntu系统搭建samba服务

    安装samba服务 # apt-get install samba 创建一个samba服务的分享目录 # mkdir /share 创建一个samba服务限制的用户及组 #useradd public ...

  5. 《Linux就该这么学》day3

    ps:原谅我的书法出自鲁迅的<野草> <Linux就该这么学>书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极 ...

  6. linux工具之iostat

    iostat 是I/O  statistics(输入/输出统计)缩写iostat工具将对系统磁磁盘活动进行监视iostat属于sysstat软件包可以用yum   install   sysstat ...

  7. 7.Nginx_Keepalived高可用配置

    2. 利用keepalived实现高可靠配置(HA) 2.1. 高可靠概念 HA(High Available):高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节 ...

  8. 下载好的vue项目如何在自己电脑环境上运行,步骤!!

    本文链接:https://blog.csdn.net/qq_39309900/article/details/84837659首先第一步,需要安装node.js 下载地址:https://nodejs ...

  9. zencart新增分类点击不进去的解决办法

    zencart批量表新增分类点击不进去的原因是安装了管理员权限分级模块,只要运行以下语句即可. INSERT INTO `admin_allowed_categories` (`categories_ ...

  10. QT对话框

    QFileDialog:文件对话框 QString fileName=QFileDialog::getOpenFileName(this,"打开文件", "/" ...