在计算机科学中,名字非常重要。真的非常重要。我这里说的不是用诸如UpdateUserDetailsCommand这样的有意义的名称来代替UpdUDetsCd,而是指产品的名字本身。一个出色的名字能让我们对软件有更深的了解:它告诉我们创造者具有想象力,甚至有一种风格。它告诉我们,这个人非常重视产品的成功,他们明白,制作优秀软件不仅仅是编写优秀的代码。
Java
是一个几乎适用于任何事物的出色名称。我喜欢它的歧义性;咖啡,还是印度尼西亚群岛中最大的岛屿?我根本无法听到 Java
这个名字而不想知道它指的是什么。C#(那些知道的人读作 cee-hash)是矫揉造作的,是模仿的。试图用我是 Java 开发者
的事实来打动女孩已经够可怜的了。想象一下,如果我必须说我是一个 cee sharp
或 dot net
程序员?哎呀。但从中我们可以了解到创造这两种语言的心态——C#/确实是比Java更模仿的。
因此,如果我们已经排除了C#作为语言发展的下一步,那么关于其他两种可能的Java替代品:Python和Ruby怎么办。当然,Python
是很棒的。同样,这里又有了一次歧义性:滑稽的英国人,还是蛇。蛇很酷。实际上,用动物命名/总是/很酷,即使是蚂蚁。Ruby让我渐渐喜欢上了。我不/爱/它,但作为一个非英语母语的英语名字,我愿意给它一个机会。我注意到非英语母语的人倾向于用可怕的缩写来命名他们的项目。
Apache项目为我们提供了许多关于好坏的绝佳示例。《Tapestry》这个名字美丽、富有感染力,非常适合网络演示框架。《Struts》是一个不错的双关语(或许有点过于明显),与《框架》相呼应。《Lucene》和《Avalon》也足够好。《Ant》我们已经提到过。《commons-lang》则是一大败笔,将《commons》(呃)和那个极其浪漫的英文单词《lang》组合在一起。更糟糕的是,组合时使用了连字符。名字里面不应该有连字符,伙计们!(当然,除了Mike的)。《Commons》可能会让人想到《典型》或《共有》或两者兼而有之;在这时代,任何一种解释都不会令人鼓舞。实际上,《Commons》似乎成了Jakarta用来指代《我们没有恰当名称的东西》或《或许,不值得成为真正项目的那些东西》的代号。类似地,《commons-primitives》几乎能唤起一些关于新石器时代部落社会的愿景,不受现代私有观念的侵蚀……但它并没有。对我来说,这暗示了这些项目的相对质量。有哪个真正投入的开发者,在构建他们热爱并坚信的东西时,会把自己的项目称为《commons-lang》?不会的。他们会称它为《Tapestry》。如果他们有Howard的戏剧感,那也是。
在分布式计算领域,我们得到了《CORBA》——一个发音优美、听起来像真正英文单词的缩写,甚至让人联想到蛇——以及荒谬的WSDL(发音为《whizz-dull》,这是一个矛盾的说法)。我想这意味着Web服务只是另一个死胡同——当然,没有任何有用的东西会被命名为WSDL?
作为一个异端者,我用一个动词命名了我们的项目。Hibernate不是一个东西——它甚至不是一个心态;它是一件你/做/的事情。
免责声明:这篇文章是本着幽默的目的写的,请勿生气