欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

为什么企业的应用系统中用 PHP 较少,而 Java,.NET 比较多?且IT经理似乎也更偏爱 Java 和 .NET ?

程序员文章站 2024-04-05 15:42:06
...

回复内容:

其实我一直对于“企业级应用”这个名词比较迷惑,不过现在在工作中慢慢地接触一些东西,然后跟不同的人去交流和沟通,发现其实企业级应用确实无处不在。

而通常我们在企业级应用中都会提到Java和.NET,那么这两个技术平台为什么总会在企业级应用中提到呢,而相对而言PHP出现的概率小了很多呢?
如果我没记错的话,PHP的全称应该是(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)(感谢@张画虫),显然主要是为了网页而生,当然这个历史很久了,不过从历史可以看出某些语言设计的初衷,而这些都会成为语言的基因,会随着语言的发展一直继承下来。

Java的诞生其实也蛮奇怪的,最早并不是为了网络而生的,但是在产品二次设计的时候找到了真正的方向,而且在后续版本的进化中持续加强在网络方面的功能表现,最为重要的是Java有着强大的开源社区支持,而且Sun公司对于开源社区的态度一直都是非常积极,不断地支持开源,推进开源社区的成长。使得Java语言形成了一个非常良好而庞大的生态环境,我们只需要看看Apache Foundation下的开源项目多少个项目都是Java生态圈中的。Java的成功就在于开源社区的支持,以及大厂商的支持和输出,看看Lucene、Hadoop等等成功的项目。

.NET的诞生应该是因为微软曾经要插足Java,被Sun公司断然拒绝之后,自己索性直接弄了一个.NET出来,名字就以网络为名,这下碉堡了吧。.NET的设计从大层面上来讲肯定要优于Java,因为他的起点就高,他能避免很多在Java中设计比较失败的问题,定位也非常明确,而且鉴于微软在产品化上卓越的表现和在服务上无敌的意识,让很多厂商砰然心动是肯定的。而且微软系列的技术传播总是那么的快捷和方便,大学里面老师曾经跟我们讲过一个事实,就是老师为什么教学的时候,用Windows,VC,VB,SQL Server等等都是微软的东西,这是因为他们入门简单,产品化做得非常好,易于教更易于学。这就导致了很多学生毕业之后其实只会微软这一套的东西。

PHP其实也非常成功,单说WordPress这么一个东西就已经非常成功了,但是其在企业级别的应用确实不多,要说非常成功的那么我们可以说Facebook就是PHP,但是这其实只是Facebook的一小部分,对于如此庞大的社区,前端页面更多时候并不是真正致命和核心的东西,核心的还是后面的各种Service,我想这些东西更多还是C和Java在承担着。PHP的易学易用真的不消说,但是其问题也不少,不过因为自己并没有太多使用过,只是听同事聊起过,不做过多的表达。

其实每一门语言的诞生通常都会有其现实生产需求,而这个生产需求会很大程度上决定这门语言未来很长时间的适用范围和领域,如果仔细去观察分析一下这些语言的项目大部分集中在那些生产领域就能比较明确这个原因是什么了。 1.企业应用系统里面所谓前端系统比重并不是很大,而且php在前端系统之外的系统开发领域有什么优势么?例如web service、任务调度、桌面应用、移动应用、Mail等
2.php生态环境和java\.net环境很难比肩。可靠的开源应用系统也就仅限于少量web的框架
3.php在面向对象开发角度是很蛋疼的事情。不是说他们机制不好,而是一些东西太松散了,很难进行质量控制。话说弱类型语言似乎到现在为止在企业应用领域还是小众不是没有考虑的。 PHP非常适合变化很快的web产品的开发。本身的优势就在于生成页面。但是在于事务,数学计算,安全等领域,PHP的积累都不足以支撑其在企业领域的应用。

我把这里的企业应用理解为与经营活动有关的应用,比如财务,决策支持,企业资源管理等系统。企业内部的网站用PHP还是可以的。 企业及应用是什么意思呢

就是卖给企业的啊

