【编程漫谈】PHP
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的更多相关文章
- .net 4.0 面向对象编程漫谈基础篇读书笔记
话说笔者接触.net 已有些年头,做过的项目也有不少,有几百万的,也有几十万的,有C/S的,也有B/S的.感觉几年下来,用过的框架不少,但是.net的精髓一直没有掌握.就像学武之人懂得各种招式,但内功 ...
- C语言编程漫谈——main函数
写在前面 促使我写这篇文章是因为我这几天找了几个一样是大三的同学,与我相同专业相同方向(物联网)的人,除了@小胡同的诗,基本没有什么其他人会现在看起来很简单的编程题目了.问了一下其他同学,他们大部分都 ...
- 【编程漫谈】用JAVA画多边形
一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了.另一个就是在窗口界面上直接画,可以实时看到程序的运行效果.刚开始学编程的时候,我加 ...
- 【编程漫谈】Hello world!
Hello world!是打开编程世界的第一把钥匙,只要你能运行出Hello world!,基本上就算入了个门了,因为程序正确的运行代表着基本开发环境都有了,包括编辑器,编译器,解释器,运行环境等待, ...
- 编程漫谈(二十):如何自学编程及Java、上手真实开发及转行程序员的建议
前路漫漫,吾将上下而求索! 最近有时在知乎上逛逛,发现很多人对自学编程及转行程序员有困惑.我是在25岁读研时转程序员,正赶上好时候(中国云计算刚刚起步及移动互联网正红的阶段),同时又走了不少弯路,因此 ...
- 【转载】C#之int与Java之Integer的区别
本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍<深入Java虚拟机(第2版)>,将它与我在<.NET 4.0面向对象编程漫谈>中介 ...
- 斗地主你什么时候才会托管?(.NET中的托管于非托管)
文章部分引自<.NET4.0面向对象编程漫谈(基础篇)>第1章.NET面向对象编程基础(作者:金旭亮) 无意间看到一位四五岁左右小朋友在玩斗地主,总开始到结束,她一直都在使用“提示”(托管 ...
- 3000本IT书籍下载地址
http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑 ...
- 终于,我也要出一本C#的书了 - 我的写作历程与C#书单推荐
我之前的面试题停了很久,是因为 - 我写书去了. 前言 我于2012年3月开始工作,到现在马上就满六年了.这六年里,我从一个连Sql server是什么都不知道,只会写最简单的c#的程序员开始做起,一 ...
随机推荐
- NativeScript —— 初级入门(跨平台的手机APP应用)《一》
NativeScript简介 NativeScript是一个相当新的开源开发系统,几乎完全用JavaScript创建跨平台移动应用程序,带有一些可选的CSS和XML来简化显示布局的开发.您可以在htt ...
- JavaWeb【Servlet】
概念 Servlet是在服务器上运行的小程序.一个Servlet请求对应一个Java类(对应一个Wrapper容器),可以通过请求-响应模式访问这个驻留在内存中的小程序. Tomcat容器等级 上图表 ...
- fastadmin 金额 字段类型及html验证
金额 字段类型 整数 小数 decimal 10 2 float 10 2 html验证 <div class="form-group&q ...
- 【异常】postman能够请求成功获取到参数,前端请求的却请求不到
1 前端联调的时候,反馈自己的参数没有生效,无论传递任何参数都是一样的结果 盯了一下日志发现 postman请求的是 :{"getParameter":{"provi ...
- 【异常】Caused by: java.lang.IllegalStateException: Zip64 archives are not supported
1 自己打包Spring boot项目依赖了第三方的Phoenix jar包过大,导致启动后报错 参考了这篇博客:https://cloud.tencent.com/developer/ask/135 ...
- 5.NIO_ Selector选择器
1.阻塞与非阻塞 传统的 IO 流都是阻塞式的.也就是说,当一个线程调用 read() 或 write() 时,该线程被阻塞,直到有一些数据被读取或写入, 该线程在此期间不能执行其他任务因此,在完成网 ...
- C++实例 分解质因数
分解质因数: 每个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数,叫做这个合数的分解质因数.分解质因数只针对合数. 分解质因数的算式叫短除法.求一个数分解质因数,要从最小的质数除起, ...
- netty-2.客户端与服务端互发消息
(原) 第二篇,客户端与服务端互发消息 与第一篇的例子类似,这里服务端需要三个类,客户端也需要三个类. 服务端关键代码如下:MyServer与上一个例子中的TestServer 差多,这里只列举不同的 ...
- BZOJ3589 动态树[树剖/暴力/容斥]
操作0,显然直接线段树解决. 操作1,瓶颈在于重叠的链只算一次.在线段树上来看,如果一个区间被覆盖了,那么只算这个区间,子树里面也就不管了. 考虑对节点打标记来表示是否覆盖.但是,如果统一打完之后,并 ...
- 小猿圈-IT自学人的小圈子 https://book.apeland.cn/details/54/
笔记链接 https://book.apeland.cn/details/54/ 学习视频 https://www.apeland.cn/python