【编程漫谈】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#的程序员开始做起,一 ...
随机推荐
- Delphi DLL文件的动态调用
樊伟胜
- 用Python+Aria2写一个自动选择最优下载方式的E站爬虫
前言 E站爬虫在网上已经有很多了,但多数都只能以图片为单位下载,且偶尔会遇到图片加载失败的情况:熟悉E站的朋友们应该知道,E站许多资源都是有提供BT种子的,而且通常打包的是比默认看图模式更高清的文件: ...
- Manticore search加一个中文分词
Sphinx search 是一款非常棒的开源全文搜索引擎,它使用C++开发,索引和搜索的速度非常快,我使用sphinx的时间也有好多年了.最初使用的是coreseek,一个国人在sphinxsear ...
- 论文笔记:Unsupervised Domain Adaptation by Backpropagation
14年9月份挂出来的文章,基本思想就是用对抗训练的方法来学习domain invariant的特征表示.方法也很只管,在网络的某一层特征之后接一个判别网络,负责预测特征所属的domain,而后特征提取 ...
- 4.java JMS技术
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间, 或分布式系统中发 ...
- jQuery.ajaxSetup 全局设置ajax的header等配置信息
描述: 设置 AJAX 请求默认地址为 "/xmlhttp/",禁止触发全局 AJAX 事件,用 POST 代替默认 GET 方法.其后的 AJAX 请求不再设置任何选项参数. j ...
- thinkphp方法success和error跳转时间以及返回ajax
Action类的success和error方法第三个参数为数字时候,表示指定页面跳转时间,例如: $,); $,); 如果是ajax跳转 必须用true: $this->success('操作成 ...
- 转 SQL连接查询语句(内、外、交叉和合并查询)
转 http://blog.csdn.net/u010011371/article/details/50596535 1.内连接 (INNER JOIN) 内连接也称自然连接,它是根据两个或多个表中的 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]
[易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...
- 返回的json数据中有属性为null的情况,报错 "message" : "Could not write JSON: Object is null