0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java为什么不适合作为入门编程语言

5RJg_mcuworld 来源:未知 作者:易水寒 2018-11-25 10:36 次阅读

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

就从 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++ 是更好的选择。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2964

    浏览量

    104688
  • 编程
    +关注

    关注

    88

    文章

    3609

    浏览量

    93680
  • 人工智能
    +关注

    关注

    1791

    文章

    47146

    浏览量

    238125

原文标题:将 Java 作为入门编程语言有错吗?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问stm32是不是不适合控制有位置要求的交流伺服pmsm电机?

    stm32很适合控制无传感器pmsm电机,是否可以认为:stm32不适合控制有编码器的交流伺服电机
    发表于 05-16 07:31

    PCB负片工艺为何不适合做金属化半孔

    `请问PCB负片工艺为何不适合做金属化半孔?`
    发表于 02-26 16:42

    sram内存块不适合mcal_bss段怎么解决?

    对于我的项目,我使用带有 EBTresos 的 S32K342 进行配置和 Autosar OS。我面临如下 sram内存块不适合 mcal_bss 段问题。 链接 main.elf
    发表于 05-19 08:31

    java编程入门视频

    java编程入门视频!资料来源网络,如有侵权,敬请见谅
    发表于 11-20 15:11 15次下载

    java 网络编程语言

    java 网络编程语言
    发表于 12-09 15:41 0次下载

    如何学编程语言?好菜鸟学习编程语言的步骤

    每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程
    发表于 04-27 11:08 8780次阅读

    如何由浅入深的学习编程语言?学习一门编程语言的大致框架

    每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程
    的头像 发表于 05-19 11:07 5284次阅读
    如何由浅入深的学习<b class='flag-5'>编程</b><b class='flag-5'>语言</b>?学习一门<b class='flag-5'>编程</b><b class='flag-5'>语言</b>的大致框架

    Java入门的大致学习路线

    入门阶段,主要是培养Java语言编程思想。了解Java语言的语法,书写规范等,掌握Eclips
    的头像 发表于 05-24 17:19 4506次阅读

    这几类人不适合跑步,有你吗

    这几类人不适合跑步,有你吗?  跑步,是一项最为基本的运动方式。不管是在清晨还是傍晚,不管是在小区公园,还是街区跑道,我们都能看到跑步者的身影。跑步,俨然成为如今最受欢迎的健身方式。然而,生活中有
    发表于 09-29 11:28 2576次阅读

    传感器和酒精点火联锁装置决定你适不适合驾驶

    当觉得困倦、有压力或者喝了点酒,人们是不适合开车的,甚至也不适合做出要开车的决定,但是自动驾驶汽车可以帮助做决定。
    发表于 03-03 11:14 2290次阅读

    为什么LDPC码不适合工业存储

    LDPC码被认为是当今3D TLC和QLC存储器中提高错误率的解决方案。然而它们并不适合每个市场。
    发表于 10-21 17:23 2009次阅读

    电阻可以串联 为何二极管不适合串联?

    电阻可以串联,为何二极管不适合串联?
    的头像 发表于 02-26 16:14 6198次阅读

    AI到底适不适合开源?

    至于说有“开源不适合 AI”的声音出现,其实有点以偏概全。AI 的开源应该是包含了很多层面上的,例如基础设施、软件环境、框架、算法、应用等等,而不仅仅是一个模型的训练。
    发表于 12-12 11:45 595次阅读

    Fastjson 很快,但不适合我....

    :等于88。记者:??fastjson:你就说快不快吧! ❞ 这个略显马丽苏的标题,各位看官将就着看吧。主要是怕被喷。fastjson真的很好,我用不用我喜不喜欢的,太不重要了,我只是觉得不适合我而已
    发表于 05-28 11:37 326次阅读
    Fastjson 很快,但<b class='flag-5'>不适合</b>我....

    对比Python与Java编程语言

    Python与Java都是目前非常流行的编程语言,它们各有其独特的优势和适用场景。以下是对这两种编程语言的对比: 一、语法和易用性 Pyth
    的头像 发表于 11-15 09:31 283次阅读