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

企业应用软件的来年展望

程序员文章站 2022-07-15 20:14:56
...


2013年即将过去,写下一些文字来记录过去一年中企业应用软件我观察到的一些变化,和互联网相关的竞争和融合,以及来年的展望和一些预期。

1. 首先是强烈的对比,传统企业软件的不景气,相对照的是互联网公司的欣欣向荣。软件越来越多的从原来套装销售产品转变为提供在线服务。

2. 软件的技术领导者,从传统的大型软件厂商分出一大部分转到互联网公司,并且开放和开源成为技术推进的强劲动力。这里有三个大类的代表,NoSQL, Hadoop, OpenStack。

3. Google技术依然遥遥领先,但Twitter, Linkedin, Netflix在Java的投入很大,使得JVM/Java成为互联网公司有力的基础平台。传统企业软件依然是Java和dotNET的领地。

4. 多种语言混合编程成为共识,除了Java, C/C++为各大软件公司的基础语言外,Javascript作为浏览器的解释语言和Nodejs的流行而广泛接纳,DSL是业务描述的领域语言,除了Java/dotNET擅长此道外,Ruby/Lua也有适合场景。Python逐渐成为系统脚本的首选。ObjC因为Mac/IOS持续成功而继续流行。Scala等基于JVM的语言也有很强的生命力。Go需要更多的杀手级应用和大型公司的支持。

5. 分布式和异步化是主要潮流,和多核能力提升和海量用户需求有关,应用的可扩展性变得非常重要。所以编程思路,模式等都需要发生变化,过去习以为常的同步调用式思想需要进行转变。所有的主流语言和框架,中间件都开始适应这个改变。C#5.0加入async,await,Java的Future/ForkJoin,JavaEE的各种异步方法的加入。响应式框架层出不断,Java为例就有Finagle,Akka,RxJava,Vertx等优秀开源项目。

6. 软件开发的四大关键基础技术,RPC,消息,数据库和缓存依然是最重要的。RPC可以分为两大类,基于HTTP协议的,目前以Rest为主来访问互联网上的资源,幂等性无状态是扩展能力的保证,Webservice在业务集成方面还有用武之地;另一大类是组织内部采用的高效二进制RPC,RPC的好处是和面向对象思维一致,减少开发者心智负担和维护成本。消息是系统的动力所在,也可以减少耦合性和提高扩展性,多线程争用资源产生的死锁,阻塞和事务陷阱,很多可以用队列和消息来化解。消息和RPC在软件设计时结合使用。

同样的,数据库和缓存也是一对技术选择,按照持久化能力和数据结构表现可以划分为不同种类的数据库。关系数据库作为最成熟的方案和对事务能力的最好支持,依然占据主导地位。文档,KV,图等类别的NoSQL/NewSQL数据库,会有适合的应用场景。分布式内存数据库/DataGrid这个类别会有进一步的发展,根本原因是多核化,大内存,分布式,异步化带来软件设计潜移默化的变革,原来的面向对象一统到现在需要适应函数式编程。软件设计需要向管理学学习很多东西。

7. 移动应用需要快速跟进。移动设备的普及潮水般来临,手机等移动终端已经成为个人能力的外延,帮助查询信息,保存知识,提升生活质量。手机让每个人都用上电脑和互联网成为现实,对应的PC上面的浏览器,类似微信的可以让人和人以及设备等联接的沟通软件成为移动端的第一软件。移动应用可以做到随时随地的和感兴趣的人和事物进行沟通,这个是企业应用软件的破局所在。

过去的企业软件绝大多数是传统销售忽悠企业关键人物,部署在企业里面的,大多华而不实的功能,傻大黑粗的界面,根本没有考虑过软件使用者的感受。没有使用者发自内心的喜爱,这样的软件最后的结局就是摆设。软件是人用出来的,企业软件成功的关键有两个方面,第一要对企业商业有价值,第二也是更重要的是要对使用的员工也有价值。传统PC冷冰冰的界面让员工只是一个信息录入者罢了,如今的移动设备可以做到更有意思,一个照片,一句话,一个定位,辅助网络计算能力,基本的数据采集就完成了。我相信企业软件会从和消费者贴近的应用处开始,比如CRM等,逐步改变设计基因,立足于帮助一线员工,让他们更好的利用软件和互联网进行工作,高效并快乐。

8. 软件虚拟化会更加深入人心。企业应该去尝试采用虚拟化计算平台,更好的规划和统一使用计算能力,私有公有云会一起成为移动应用的后台支持。Linux+Openstack(开源Iaas方案代表)会成为这方面的最佳选择,中大型企业可以进一步定制自己的中间件平台或者使用PAAS平台来开发部署自己的应用。

9. 软件平台监控管理,互联网运维,企业软件的图表报表等其实都可以归结为管理运营能力的体现,通过技术手段来掌握业务运行的情况。通用的信息收集,内容整理,数据挖掘,决策分析等技术手段已经相当的完善,大数据很火也是互联网海量用户和应用的增长和盈利模式的转变带来的必然。无论是在互联网做平台还是做服务,这些功能都是及其重要的,企业软件可以从中学习。说到底就是围绕企业业务,利用技术手段来更好的管理业务数据,处理流程,服务用户和帮助员工更好的工作。