成为一名优秀的技术大使– Matt Massicotte –中

成为优秀的技术大使

最近,围绕Swift的Apple开发人员世界也进行了大量讨论。 最近关注的焦点是缺乏动态功能。 考虑到Objective-C的动态性以及围绕该功能构建的Apple API的数量,我认为这是一个特别有趣的讨论主题。 在这个主题上有一些相当体贴的文章,我很喜欢阅读它们。 但是,正是这种问题的性质使我发现了最有趣的问题。

也许不足为奇,编程语言具有口头语言的某些特质。 文化围绕着它们发展,通常具有非常独特的方面。 我认为部分原因是由于Objective-C的动态功能,它具有独特的文化。 特别是对于已经使用了一段时间的用户。 由于Swift在哲学上与Objective-C不同,因此在文化上也有所不同。 这将使某些人感到震惊。

但是,我们知道即将到来。 多年以来,Objective-C的纯粹活力已荡然无存。 将此错误作为证据:

当然,出于充分的理由这是非法的。 编译器需要有关使ARC工作的方法签名的更多信息。 但是,在引入ARC之前的一段时间,这个特殊的结构成为了警告。 我的意思是无论是形象上还是字面上。 正是编译器试图帮助您防止出现明显的错误。 但是,这也是不鼓励使用最动态功能的一种方式。 这表明文化正在发生转变。

这绝对让我震惊。 宣布Swift时,我大为震惊。 即使我看到了它的到来,也知道这是必然的(http://arstechnica.com/apple/2010/06/copland-2010-revisited)。 我开玩笑花了几个月的时间来完全处理新闻和含义。 Objective-C既怪异又充满活力,一旦掌握了它,我就会觉得自己在使用非常不同的东西。 我喜欢那个。 如果您像我一样,就已经对该工具产生了情感上的依恋。 也许是非理性的。 但是不可否认。

对我而言,Swift感觉更像是C ++的衰落者,而不是Objective-C。 而且,鉴于情况,我认为这是完全合理的。 所有的LLVM和Clang都是用C ++编写的。 我怀疑苹果的编译器团队在设计Swift时显​​然考虑了Objective-C,但他们内心却是C ++。

所以我们到了。 我们不在Objective-C 3.0的那个替代维度上。 这不仅仅是目标/动作范式。 不仅仅是Swift需要动态性,或者它是不必要的。 有很多技术上的原因说明这种过渡会很好。 但是,您还必须承认过渡​​不仅是技术上的。 这是情感的。 这是关于放开您可能依附的东西。 如果感觉不太好也可以。

我希望我们认真思考为什么要进行类型战争。 为什么对使用动态类型的个人发表尖刻的评论。 我们很想对Objective-C说好话。 谢天谢地,对不对? 有更好的方法。

苹果建立了融合不兼容技术的迷人历史。 Unix和Mac OS。 PPC和x86。 C和SmallTalk。 这些总是产生文化压力。 从技术上考虑这些很容易。 而且,这是使新手难以承受的最简单方法之一。 有一种全新的文化传入。说出自己的方式,把我们带到这里的方式,旧的方式,说不好并不只是(在我看来)不正确。 对于那些仍然爱它的人来说,这也表明他们缺乏同情心。

如果您喜欢Swift,喜欢静态类型输入和代数数据类型,那么您将有机会时常遇到。 在我们整个行业中,一切都朝着您的方向发展。 您有机会欢迎来自不同文化的许多新朋友。 但是,您首先要在情感上进行思考,然后才是技术上的思考。 您是您喜爱的技术的大使。 成为一个好人。