Redian新闻
>
JAVA新提案:努力简化Hello World写法

JAVA新提案:努力简化Hello World写法

公众号新闻

出品 | OSC开源社区(ID:oschina2013)

OpenJDK 的 JEP 445 提案正在努力简化 Java 的入门难度。这个提案主要是引入 “灵活的 Main 方法和匿名 Main 类” ,希望 Java 的学习过程能更平滑,让学生和初学者能更好地接受 Java 。
提案的作者 Ron Pressler 解释:现在的 Java 语言非常适合开发和维护大型复杂应用程序,但学校在教编程时往往会从变量、函数和子程序等基本的小型编程概念开始,在这个阶段,往往不需要类、包和模块的大型编程概念。但现在的 Java 对初学者不太友好,比如经典的 Hello, World! 入门程序 :
    public static void main(String[] args)
        System.out.println("Hello, World!");
    }
}
Ron 认为,作为新手入门的第一个程序,这段代码太复杂了。比如 class 声明和强制性的 public 访问修饰符是大型编程结构,它们在封装具有定义良好的外部组件接口的代码单元时很有用,但在这个入门小示例中毫无意义。String [] args 参数用于将代码与外部组件连接起来,但在这段代码里面不会被使用。static 修饰符是 Java 类和对象模型的一部分,但在新手村出现也为时尚早。
作为优化,该提案首先增强了启动 Java 程序的协议灵活性:
  • 允许已启动类的 main 方法具有 public 、 protected 或默认(即包)访问权限。

  • 如果启动的类不包含带 String [] 参数的 static main 方法,但包含不带参数的 static main 方法,则调用该方法。

  • 如果启动的类没有 static main 方法,但有一个非 private 零参数构造函数(即 public 、 protected 或包访问)和一个非 private 实例 main 方法,然后构造该类的一个实例。如果该类有一个带 String [] 参数的实例 main 方法,则调用该方法;否则,不带参数调用实例 main 方法。

如此一来便允许省略 main 方法的 String[] 参数,并允许 main 方法既不是 public 也不是 static 。可以稍微简化 Hello, World! :
void main()
此外,还要引入匿名 Main 类来隐式声明 class :
void main()
到这里 Java 的 Hello, World!  入门程序已经到了简化,但在 Ron 眼里,该 JEP 提供的优化只是使 Java 更易于学习的第一步,像 System.out.println 这种长方法 / 函数也是需要简化的地方,不过这些问题需要在未来的 JEP 提案中逐步解决。
该优化属于预览语言功能,默认禁用。要在 JDK 21 中尝试该示例,必须启用预览功能: javac --release 21 --enable-preview Main.java 编译程序,用 java --enable-preview Main 运行;或者使用源代码启动器时,使用 java --source 21 --enable-preview Main.java 运行程序。
有关灵活的启动协议和匿名 main 类的更多信息,可以在提案正文中详阅(https://openjdk.org/jeps/445)。

提案目标

  • 为 Java 提供平滑的入口,方便教育工作者可以循序渐进地介绍编程的概念。

  • 帮助学生以简洁的方式编写基本入门程序,并随着其 Java 技能增长,优雅地扩展代码。

  • 减少编写简单程序(例如脚本和命令行实用程序)的仪式。

  • 不要单独介绍 Java 的初学者方言。

  • 不引入单独的初学者工具链;编译和运行学生的程序,使用的工具应该和生产环境的 Java 程序相同。

相关链接:https://openjdk.org/jeps/445


往期推荐



FerretDB 1.0正式GA,因“碰瓷”MongoDB而改名

中国第一代程序员王小波

微软开源“傻瓜式”类ChatGPT模型训练工具,提速省钱15倍



🌟 活动推荐


2023 年 5 月 27-28 日,GOTC 2023 全球开源技术峰会将在上海张江科学会堂隆重举行。

为期 2 天的开源行业盛会,将以行业展览、主题发言、特别论坛、分论坛、快闪演讲的形式来诠释此次大会主题 ——“Open Source, Into the Future”。与会者将一起探讨元宇宙、3D 与游戏、eBPF、Web3.0、区块链等热门技术主题,以及 OSPO、汽车软件、AIGC、开源教育培训、云原生、信创等热门话题,探讨开源未来,助力开源发展。

长按识别下方二维码立即查看 GOTC 2023 详情/报名。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Go文件后缀新提案:.go变成.ʕ◔ϖ◔ʔ加州新提案:陪审员日薪增至$100加州新提案:孩子成为跨性别者学校须通知家长美议员最新提案:全美禁止中国人买房买地,已经购买的需要强制出售糖尿病对癌症的发生和治疗的影响 (一)德州再次推出排华新提案:要求公立高校拒收中国留学生!加州议员新提案:永久禁止2007年以后出生的人买香烟!全民禁烟即将实现?许勤在人民日报发表署名文章:努力在农业强国建设中担当作为走在前列ChatGPT聊天狗屁通(上) – 知多少?加州新提案:禁止向2007年后生人销售烟草,但大麻不受影响加州新提案:禁止强制驱逐有犯罪前科租户南湾州议员新提案:政府资金支持的寄养年龄上限调高至26岁德州新提案:禁止中国公民申请德州大学Call for Paper | IEEE Future Networks World Forum 2023安省小学教师工会谈判细节透出!教育部长:努力谈拢,阻止罢工!金惟纯:努力无极限洛县新提案:监狱非监禁制度或释放更多囚犯美国|国会新提案:为民众追回疫情间被诈骗的失业救济金!假戏真做?汤唯曾自曝二人都没用替身,梁朝伟是个很专业的演员!有毒!彩虹糖也不能吃了?!加州新提案:禁售含有害化学物质的糖果零食~纽约市新提案:户外餐棚仅在特定季节开放,商家需交费!纽约市新提案:户外餐棚仅在特定季节开放 商家需交费佐治亚最新提案:这类设备上禁止使用TikTok、微信,学校也如此!突发!中国赴美人员自本周五起取消核酸检测!国会议员新提案:申请庇护30天后可拿工卡...加州新提案:学校需在孩子成为跨性别时通知家长德州新提案:禁止中伊朝俄公民入读公立大学美国新提案:为每个黑人补偿500万美元,1美元购房!市民排队高呼支持……习近平:努力创造新时代中国防沙治沙新奇迹Jiangsu City Punishes Property Developers For Selling Cheaply疯了!德州新提案:禁止中国公民申大学!国会新提案:申请庇护后30天拿工卡!情人节说甜 - 祝大家生活甜蜜德州新提案:禁止中国等国留学生03月15日:努力挤进前25%的人,都能买得起房
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。