写点什么

Java 之父:找 Bug 最浪费时间,现在不是开源的黄金时代

用户头像
极客good
关注
发布于: 刚刚
  • 1998 年 12 月 8 日,第二代 Java 平台的企业版 J2EE 发布;

  • 2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布;

  • ……


随着互联网的普及,Java 成为全球最流行的开发语言。James Gosling 也因此被称作“Java 之父”。



来自于 Evrone


James Gosling 本人,出生于加拿大,是一位计算机编程天才,1977 年获得加拿大卡尔加里大学计算机科学学士学位,1983 年获得了美国卡内基梅隆大学计算机科学博士学位。毕业后到 Sun 公司工作,这才有了上面的 Java。


近日,外媒 Evrone 的软件工程师、技术编辑 Grigory 与 Java 之父 James 进行了一场线上对话。在采访中,James 提出了许多观点,他认为:“对软件的可靠性要求越高,静态类型语言就越有帮助。”他还分享了自己对某些编程语言的看法:反感 C 语言中的宏、对 Lombok 又爱又恨、很喜爱 Lisp 等等。



关于现代编程语言的构建方式


=============


Grigory:作为软件开发人员和软件顾问,我们试图在俄罗斯组织 Python、Ruby、Java 和 Go 社区。您在 Java 方面的经验和工作可以很好地帮助开发人员。通过这次采访,我们希望能够帮助到其他开发者,一起解决业内的基本问题。


有些语言,比如 Go,没有类和继承一说,而另一些语言则尝试使用诸如 Rust 的特性。作为一名语言设计师,您认为现代通用的、合理的编程语言构建方式应该是什么?


**James:**我应该会继续使用类,类对我的编程工作很有用。在 C 语言中有一些宏,这非常糟糕,因为宏不是语言的一部分,不应该纳入其中。而 Rust 的工作人员正在尝试恰到好处地使用宏。



对于其他语言,如 Lisp 家族,人们总是想方设法更灵活地应用它们。它们有一种定义语法的方法,语法几乎完全与语义无关。在大多数语言中,语法和


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


语义是密切相关的。我曾写了很多 Lisp,我真的很喜欢使用 Lisp 程序。有的语言能让你以不同的方式做到这一点,比如在 Groovy 中,你可以直接使用 AST,Rust 有一些语法集成的宏。但我总觉得还有一个问题:除此之外还能做什么呢?


Lisp 对代码片段进行运算,再生成新代码,在 Java 世界里,人们就是这样做的。虽然看似低级,但很受欢迎。人们可以使用注释的组合,用一些不同的语言生成字节码,这是超级强大的。它会给你意想不到的惊喜,比如在 Jackson,它通过计算序列化程序延展了性能。



一方面,这是一种非常强大的技术,另一方面,它非常难以驾驭。这个技术充满可能性,但这种可能性是有限的。我对 Lombok 又爱又恨,因为它添加了一大堆 Java 特性,这些特性都很不错,但从另一方面来说,也显示出了弱点。JCP 的社区职能在下降,我已经离开好几年了,虽然有些事情可以做,但也只能是在纸上谈谈。


Grigory:这就是为什么我们更想了解您创建语言的经验,而不是一些 Java 增强建议。五年前,我尝试操控一些 Java 字节码。我发现,用它来创建特定领域的语言有点困难。但是有了 Ruby 后,就容易多了。Evrone 公司有许多精通 Ruby 的开发人员。Ruby 开发人员很优秀,但是他们需要多年的培训才能真正掌控 DSL 的魔力。



用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Java 之父:找Bug最浪费时间,现在不是开源的黄金时代