经常会有一些朋友会问我,学PHP有前途吗?PHP未来会不会被淘汰?PHP能做什么事情么?Java后者.Net能做的PHP都能做么?学习什么技术最 好呢?对于一个初学者来说,这些问题确实都是很重要的,毕竟这关系到未来自身的发展。其实要探讨PHP,不能够狭隘地站在PHP本身的角度去理解问题,而 要从整个计算机语言的发展史,技术体系的演变以及商业模式的变化对于技术走向的影响来分析。在这里我就写一篇文章,和大家分享一下我这些年来对于技术体 系,技术发展,技术与商业之间关系的理解。
计算机技术体系纷繁复杂,从大的方面讲,主要分为硬件和软件两大块。硬件又分为芯片级和板卡级。芯片级企业主要是设计制造电路板上那一块块黑色小块,他们 叫做集成电路。像大名鼎鼎的英特尔,高通,德州仪器,Nvidia,AMD等等都属于芯片级的巨头企业。板卡级企业主要是设计电路板,然后从芯片企业采购 芯片安装到电路板上。华硕,微星,富士康等等台企都有板卡业务。软件产业可以分为系统软件和应用软件,目前世界上主流的操作系统主要有 Windows, Linux, Unix, MacOS, BSD等等。在不同的操作系统环境下,应用软件的开发也有不同的方式。从应用软件的功能区 分,可以分成客户端应用软件和服务器端应用软件。从产业链来说,硬件产业处于软件产业上游。一般来说,硬件产业更强调规模,属于资金密集型的行业,而软件 产业相对更注重创意。
回到我们要探讨的重点——编程语言。一般来说,对于web开发和普通的客户端软件开发,我们都是在应用软件的层面编程。在客户端软件的开发中,目前 Windows平台下主要的开发体系是基于.Net的架构,当然这个领域曾经是MFC, delphi, vb的天下。除此以 外,Java, ruby, python,lua等语言配合Qt, tk等UI组件库也可以开发跨Windows, Linux, MacOS等多平台 的应用程序。当然,随着iOS, Android等移动操作系统和平板电脑的兴起,客户端软件开发正在呈现出百花齐放的态势。在服务器端软件的开发中,目 前呈现的是三组鼎立的态势,三足分别是JavaEE体系,微软.Net体系和LAMP体系。
JavaEE体系曾经统治企业级软件开发长达数十年之久,十年间英才辈出,但是Java语言本身却越来越显示出臃肿和分裂的态势。直至Java界神一样的 人物Rod Johnson携它天才的Spring框架与不朽名著《Expert J2ee development without EJB》横空出 世,Java界的纷争才被SSH(Spring+strunts+hibernate)暂时统一。但是使用Java依然是个昂贵的选择,复杂的需求设计, 缓慢的项目进度,昂贵的应用服务器和昂贵的编码人员使得Java成为了一种庙堂之上的语言。而版本的分裂也使所谓的跨平台特性成为了一句空话。Java的 特性使得它并不适合业务随着市场快速变化的互联网企业,而更适合相对稳定的大型业务,如银行,保险,零售,制造业等大型企业的业务系统开发。
.Net体系是微软公司为了对抗Java而设计的一整套企业级开发架构,包括了客户端和服务器端的开发框架。并且彻底抛弃了原来的MFC。在很多方 面,.Net体系都和JavaEE有着相似之处。从我的经验来看,对于高手而言,.Net体系的开发效率是明显高于JavaEE的。但是.Net体系对于 初学者来说仍然有很高的门槛,很多新手做出来的项目都是bug多到惨不忍睹。同时不能跨平台,必须使用正版的微软操作系统和数据库软件,Windows系 统作为服务器的不稳定性和管理的复杂性,都在一定程度上阻碍了.Net体系在服务器端开发的普及。
新普IT教育 PHP培训