Java和Python现在都是世界排名前三的语言,关于两门语言的特性,可以说有很多相似的地方,但也有很多本质上的不同。
那么这两种语言比较,我们要选哪种呢?
答案很简单,没有更好,只有更适合。作为我们,"人生苦短,我用Python"。所以说下我们的选择逻辑,主要针对erp及门户平台建设。
技术是服务于业务实现的工具。各种技术各有优势,关键在于更快更好实现业务需求。
JAVA+厂商自主开发ERP | Python + OdooERP框架 | |
基础框架 | JAVA曾经是现在也是最多人使用的编程语言。 体系庞大,功能强大,是最基础的开发工具,可实现各种功能。不足在于“重”,需要的开发量比较大,耗时长久。 尚鹏技术团队大部分亦曾经是JAVA程序员,现在已经远离,感觉"脱离苦海"。 | 格言: 人生苦短,我用Python Python在2018年5月成为#1的开发语言,现在基本是#2,#3徘徊,在Google/Facebook/BAT都是主流开发语言。 Python有悠久的历史,其思想是将主要功能已开发成通用模块,积木化按需组合。近年随着新技术如人工智能/区块链/物联网的发展而愈加蓬勃。 |
成熟度 | 取决于开发团队的成熟度。erp行业碎片化。 | 20多年企业管理思想的沉淀,erp及层面积累了全球5百万使用者的多年经验,形成了业务规范。 |
开放性 | 多数JAVA开发公司只提供编译后的软件,企业被绑定。 如金蝶用友,如果要增加业务需求,必须等供应商更新版本。 | 原生Python只可开源,企业全程可控,长期自由选择供应商。 可随需应变开发实施,前提是做好代码的版本管理。 |
实施速度 | 自主Erp,采用厂商的自主开发。 核心系统功能及扩展取决于开发团队的能力和规范。不一定能完全按照标准化进行开发,前期速度较快,但后期维护依赖性很强。 | 开放性Erp,全球海量开发者共同合作的产品。光第三方企业应用就在3万个以上。 采用长期积累形成的标准化模式。大量现成的模块,按照客户需求可快速搭建和投入使用。开箱即用 |
用户/开发者前端 | 要求开发和维护团队对JAVA等开发工具有较深的理解,专业性强 | 采用界面拖拉式快速借助成熟模块积木式搭建,学习成本低,无需太多的底层技术知识。大量使用java script |
跨平台/跨终端能力 | 需要根据不同的操作系统和使用终端开发不同的版本 | 采用B/S架构,支持各主流操作系统和浏览器,自动适应电脑和手机使用,支持移动化业务处理 |
功能丰富度 | 依赖原开发团队的投入和能力,功能在细分行业比较完善。但新功能和业务延展都需要从头定制开发 | 历经十多年,官方千人团队,社区数万人的开发积累,自带功能非常完善,并在各行业,包括金融行业软银,汽车行业丰田福特,国内的宝马广本吉利等超大型企业都在使用。 |
长期发展的支撑 | 需要长期依赖原开发团队,自建团队成本高。不同的团队开发风格不统一,其它团队接手维护困难,往往采用重写才能接手 | 所有的模块都采用统一标准,可获得的支持团队很多,内部培养的人员也很容易延续和接手。 odoo最核心的是其不仅有开发规范,还有业务规范,优点是开发团队高兼容性和高标准化,不足是培养成本高,开发前必须熟悉odoo的业务逻辑。 |
二次开发能力 | 所有修改都需要开发团队参与 | 内嵌网站生成、报表系统、工作流管理、邮箱、IM等协同工具,不具备技术能力的人员可以快速实现定制化。 划重点!开发人员必须熟悉行业业务,这点成本很高,但也是erp必需! |
云体系支撑 | 大多数系统都只支持公司内部使用,云架构的Saas服务开放给合作方需要单独开发 | Odoo架构支持云部署和Saas模式,上下游连接和整合非常便捷 |
应用架构 | 各开发的模块通常是紧耦合方式,一部分的开发可能引发大量相关模块的修改 | 采用标准化插件式的架构,各模块开发不会对核心系统带来影响 |