【编程漫谈】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#的程序员开始做起,一 ...
随机推荐
- Python字符串、组合数据类型练习
一.Python字符串练习 1.http://news.gzcc.cn/html/2017/xiaoyuanxinwen_1027/8443.html 取得校园新闻的编号. (这个方法就很多了,一般方 ...
- jQuery-menu-aim 电商菜单栏demo
最近要修改一个电商网站的菜单,引用了jQuery-menu-aim的插件,因此,去找了几个资料: 参考GitHub地址: https://github.com/kamens/jQuery-menu-a ...
- windows下修改vagrant虚拟机中的html ,通过nginx访问后不生效
更改本地html文件,通过nginx配置的虚拟域名访问, 无论怎么修改内容,都不变化,即使我把内容删除一半,它显示的也是以前内容的一半,除非删除文件,才会从新生成. 解决办法 修改nginx.conf ...
- thinkphp5.0 field和with连用的问题
field在with后面时field会不起作用,会查询数据库中全部的字段: field在with前面时会无法筛选联表的字段 解决办法把with换成join,field和join顺序无所谓 * @par ...
- deep_learning_Activate_method
常见的激活函数有sigmoid.tanh和relu三种非线性函数,其数学表达式分别为: sigmoid: y = 1/(1 + e-x) tanh: y = (ex - e-x)/(ex + e-x) ...
- 重新编译mysqldump,使mysqldump具有进度输出功能
重新编译mysql,使mysqldump具有进度输出功能 安装编译过程所必须的依赖包和环境 yum install -y gcc cmake boost boost-build boost-devel ...
- service worker 实现页面通信
sw.js 基本写法: function send_message_to_sw(msg){ navigator.serviceWorker.controller.postMessage("C ...
- 第二章 Vue快速入门--13 讲解v-model实现表单元素的数据双向绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- Java一棵树
手里有一枚java种子,刚播下,希望长出一棵参天大树. 一.Java Java线程 二.网络 三.算法 四.中间件 五.性能指标&优化 六.设计模式
- php类知识---trait特性
#由于php类只支持单一继承,但我们又需要使用一些类的优秀特性,因此有了trait <?php trait cpc #trait 下的方法只能用public { function trainni ...