Odoo作为世界上强大的开源架构,在全球一百多个国家流行,特别是年Odoo15的发布,让大家对Odoo更是情有独钟。那么大家选择他们的原因是什么呢?通过以下几个方面帮助大家选型。
架构功能方面
从架构上,Odoo的口号是一个系统满足所有需求,这个针对中小企业具有非常大的优势,同时,Odoo虽然将所有的功能放在一个系统内,但其模块化从规划设计,到开发运维,到系统层面的安装和卸载都非常完美。相比SAP的bydesign系列,国内金蝶T系列,用友的U系列等等,在功能完备性,扩展灵活性等综合考虑,具有明显的优势。
成熟度与长期发展方面
经过近20年的发展,并且在全球个国家的实践,从成熟度来看,Odoo部署任何一个全球大牌ERP。而且相对商业软件,开源软件在技术选型,推陈出新方面更是具有灵活性以及变更的坚定性,这确保了Odoo作为开源软件在技术方面更符合当前的发展趋势,在功能迭代方面更具有快速响应的能力,在系统架构方面更是不会像商业软件一样修修补补,到最后老态龙钟,无法演进的地步,长远来看,为了确保企业投资的长期延续性,选择Odoo更有安全保障。
开发语言方面
根据全球编程语言排行榜,Python一直位居前三,不但和后面的开发语言具有明显优势,更是在所有语言中突飞猛进,增长迅速。这不但得益于它最优美和高效的语言称号,更是以下众多优点的必然结果:Python语言具有简单易上手,是互联网和人工智能时代的首选语言,更具有广泛的开源资源和成熟的代码库支持。Python世界是一个更加开源,开放而不失成熟的世界。
不同语言的对比往往是IT圈内大家津津乐道的事情,而和Python比较最多的就是Java。Java语言在Web应用开发,移动端开发,程序员体量等方面具有先发优势,似乎这就成了不选择Odoo的主要障碍。
其实,除了Odoo在架构的强大性,成熟性和长期发展的可持续性方面我们有理由选择Odoo,在开发语言方面,Python反而成了我们选择Odoo的主要原因之一。Python的前三地位和快速增长趋势我们就不赘述了,单就和Java语言相比,以下几点是被大家所公认的:
●Python语言开发效率更高,Java十几行的代码Python只需要两三行。也因此Odoo的源码非常精简,二次开发更加快速,容易上手,长期运维更加省力。
●Python的开源生态更加集中有序······,这便于Odoo依赖一些主流的,稳定的开源组件。在同样的起点,相比Java纷杂的开源组件市场,Python所需学习的内容更少。
●在运行效率方面,Python语言和Java都是运行在容器内.虽然Python是解释型语言,相比Java预编译运行,理论上速度会慢,但是业界都知道Java开发的企业应用往往响应慢,并发弱。同样,在Odoo上查看Python的运行效果就可以明显看到,Python开发的Odoo比Java开发的系统性能快很多。分析原因,这主要是因为Java的应用架构多层设计冗余,不同开源组件组合复杂。在面对大型企业应用上,这种架构具有高解耦,快迭代的效果,但在中小型企业应用中,Odoo的架构则明显更加精巧,高效,所以速度反而更快。
那现在正在使用Java的团队是否因为Python作为不选择Odoo的理由呢?表面上看换一种语言成本很大,得不偿失。但仔细一分析,反而恰恰想发,长期收益大于短期损失。我们可以看到Python上手很快,使用Python开发系统更加容易高效,运维更方便,Python同时帮助团队引入更多热门的能力,这都是小投入大回报的事情。
所以,针对大团队,多掌握一门Python语言对团队的发展更能添加活力;正对小团队,Python语言更加适合,学习Python,对程序员来说不但是容易的事,更是对他们的职业发展有莫大帮助的事情,在团队内反而是欢迎的人多过排斥的人。
数据库方面
Odoo学习者经常会问,Odoo为什么只支持PostgreSQL,是不是太弱了?诚然,相比于Java的平台在ORM层的帮助下,什么数据库都可以很容易支持。但不支持多数据完全不是Odoo的弱点。
首先需要说明的是,Odoo在安装了其他扩展后同样支持各种数据库,官方的应用市场有不少这样的扩展能力。所以,Odoo为什么最终选择了PostgreSQL而不是MySQL或其他呢。或者多支持几个数据库,让用户有更多选择呢?
回答第一个问题,PostgreSQL从技术上优于MySQL,这一点虽然没有定论但得到了很多人的支持。针对这种技术争论,这里就不搀和了,但对于Python世界,PostgreSQL是公认的最佳数据库选择。Odoo因为诸多优势而选择用Python,自然选择PostgreSQL则是顺理成章的。
那第二个问题,Odoo为什么不多支持几个数据库让用户有更多的选择呢?我认为从Odoo的角度出发,针对中小企业应用,将数据库封装在底层而无需过多去理会用哪个数据库才是上上之策。Odoo的ORM层设计非常优秀,在实际开发中,需要和数据库接触的情况几乎没有。安装模块,管理实体,设置依赖和和限制都是在面向对象的实体中定义的,完全不需要操作数据库。同样,Odoo还提供了界面化的数据库管理能力,包括创建,选择,备份,恢复等。而单独对PostgreSQL进行的日常维护和管理,非常容易,和MySQL相似度很高。因此,作为面向中小型应用的Odoo,精细化适配好一个数据库,强化性能的同时减少使用者对数据库不必要的操作,这才是复合Odoo的目标客户定位的。因此,Odoo官方只支持PostgreSQL是利大于弊的。
那熟悉MySQL的团队是否因为这个原因而将Odoo排斥在外呢。其实,对于使用者,排名第一和第二的MySQL和PostgreSQL,他们能有多大区别呢,更别说排在第二的PostgreSQL的增长更加迅猛。
和OfBiz的对比
同样,和OfBiz的对比也是Odoo选型中绕不开的话题,特别是团队在开发语言上倾向于Java的时候。的确,OfBiz比Odoo在搜索引擎上更加流行,这显然有十几年Java在企业应用中被普遍应用的先发优势,但也不能排除OfBiz本身作为Apache的顶级开源项目的强大性。
但如果将Ofbiz和Odoo做一个选型对比,结果还是显而易见的。类似于Java适用于大型企业应用,Ofbiz同样更适合大企业。他们的做法是在Ofbiz的基础上进行大量的重构和扩展,投入巨资和人力,和更长的周期来自研自己的系统。对于他们,这比采用SAP,Oracle动辄几千万美金的ERP来说还是划算很多的。
针对中小企业,毫无疑问,简单易用的语言,精巧灵活的架构,省心省力的数据库管理,都是选择Odoo的充分理由。同样,针对中小企业,Odoo自带的界面风格更加漂亮,电商和网站功能拿来就可以用,且Odoo生态中众多企业提供的开源免费组件非常多,这都可以帮助中小企业快速地,低成本地应用Odoo。
所以大型企业用Ofbiz,中小企业用Odoo则是一个简单明了的标准。而如果使用Java团队用Ofbiz,Python团队用Odoo的标准来划分,则选型的维度则有点顾此失彼了。当然,针对一些一定规模的企业,或者有更多因素的场景,选型要考虑的方面就需要更加综合了。