你不开发个半年以上,动员40+人,动用技术十几种,能叫企业应用?

你用php一个周开发完了,谁tm给你钱啊 本人有几年“企业级应用”开发经验,但从未接触过PHP,所以不太清楚PHP和“企业级应用”匹配度如何。从做“企业级应用”的角度出发列出几个问题给懂PHP的童鞋,如果你们的回答多是“YES”,那我想用PHP就没什么问题,现在用的人少只是个人喜好问题。反之如果答案多为“NO”,则显然PHP不适合企业级开发。
  1. 我如果没理解错的话,PHP应该只支持Web。而企业应用中好多还需要Windows应用(要和驱动程序配合与打印机,扫描枪等外设配合工作)和Service(不管是Web Service还是Windows Service)的支持。有的系统需要Web,Windows Client和Service三方互相配合。如果PHP只能搞定Web一端,其他两端需要其他语言来实现,那自然大家会选更强大Java和.NET。
  2. PHP开发人员是否习惯使用分层来开发应用?即展示层(可能是MVC模式),业务层,数据层。是否支持Remoting和分布式开发?是否容易部署到不同的服务器上来协同工作?性能遇到瓶颈后是否容易通过简单的增加服务器来实现横向扩展?
  3. PHP是否支持异步多线程编程?
  4. PHP毕竟是脚本语言,执行前不需要编译。高并发情况下性能如何?在不进行人工干预的情况下,运行时的内存管理高效稳定吗?
  5. 对Unicode和带时区的时间支持如何?
暂时只想到这五点,企业级应用的要求无非就是对安全性,可靠性,可扩展性,可伸缩性,并发性有更高的要求,有更多的解决方案以方便在遇到问题是能够使用更多的手段来解决问题。当然,用Java和.NET开发的应用也可以写得很烂,面条代码,逻辑混乱,面向过程。那样的话不管用什么语言来实现,都称不上是“企业级”。不是所有用在企业内部的应用都叫“企业级应用”,那只是“企业里的应用”而已。 JAVA不太清楚,说说微软系吧。

非互联网的企业内,感觉最占据统治地位的是…OFFICE。没错,OFFICE。
任何系统都不可避免的要跟各个员工的OFFICE软件和文档打交道,非微软系语言做OFFICE插件或用INTEROP,何等蛋碎。
有OFFICE就有WINDOWS,WINDOWS系统上的客户端开发几乎不可避免。
也就是说,无论如何,都要有一群人会.NET。

.NET同时能包办服务器领域的很多事情,而且仗着VS好用,开发效率还不见得低。

于是,既然.NET是必须的且基本够用,何必再找人弄其他高大上开源框架,把研发队伍割裂成相互不通的好几块呢?




PS1 很多企业内部上了SPS,非微软系开发工具继续跪地吐血…

PS2 非互联网企业在运维上不能投入太多资源,但又需要信息系统稳定运行。怎么办?买买买,需要有商业公司持续支持维护。然后RHEL、VMWARE等一对比,微软系其实不算贵啊,而且还方便用。 1.国内大学计算机教育,大多数只开JAVA,.NET的开发课程,大多数毕业生毕业时仅会这些。
2.企业、*软件应用开发公司其实属于IT企业中的传统企业,业务一般以量身定制性的软件项目开发为主。单个项目产值不会很大,功能需求专用性针对性强,可复用性通用性弱。所以这类企业一般靠的是人海战术,即项目数量与人员数量成正比。
3.IT经理一般是对开发不感兴趣的计算机专业人员从事,但在校学的JAVA,.NET的开发课程对他们影响也很深。 一个PHP本身的特性,二是PHP周围的环境 比如资源 社区 资料 等等 不然叫企业级开发技术。摊手(
php这种东西个人开发还可以,大企业是肯定不会去考虑的。 从开发周期、维护难度、技术支持几个方面看,php比Java和.net差的很远。说一下开发周期,这里面社区的力量有很大因素。也许从零开始开发一个模块,Php会比java快,但是Java有很多成熟的开源项目,很多模块可以直接拿来使用。这一点php没法比。