南通市崇川区北大青鸟计算机培训中心

Java老矣 尚能饭否?

2017-12-15 13:49  123次

  • 课程价格:请电话咨询
  • 开课时间:滚动开班
  • 上课地点:请咨询客服

如遇无效、虚假、诈骗课程,请立即举报为了您的资金安全,请见面交易,切勿提前支付任何费用举报

课程详情
22 岁,对于一个技术人来说可谓正当壮年。但对于一门编程语言来说,情况可能又有不同。各类编程语言横空出世,纷战不休,然而 TIOBE 的语言排行榜上,Java 却露出了明显的颓势。这个老牌的语言,未来会是怎样?青鸟作为专业的IT培训机构,我们负责教人编程,也负责教人“热门的”编程语言,学员们来学习就想要学习最实用的编程语言,所以我们密切注视着各类编程咨询,*时间告诉你学什么才最有用,学什么才能让你更抢手,今天我们就来说说JAVA! 从 1995 年*个版本发布到现在,Java 语言已经在跌宕起伏中走过了 22 年,*的 Java 版本也已经迭代到 Java 9。当年 Java 语言的跨平台优势如今看来也只不过是家常小菜,Go、Rust 等语言横空出世,进一步拓宽了编程语言的边界。当年发明 Java 语言的 Sun 公司早已被Oracle 收购,Oracle 现在也正处于水深火热的云计算浪潮当中,甚至连 Java 之父 James Gosling 也加入了当今世界*的云计算公司 AWS。 Java 语言发展的这 20 年也正是全球互联网迅猛发展的 20 年,Java 语言同时也见证了电商浪潮、移动互联网浪潮、大数据浪潮、云计算浪潮,所以在现今各大互联网公司身上都能看到 Java 的身影。 纵看 Java 语言的发展,不禁让人联想到辛弃疾的一首词: 千古江山,英雄无觅,孙仲谋处。舞榭歌台,风流总被雨打风吹去。斜阳草树,寻常巷陌,人道寄奴曾住。想当年,金戈铁马,气吞万里如虎。元嘉草草,封狼居胥,赢得仓皇北顾。四十三年,望中犹记,烽火扬州路。可堪回首,佛狸祠下,一片神雅社鼓。凭谁问,廉颇老矣,尚能饭否? TIOBE 的语言排行榜显示,自 2016 年初 Java 语言就出现了明显的下颓趋势,开发者社区也出现了一些唱衰 Java 语言的论调,编者心中也有些许疑问:Java 老矣,尚能『饭』否? 与其他语言的对比,Java 的优势 Java 是*的语言么?不是,因为在每个领域都有更合适的编程语言。 C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C++ 是面向对象的C 语言,一直在不断的改进。 JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。 Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 Docker、Kubernetes 等。 编写网页用 PHP,函数式编程有 Lisp,编写 iOS 程序有 Swift/ObjectiveC。 一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到*。 那么,Java 语言到底有什么优势可以占据排行榜*的位置呢? 其一,语法比较简单,学过计算机编程的开发者都能快速上手。 其二,在若干了领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,Android 移动终端应用开发等等。 最重要的一点是符合工程学的需求,我们知道现代软件都是协同开发,那么代码可维护性,编译时检查,较为高效的运行效率,跨平台能力,丰富的 IDE,测试,项目管理工具配合。都使得 Java 成为企业软件公司的*,也得到很多互联网公司的青睐。 没有短板,容易从市场上找到 Java 软件工程师,软件公司选择Java 作为主要开发语言,再在特定的领域使用其他语言协作编程,这样的组合选择,肯定是不会有大的问题。 所以综合而言,Java 语言全能方面是*的。 Java 未来方向的展望 如今的 Java,已经在功能上相当丰富了,Java 8 加入 Lambda 特性,Java 9 加入模块化特性之后,重要的语言特性似乎已经都纳入进来。如果要说值得考虑的一些功能,我觉得有以下几点: 模块化改造完毕之后,可能会出现更多专业的 JDK 发行软件商,提供在功能方面,比如针对于分布式计算,机器学习,图形计算等,纳入相关的功能库作为文件。这样专业行业客户可以选择经过充分优化后的 JDK 版本。 Java 语义上对“模式匹配”有更强的支持,如今的 switch 语句能力还是比较欠缺,可以向 Erlang, Scala 等语言借鉴。 多线程并发处理,Java 做的已经很好了。不过我个人觉得可以在多进程多线程配合,以及语言级别数据管道表示上,可以进行改造和优化。 JDK9 会有 HTTP/2 client 端的能力,但毫无疑问会有更多更好的三方库出现,JDK 可以和这些三方库通力合作,提供一个更好 API 界面和 SPI 参考实现。 目前 Java 在云计算方面遇到的*问题还是占用内存过大。我个人认为从两个方面来看: 1. 如果该应用的确是长时间运行的服务,可以考虑结构清晰的单体结构,算下来总的内存消耗并不会比多个微服务进程占用的更多。 2. 微服务应用,未来可以采用编译成本地代码的方式,并使用优化过的三方库,甚至本地 so 文件,减少单个进程的过多内存占用。 3. 安全框架更加清晰,SPI 可以允许三方库提供更强大更高效的安全功能。 4. JavaEE 方向则有更多的改进的地方: 5. EJB 重构目前的 Corba 分布通信基础,参考 gRPC 进行远程系统调用。 6. 分解 EJB 规范,把JVM 进程相关的特性,如注入 / 加强 / 事务 / 安全都统一到 CDI 规范中;对EJB 进行裁剪,保留远程访问特性和作为独立执行主体分布式对象能力。 7. 加强 JMS 和 MDB,媲美 Akka 目前的能力。 8. JaxRS 适度优化,不必要依赖 Servlet,或者适度调整,来提供更大的能力。 9. JPA 借鉴 JDO,以及融入一部分特性,做到对 NoSQL 更良好的支持。 一些个人的心得和经验分享 软件业有个 Hype Cycle 模型,有很多技术受到市场的追捧而成为明星,也有些身不逢时而备受冷漠。 EJB 是一个广泛被误解的技术,在企业应用分布式计算方面,EJB 给出了非常完备的技术体系。只是目前所有的应用服务器都实现的不够好。对于目前打算转型微服务设计的架构师,EJB 也是一个非常值得学习借鉴的技术。 Java 的慢是相对的,有些是当前实现的不够好。比如原来有人对 Java 的网络 IO 性能提出质疑,然而稳定的 Netty 框架出现后,就没有人再怀疑 Java 处理网络 IO 的能力了,甚至在 JDK8 中自身的 NIO 也相当出色。要知道 Java 为了实现跨平台能力,采用的是各个操作系统的一个公共能力子集,而且其设计哲学就是给出 API 框架,实现是可以自行实现和加载服务的。 Java 在处理界面方面,Swing 和 Swt 表现可圈可点(Idea和 Eclipse 分别采用的图形基础库),JavaFX 已经运用到很多的行业软件上。在浏览器界面表现上,SpringMVC 在模板渲染页面方面使用者最多;GWT 似乎使用者不多,但基于 GWT 的 Vaddin 在国外企业中用户众多,而且很多服务器管理软件也用 GWT 写成;JSF 也在企业软件中得到广泛使用,状态信息直接在后端进行管理,配合 js 前端框架,可以充分发挥各种技术的优势。 CDI 规范和 SpringFramework 在服务器程序中作用类似,Spring 是一套设计优良,完备的框架,CDI 具有更强的可扩展性。通过对注解的语义定义,一家公司可以维护一套自己的组件描述语言,来做到产品和项目之间的软件快速复用。CDI 是定义软件组件内部模型的*方式,只可惜了解的软件工程师实在太少。 微服务架构在互联网应用,快速开发运维管理方面,配合容器技术使用,有很强的优势。但并不是所有的应用场景都适合微服务:强事务应用系统,采用单体结构的软件体系设计,更容易从整体方面维护,也能获得更优的性能。Java 语言无论在微服务还是单体结构,都有成熟稳定的软件架构供选择使用。所以关于JAVA“尚能饭否?”你一定有了自己的了解了吧!那么你想要学习JAVA了,要怎样才能够更高效率的学习呢?来青鸟,告诉你如何6个月0基础学习JAVA,而且还包就业哦!
相关课程
在线预约报名
  • 报名课程 :
    Java老矣 尚能饭否?
  • 报名学校 :
    南通市崇川区北大青鸟计算机培训中心
  • 学生姓名 :
    电话号码 :
    联系地址 :
    情况说明 :
    验  证  码 :