还记得你学习的第一门编程语言是什么吗?
就从 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++ 是更好的选择。
对此,你怎么看,欢迎下方留言分享你的看法。
基于图像识别的零件缺陷在线检测系统
索尼大屏Xperia Z Ultra要回归,有待证实
5G时代,边缘计算将助力更多的应用场景落地
蔡明介:手机芯片业务市场份额流失 恢复怕要一年时间
5G时代移动通信基础设施将迎来全面的更新
Java为什么不适合作为入门编程语言
为何需要对智能电视的产业链进行全面整合
rlc串联电路谐振特性图分享
数码摄像头兼容操作系统/视场
河南移动携手华为开通了全国首个5GE站郑州地铁5号线
京东物流联手ABB,推进工业机器人在物流行业的自动化设计及升级改造
运动蓝牙耳机什么牌子好?音质好的运动蓝牙耳机
详解Zabbix分布式监控平台建设
使用OpenVINO™ 部署PaddleSeg模型库中的DeepLabV3+模型
Dell‘Oro:SD-WAN技术的全球销售预计将在未来五年以每年24%的复合增长率增长
第三次调涨!PCB材料覆铜板需求旺盛,原材料价格大涨!
健身房中的智能无脂镜:可一键控制健身设备
高级用户如何在STM32上提高工作效率
Nvidia的新卡皇GTX 1080 Ti将会在本周正式发售
RS触发器的约束条件