22 岁,对于一个技术人来说可谓正当壮年。但对于一门编程语言来说,情况可能又有不同。各类编程语言横空出世,纷战不休,JAVA这个老牌的语言,未来会是怎样?


Java 语言发展的这 20 年也正是全球互联网迅猛发展的 20 年,Java 语言同时也见证了电商浪潮、移动互联网浪潮、大数据浪潮、云计算浪潮,所以在现今各大互联网公司身上都能看到 Java 的身影。和京东、淘宝、唯品会等大牌商城系统一样,我们Legendshop也采用JAVA语言。


纵看 Java 语言的发展,不禁让人联想到辛弃疾的一首词:

千古江山,英雄无觅,孙仲谋处。舞榭歌台,风流总被雨打风吹去。斜阳草树,寻常巷陌,人道寄奴曾住。想当年,金戈铁马,气吞万里如虎。元嘉草草,封狼居胥,赢得仓皇北顾。四十三年,望中犹记,烽火扬州路。可堪回首,佛狸祠下,一片神雅社鼓。凭谁问,廉颇老矣,尚能饭否?


但是,我们需了解历史的真相,廉颇老了一顿饭也能吃了一斗米,十斤肉,还能披甲上马。JAVA能否一样能像廉颇这样宝刀未老、越战越勇?!

答案是肯定的。我们Legendshop之所以在多维度比较下依然选择了JAVA,当然有我们的道理。我们是切切实实地看到了对于电商系统来说,JAVA具有了如何的强大的魅力!


与其他语言的对比,Java 的优势


Java 是最好的语言么?不是,因为在每个领域都有更合适的编程语言


C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C++ 是面向对象的 C 语言,一直在不断的改进。


JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。


Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 DockerKubernetes 等。


编写网页用 PHP,函数式编程有 Lisp,编写 iOS 程序有 Swift/ObjectiveC

一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。


那么,Java 语言到底有什么优势可以占据排行榜第一的位置呢?


其一,语法比较简单,学过计算机编程的开发者都能快速上手。


其二,在若干了领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android 移动终端应用开发等等。


最重要的一点是符合工程学的需求,我们知道现代软件都是协同开发,那么代码可维护性,编译时检查,较为高效的运行效率,跨平台能力,丰富的 IDE,测试,项目管理工具配合。都使得 Java 成为企业软件公司的首选,也得到很多互联网公司的青睐。


没有短板,容易从市场上找到 Java 软件工程师,软件公司选择 Java 作为主要开发语言,再在特定的领域使用其他语言协作编程,这样的组合选择,肯定是不会有大的问题。


所以综合而言,Java 语言全能方面是最好的。选择JAVA商城系统,选择Legendshop,是正确的选择


Java 未来方向的展望


如今的 Java,已经在功能上相当丰富了,Java 8 加入 Lambda 特性,Java 9 加入模块化特性之后,重要的语言特性似乎已经都纳入进来。如果要说值得考虑的一些功能,我觉得有以下几点:


模块化改造完毕之后,可能会出现更多专业的 JDK 发行软件商,提供在功能方面,比如针对于分布式计算,机器学习,图形计算等,纳入相关的功能库作为文件。这样专业行业客户可以选择经过充分优化后的 JDK 版本。


Java 语义上对模式匹配有更强的支持,如今的 switch 语句能力还是比较欠缺,可以向 Erlang Scala 等语言借鉴。


多线程并发处理,Java 做的已经很好了。不过我个人觉得可以在多进程多线程配合,以及语言级别数据管道表示上,可以进行改造和优化。


JDK9 会有 HTTP/2 client 端的能力,但毫无疑问会有更多更好的三方库出现,JDK 可以和这些三方库通力合作,提供一个更好 API 界面和 SPI 参考实现。