将 Java 作为入门编程语言有错吗?

2018 年 11 月 26 日 THU数据派

来源:CSDN

本文约1300字建议阅读5分钟。

本文为你介绍JAVA编程语言的现状。


还记得你学习的第一门编程语言是什么吗?


对11 级软件工程出身的笔者而言,《Java 程序设计》是大学课程中必学科目,且学分相比其他课程都要高出不少。


不过,近几年随着人工智能的崛起,各大初高中、甚至是幼儿园都在将 AI 教学列入基本教学范畴。这不前几日,由中国科学院自动化所、Google 及其他相关高校的 AI 专家专为幼儿园学生设计的 AI 教材也被曝光。



随之而来的是,作为 AI 领域的首选编程语言 Python 也水涨船高,甚至不少高校将其取代了 Java 的基本教学任务。对于这种现状,本文作者不禁提出疑问,如今倘若仍将 Java 作为学习编程的入门课程教给学生究竟对还是不对?如果不对,在学习编程时又该学什么呢?Python 吗?


Java 依然是最流行的编程语言,但很少有人认为它是最酷的编程语言。一些人甚至认为,Java 已进入垂暮之年,因此许多从事教育的人都不愿意教 Java。


于是问题来了:学校和大学是否依然应该教学生 Java 编程?如果不应该,那么教什么语言最好?


新贵 Python 或将拦截 Java 的教学推广后路?


在我上大学的时代——其实就是十年前,Java 还是计算机科学的入门课程中的必学语言。如果你想学其他语言,比如 C、Python、PHP,你就得专门选那个语言的课程,或者选相关的应用。


但是现在,Java 不再受大学的青睐。根据国际计算机协会(ACM)的研究发现,截至 2014 年,Python 已经取代 Java 成了主流大学计算机入门课程必学的语言。


但这个研究并不全面,因为它只覆盖了最主要的美国大学,而且它代表的只是几年前的一个时间点而已。但是,我依然强烈地感觉到,如果现在对计算机科学的入门课程使用的计算机语言做一次全面调查,那么很可能会发现 Java 并不是最受欢迎的语言。


我敢肯定许多学院依然在教 Java,但我也怀疑大多数已经把入门课程改成了其他语言(很可能是 Python)。甚至高中的计算机教学也有同样的现象。


为什么 Java 不再适合作为学习编程的入门语言?


Java 的衰退是好事还是坏事?当然,答案取决于你问的人是谁。但是一般而言,有几点很好的理由支持我们应当在计算机学习的过程中尽早改变教授编程语言的方式。


Java 太冗长。Java 程序员自己都承认,Java 是个极其冗长的语言,比大多数语言都要冗长,完成非常简单的任务都要写大量代码。也许对于能快速写代码的专业程序员来说无所谓吧。


但是,对于学习编程的学生来说,他会愿意写三四行代码只为了在控制台输出一行字符串吗?其他语言(比如 Python)只需要一行代码:


echo 'my string';


可学习性的因素。你也许认为,Java 是使用最广泛的语言,所以每个人都应该学习它。毕竟,许多专业的程序员每天都在使用 Java。许多重要的应用程序也是用 Java 写的,而且,就算现在所有人都不再写 Java,未来几十年中我们依然需要维护旧的 Java 代码。


但是,仅凭最流行的企业语言以及依然会广泛流行几十年这点,并不能说明我们应当总是让学生首先学习 Java。如果你是新入学的计算机科学的学生,希望用简单的办法探索应用程序设计和开发的精髓,那么 Java 并不是好的起点。


Java 是编译语言。如果你是 DevOps 工程师,在 Jenkins 流水线中构建 Java 应用程序,那这是件好事。但如果你只想学习编程,那尝试之前需要先编译就不太理想了。最好还是使用一门脚本语言。


如果职业需要,你可以稍后再学习构建过程和发布的流水线。而且你有可能根本不需要。并不是每个选了计算机入门课程的人都会成为专业的开发者并且编译代码。


有许多 Java 的替代品。你经常听到的学习 Java 的理由之一就是“它是面向对象的!”没错,Java 是面向对象编程(OOP)的标志性语言。但许多其他语言也可以使用 OOP。


而且,教 OOP 的原理并不需要特定的语言。OOP 只是一种概念,是一种结构性的策略,而不是语言的特性。除此之外,微服务的趋势已经让 OOP 变得不再那么重要了。就像微服务部署削弱了单一架构一样,也许以后根本就不再需要 OOP 了。


Java Development Kit(JDK)没有统一的标准。Oracle JDK、OpenJDK 和许多其他厂商的 JDK 平台都不一样,这可能会造成许多困惑。不同 JDK 之间的口味不同,意味着你在一个平台上的代码可能无法在另一个平台上正确工作,这会让初次学习编程的学生感到沮丧。


当然,你可以通过要求所有学生使用同一个 JDK 来避免这个问题。但为什么不干脆避免这个问题本身呢?许多其他语言都只有一个实现标准,而且通常是开源的。


学习 Java 依然有益


但这并不是说 Java 不适合教学——它依然有卖点。Java 是跨平台的。它有健康的生态系统和开发工具,包括 Eclipse,能让许多新手程序员的生活变得更加容易。Java 还有易于使用的文档和社区支持,因为太多人都在使用 Java。所以,教 Java 究竟有没有错?这个问题很难回答。但是现在,Java 并不是向学生教授第一门编程语言的最佳选择。在我看来,Python 和 C++ 是更好的选择。


对此,你怎么看,欢迎下方留言分享你的看法。


原文:

https://www.theserverside.com/opinion/Is-it-a-mistake-to-teach-Java-as-a-first-programming-language


登录查看更多
0

相关内容

Java 是一门编程语言,拥有跨平台、面向对象、泛型编程等特性。
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【哈佛《CS50 Python人工智能入门》课程 (2020)】
专知会员服务
109+阅读 · 2020年4月12日
台湾大学林轩田机器学习书籍《从数据中学习》,216页pdf
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
【新书】Python编程基础,669页pdf
专知会员服务
186+阅读 · 2019年10月10日
零基础人工智能入门(附源码)
PaperWeekly
6+阅读 · 2018年12月16日
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
想成为具有核心竞争力的 Python算法工程师?清华博士带你入门!
机器学习算法与Python学习
3+阅读 · 2018年1月9日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Arxiv
10+阅读 · 2019年1月24日
Arxiv
3+阅读 · 2018年10月8日
Arxiv
7+阅读 · 2018年3月21日
VIP会员
相关VIP内容
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
107+阅读 · 2020年5月9日
【哈佛《CS50 Python人工智能入门》课程 (2020)】
专知会员服务
109+阅读 · 2020年4月12日
台湾大学林轩田机器学习书籍《从数据中学习》,216页pdf
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
【新书】Python编程基础,669页pdf
专知会员服务
186+阅读 · 2019年10月10日
相关资讯
零基础人工智能入门(附源码)
PaperWeekly
6+阅读 · 2018年12月16日
Java 工程师快速入门深度学习,可以从 Deeplearning4j 开始
人工智能头条
13+阅读 · 2018年12月14日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
2年Java经验,真的就拿不到30万年薪吗?
程序员观察
3+阅读 · 2018年4月8日
Python 如何快速入门?
全球人工智能
6+阅读 · 2018年3月15日
想成为具有核心竞争力的 Python算法工程师?清华博士带你入门!
机器学习算法与Python学习
3+阅读 · 2018年1月9日
Python NLP 入门教程
开源中国
14+阅读 · 2017年10月1日
Top
微信扫码咨询专知VIP会员