• 千万不要在JAVA社区提Kotlin
  • 发布于 1周前
  • 43 热度
    0 评论
在Java社区提一提Kotlin,可能会惹来大麻烦。想象一下,你把整个职业生涯都奉献给了编程,特别是精通某一种特定的编程语言。你写书,参与该语言的开发,围绕它构建东西,分享你的知识,然后突然间,你就因为在一个程序员群组中提到另一种编程语言而被封禁了。

这就是发生在 **Kevin Bourrillion ** 身上的事,他是Java社区中最杰出的人物之一。Kevin 在谷歌工作了将近二十年,共同撰写了Java Google 风格指南,是瓦尔哈拉项目的代表,还创立了Guava,这只是他的几项成就。然而,足以说明 Kevin Bourrillion 对Java社区的重大贡献。三天前,他分享了一条来自Java subreddit版主的信息。

Subreddit 有点像早期的Facebook群组。每个subreddit都有自己的主题、规则和版主。Subreddit 由社交媒体平台 Reddit 托管。特别是Java subreddit,拥有32.7万会员。虽然这并不意味着他们都很活跃,但这个数字很高。

Kevin收到的信息是这样的:

我们可以从消息中了解到,凯文被永久禁止了。这意味着他将永远无法再参加这个小组。此外,我们了解到他因为一条评论被禁言。这意味着有人在这个群组里发表了一些东西,Kevin 对此进行了评论,然后被禁言。版主还询问了 Kevin 对什么不清楚,并冒犯性地要求他在 Kotlin subreddit 上吹嘘。Kotlin subreddit 是另一种与 Java 竞争的 JVM 语言,Kotlin 的 subreddit。

我们不知道原来的评论是什么,引发了如此激烈的反应。什么样的评论可能导致一个编程组永久禁止?在后续的推文中,Kevin分享了那条导致他被封禁的评论:

凯文使用的昵称是kevinb9b。他回应了另一个表示喜欢空引用(null references)的Redditor。为了解释这里发生的事情,我们需要更深入地了解“空值(null)”这一主题。如果你考虑一个类型为字符串的变量,它可以持有哪些值?答案可能因编程语言而异。它肯定可以持有一个字符串,但它能持有一个空值(null)吗?一个缺失的值?

在Java和许多其他语言中,变量确实可以持有空值。然而,定义了空值的托尼·霍尔(Tony Hoare)后来意识到这是一个错误。这是因为当你得到一个空值而不是一个定义类型的值时,有时候很难处理这种情况。这就是为什么一些编程语言不允许空值的原因。Kotlin 是这样一种语言。如果你想在字符串中存储空值(null),你必须明确地这样做。

有些程序员喜欢不使用空值,因为这样他们的集成开发环境(IDE)和编译器可以在开发过程中警告他们出现了意外的空值。因此,在运行时出现空值错误的风险较低。

总结一下,有人在Java的subreddit上写道,他喜欢空值并不理解为什么人们不喜欢它们。凯文回复分享了他在Kotlin(一种竞争语言)中无空值编程的经验,这帮助他提高了安全性和开发者体验。正因为此,他被永久禁言。这听起来很荒谬,对吗?然而,这里有一点重要的事情需要提到。Kotlin和Java就像是《哈利·波特》和《指环王》的粉丝一样。

一方不承认另一方的存在,并且当提到另一方时会变得极度紧张。这就像编程世界中那种非常特殊的现象,程序员们形成了两个竞争的阵营,并互相对抗。

我能理解版主被激怒,并开始对触发他的每个人进行愤怒封禁。如果是像我这样的普通用户,可能没人会注意到。但在这个特殊情况下,被禁止的人实际上是一位致力于Java开发并做出了重大贡献的开发者。所以当凯文在网上分享他的用餐经历时,大家都开始讨论这个话题。例如,Vanessa写道:我的天,为什么版主要对此如此生气?Reddit的版主真是一种特别的群体。

这让人不禁想知道,为什么一个版主会对一个既不是冒犯性也不是垃圾邮件的评论做出夸张的反应。基本上,这是互联网评论中的精华。这正是那些开始在subreddit上围绕那个主题发布各种内容的人们感到恼怒的原因。最终,昨天Kevin被解封,并请求人们不要对版主怀有恶意:

我理解Kevin所写的内容,即版主的工作很艰难,甚至可能给人留下Java subreddit上的版主总是做出荒谬决定的印象。然而,这是一种可得性偏见,因为他们所做的所有好事并没有上头条。他还注意到,如果有人已经对版主持有负面偏见,这样的信息可能会导致确认偏误。这可能会放大负面看法,即使这种看法通常是不真实的。Kevin是对的。我们不应该将这种情况概括化。但是记住,如果你想在Java群组中写关于Kotlin的内容,至少要说一些关于Java的好话。以防万一。
用户评论