2018年我应该学习Java吗

我应该学习Java吗?这是一个不断出现的问题。如果你刚开始是一个开发人员,如果你已经是一个前端开发人员,或者即使你是一个。net背景的人,很多人都想知道学习Java是否是一个正确的职业/个人开发步骤。让我们看看在2018年学习Java有多有用。

2007年左右,当我第一次使用Java时,它的名声好坏参半。一方面,它是一种相当新颖和现代的语言,但另一方面,它因其糟糕的性能(在我看来不是完全值得的)和冗长(与当时的,非常高的Python相比)而臭名昭著。

10多年后的今天,这个问题变得有趣起来,原因有很多。

让我列出我经常听到的关键问题:

Java过时了,过时了。

有更好的JVM语言,如Scala、Clojure和Kotlin。

我是一个前端开发人员,NodeJS不是更实用吗?

使用Java是不愉快的。

Java太慢/消耗太多内存。

为什么我应该学Java而不是X、 Y、 Z等其它语言 ?

我确信可能会有更多的问题和担忧,所以请在评论中告诉我。我可以编辑文章或直接回答你。

让我们一起来看看这些问题吧!

问题1:Java过时了,过时了。

Java在1995年发布(根据其维基百科页面),因此它可能已经超过了它的一些用户。那是老了吗?这是主观的,比许多语言都要古老,这是肯定的!这是一个问题吗?这就是年龄歧视!当然,年龄本身并不是一个争论点,所以让我们来看看这个陈述的另一部分。

Java真的过时了吗?TIOBE索引跟踪编程语言的流行程度。

以下是截至2018年的前20名:

请输入描述

根据TIOBE的说法,Java不仅是最受欢迎的语言,而且它实际上也越来越受欢迎!当然,也有其他语言的流行速度更快,排名也更高,但是说Java已经过时是不正确的。

关注点2:有更好的JVM语言,如Scala、Clojure和Kotlin

这是一个有趣的观点,尤其是在Kotlin迅速走红的情况下。如果您是JVM新手,您是否应该使用Java,或者应该直接使用(比方说)Kotlin?

我认为,如果您想成为JVM上的职业开发人员,了解Java是必不可少的。当然,你可以孤立地学习任何语言,但你可能会错过一些背景知识。这些语言中有许多依赖于Java库,您很可能至少不会避免阅读Java。

实际上,我认为了解Java的一个主要好处是——它为您提供了基础。JVM是一个拥有诸如Groovy、Scala、Clojure、Kotlin等语言的丰富平台——几乎所有这些语言都有一些灵感或与Java (JVM之外)的关系。

我鼓励每个人在JVM上探索其他语言——这常常是Java创新的来源。我不认为这是避免学习Java的理由!学习Java会让你在任何一种语言中都有一个开头,这真的是一项值得投资!

关注点3:我是一个前端开发人员,NodeJS不是更实用吗?

这可以推广到任何前端开发人员,他们想知道学习像Java这样的服务器端语言是否有用。

NodeJS非常实用和流行。您可以快速有效地构建服务。然而,Java在服务器端建立得更牢固,而且也很容易使用。

这个问题只有在你审视自己的个人情况时才能得到真正的回答。您是宁愿永远保持领先的开发人员,还是希望在服务器端进行更深入的研究?我认为,至少学习如何阅读Java可能是有益的。

已经编写了许多Java服务器端代码。即使你不打算自己写得更多,你也会因为无法理解语言而限制自己。

这种关注有一些优点,就好像您已经在使用JavaScript(或TypeScript)在客户机和服务器上使用node - js,您需要一个很好的理由来开始使用Java。这对未来是否值得投资?这是你的回答。

关注点4:使用Java不愉快

Java Enterprise Edition因在bean配置中使用XML而声名狼藉……这玷污了Java作为一种讨厌的语言来编写代码的名声。这已不再是事实。

我最近写过关于Java微框架的兴起。现在,编写Java服务是一件非常简单的事情。

让我们看看用Spark Java编写的“Hello World”:

import static spark.Spark.*;
public class HelloWorld {
public static void main(String[] args) {
get("/hello", (req, res) -> "Hello World");
}
}

是真的不愉快吗? 恰恰相反!Java是乐趣!有了Spring Boot之后,它甚至在企业中变得有趣起来!

Java喜欢的另一件事是大量高质量的工具、支持和在线材料,它们使解决大多数问题变得非常简单。

关注5:Java太慢/占用太多内存

