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. 用Python输出一个Fibonacci数列

    斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列” 用文字来说, ...

  2. php--常见算法1

    <?php //递归输出123321 function digui($num){ echo $num; if($num<3){ digui($num+1); } echo $num; } ...

  3. 小白进阶之Scrapy第六篇Scrapy-Redis详解(转)

    Scrapy-Redis 详解 通常我们在一个站站点进行采集的时候,如果是小站的话 我们使用scrapy本身就可以满足. 但是如果在面对一些比较大型的站点的时候,单个scrapy就显得力不从心了. 要 ...

  4. 【2017-05-04】winfrom进程、线程、用户控件

    一.进程 一个进程就是一个程序,利用进程可以在一个程序中打开另一个程序. 1.开启某个进程Process.Start("文件缩写名"); 注意:Process要解析命名空间. 2. ...

  5. String类型为什么不可变

    在学习Java的过程中,我们会被告知 String 被设计成不可变的类型.为什么 String 会被 Java 开发者有如此特殊的对待?他们的设计意图和设计理念到底是什么?因此,我带着以下三个问题,对 ...

  6. 【转载】Role of RL in Text Generation by GAN

    本篇随笔为转载,原贴作者:知乎 SCUT 胡杨,原贴地址:Role of RL in Text Generation by GAN(强化学习在生成对抗网络文本生成中扮演的角色).

  7. Web的了解和servlet的初次见面

    web 相信大家都不陌生,平常我们浏览网页用的都是web服务.互联网起初的web就是非常简单的页面,但是随着客户需求越来越复杂,需要的功能越来越多,我们的服务器端需要处理的请求越来越多,需要区分不同的 ...

  8. 计划任务 at,cron

    示例:每3小时echo和wall命令

  9. vue插件——滚动监听 vue-scrollwatch

    造轮子的目的: 做项目的时候需要一个滚动监听的功能,html结构已经都写好了,不想使用vue组件的方式来写,因为不想改造html结构,于是花了几个小时做了一个简单的,使用vue指令方式来做的,项目上够 ...

  10. .Net界面开发必备!DevExpress Blazor UI全新组件助力界面开发

    行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,DevExpress UI for Blazor/ Razor组件附带7个用户界面组件(包括Data Grid和Pivot G ...