Java运行在JVM上,因此它过去常常被启动时间较慢所困扰。当您需要启动JVM时,您将不会获得与bash实用程序类似的C编写程序。您可能很难在速度上赢得超小和超轻,本地应用程序。这就是不使用Java的原因吗?对于那些特定的案例,可能是这样。

那么您可以使用Java做什么呢?这些天真的快吗?

Java在大数据空间中大量使用,例如用Java编写的Apache Hadoop等工具。

世界上最大的银行和金融企业都在运行Java,以满足他们的需求。

在某些情况下,当Java在性能上可以与c++相比时,它实际上被用于高频交易应用程序。

Java在Android设备上被大量使用。

Java在嵌入式空间中很大。

更多。

如果你想写视频游戏——Java也不是你最好的选择。我认为实际上这更多的是与JVM可用性有关,而不是人们对“性能”的担忧。

为什么我应该学Java而不是X 、Y、 Z等其它语言 ?

Java是一门神奇的语言。作为目前世界上最流行的语言,它是软件开发的核心技能之一。

你不需要学习Java而是学习另一种语言。对于大多数人来说,成为程序员(业余爱好或专业人士)是一件持续时间超过几个月的事情。不要把自己局限于学习Java。不学习Java将把您从庞大的、动态的社区中隔离出来。

Java的发展速度也比以往任何时候都要快,发布周期改为每年两个主要的版本。这是令人兴奋的。它已经给我们带来了一些伟大的东西,比如从Java 10开始使用var来进行类型推断。未来还有更多。

我应该学习Java吗?

是的,你应该学习Java。这是当今世界上最流行的语言。它相当简单、现代、快速,而且正在进化。有大量的图书馆可以帮助您编写令人惊叹的代码,并且可以方便地在线获取帮助和资料。

如果你还在犹豫,我希望你不会再犹豫了——去学Java吧!

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构

想进阿里、京东、美团面试的Java程序员看过来第一个问题:阿里面试问些什么

27960
来自专栏Keegan小钢

小钢的架构思考:架构设计

最近一个多月因为忙于工作上的项目重构,所以文章一直没能更新。现在,重构终于暂时告一段落,于是,赶紧抽时间把文章写完更新发布。下面进入正文。

11320
来自专栏编舟记

敏捷团队工作流

站会中的内容是每天工作的开始,也是对昨天工作的回顾。一般会由团队的某位成员主持,这位主持人有责任让电子系统上的story卡片和看板上的保持一致。站会上,大家依看...

29650
来自专栏花叔的专栏

MPSO?粗略解读小程序的关键字搜索

本文未经允许,可随意转载^_^! 早在小程序发布前,也就是2016年11月份左右,我们当时就猜想小程序有搜索的入口。然后老大就跟我说:这里有一坑,我说什么坑,他...

32170
来自专栏PPV课数据科学社区

【PPT】国家统计局:大数据与统计

【热门下载】 2015中国数据分析师行业峰会精彩PPT下载(共计21个文件) 关注PPV课微信菜单栏回复“2015数据分析师”即可下载 转自:数据观

38540
来自专栏python+iOS学习交流

你为什么要学习Python,有哪些优缺点,如何一个星期学会?

越来越多的工程师使用 Python 进行大数据处理;科研工作者开始使用 Python 来进行数据分析;系统管理员使用 Python 管理 Linux 系统;开源...

19040
来自专栏ThoughtWorks

DDD战术篇:领域模型的应用

领域驱动设计DDD在战术建模(后文简称建模,除非特别说明)上提供了一个元模型体系(如下图),通过这个元模型我们会对战略建模过程中识别出来的问题子域进行抽象,而通...

37660
来自专栏架构专栏

P8架构师点亮进阶之路——阿里最新技术重点划分以及面试必问点

跳槽阿里基本上都分为两个阶段的提问。第一个阶段是主语言本身以及它的高级特性,第二个阶段是讲述自己的项目,并在中间穿插着问题。正文才是重点......

23610
来自专栏Spark学习技巧

编程语言排行榜:你选对了吗?

有人说程序员知识更新速度要很快,这是因为编程语言很容易就过时。这句话虽然有点绝对,但是也说明了热门的编程语言排行版一直在变。那么我们就来看一看编程语言排行,了解...

50170
来自专栏SDNLAB

OpenDaylight发布碳(Carbon)版本,面向更广阔的应用市场

本周二领先的全球软件定义网络开源平台OpenDaylight发布了第六个版本——碳(Carbon),OpenDaylight碳版本的发布增加新的功能,以更好地支...

28940

扫码关注云+社区

领取腾讯云代金券