“喜鹊开发商”(2008)

2020-05-05 15:53:06

我经常认为软件开发人员就像喜鹊一样,因为偷闪闪发亮的物品来装饰它们复杂的巢穴而臭名昭著。就像喜鹊一样,软件开发人员几乎按照定义都是异常聪明和好奇的生物。但是我们太容易被闪闪发光的新玩具和玩具分心了。

我不再觉得Scott Hanselman的终极开发工具列表很有启发性。相反,它让人疲惫不堪。软件世界的变化速度是无情的。我们被闪亮的和新的东西淹没了,以至于概念本身就开始瓦解,这些词一遍又一遍地重复,直到它们演变成毫无意义的元音和辅音。闪亮的和新的变得平凡,甚至平凡。新的东西不再是独一无二的,当东西闪闪发光时,它就不再有趣了。最终,你会厌倦没完没了的闪亮新事物。

一年多前,我取消了对史蒂夫博客的订阅,因为他有一个习惯,就是气喘吁吁地写最新的闪亮的新事物--通常一天要写好几次。我看到太多我认识的人陷入了令人喘不过气来的炒作中,忘记了思考最新的闪亮新事物是否真的关系到整个事情的宏伟计划。

[Robert Scoble]说,他收到的电子邮件太多,这对他发布公关信息来说是无效的。他建议你现在应该做的是在他的Facebook墙上给他留言。亲爱的上帝和/或鲍勃。在我跟踪斯科布尔的那段时间里,我肯定从他那里看到过十几次这样的事情。别发电子邮件,发推特给我。别发推特了,彭斯。才酷我。在墙上留言,发短信,给我打电话,给我发电子邮件,不要给我发电子邮件,不要给我打电话。已经够了!我甚至不想和他联系,我发现这种从一个平台到另一个平台的不断迁移是一堆狗屎,让我感到厌倦。一年多前,当我放弃TechCrunch时,我也有同样的感觉。我厌倦了听到另一种略微不同的方式来做我们已经在做的事情,以及为什么这么微小的差异值得放下一切,搬到别处去。我正式宣布放弃寻找更新更闪亮的东西。

这不仅仅是没完没了的科技新闻。这也是数以千计的软件宗教战争的潮汐推动和拉动,不断地把我们磨得精疲力竭,就像急流中的误入歧途的岩石。我敢打赌,大卫·梅金森概述的过程听起来非常熟悉:

1.精英(大师)开发人员注意到使用他们当前的编程语言有太多庸俗的东西,并开始寻找能够更好地将他们与平庸的同事区分开来的东西。2.精英开发人员拿出他们当前烦恼的购物清单,寻找一种新的、鲜为人知的语言,显然这种语言的数量更少。

3.精英开发人员开始推动新语言的开发,贡献代码、编写库等,然后宣传新语言。次精英(高级)开发人员跟随精英开发人员学习新语言,为图书、培训等创造了市场,同时也加快了该语言的开发和测试。

4.有巨大影响力的次精英开发人员(精英开发人员倾向于孤立地从事研究项目,而不是生产开发团队),开始在工作场所推动新语言的使用。

5.大量的正规开发人员意识到,他们必须开始购买书籍和参加课程来学习一门新的语言。

6.精英开发人员注意到使用他们当前的编程语言有太多庸俗的东西,于是开始寻找一些能让他们与平庸的同事更好地区分开来的东西。

我希望你坐下来,因为我有一些坏消息要告诉你。你对Ruby on Rails很感兴趣的那件事?那是去年的事了。我们已经向前看了。

如果你考虑到这一点,从统计上看,绝大多数程序员还没有体验过任何类型的动态语言-更不用说Ruby了-这里的荒谬之处是崇高的。一些动态语言功能正在逐渐深入到Java和.NET的堡垒中,但速度缓慢,并取得了不同程度的成功。这些所谓的思想领袖在其他人有机会到达之前就已经离开了一个虚拟的鬼城。

我成为一名程序员是因为我热爱计算机,而要热爱计算机,你必须热爱变革。我也是。但我认为喜鹊开发人员有时喜欢改变,这损害了他自己的手艺。安迪·亨特(Andy Hunt)和戴夫·托马斯(Dave Thomas)这两位务实的程序员是Ruby上一次翻天覆地的变化的重要组成部分,他们在2004年的IEEE专栏(Pdf)中很好地阐述了这一点。

用户并不关心您使用的是J2EE、Cobol还是一对魔石。他们希望信用卡授权能够正确处理,并打印库存报告。你帮助他们发现他们真正需要的是什么,并共同想象一个系统。Pete没有在最新技术尖端的艰难竞赛中忘乎所以,而是专注于构建一个[用COBOL]为他和他的客户工作的系统。它很简单,也许按照我们的高标准几乎是原始的。但是它易于使用,易于理解,并且部署迅速。Pete';的框架使用了多种技术:一些建模、一些代码生成、一些可重用组件等等。他运用基本的实用主义原则,用起作用的东西,而不是仅仅是新的或时髦的东西。

我们失败了(作为一个行业),当我们试图提出一个全能的、全能的应用程序框架来结束所有的应用程序框架时。也许这是因为没有宏伟的、统一的理论等待着出现。后现代主义的标志之一--一些人认为这是我们这个时代的一个显著特征--是没有宏大的叙事,没有最重要的故事来指引我们。取而代之的是,有很多小故事。

如果你没有把最闪亮、最新的东西放在你的巢里,不要觉得力不从心。只要你和你的用户都满意,谁会在乎你使用的是什么技术呢?

这就是新事物的美妙之处:总会有新事物出现。不要让追求新的、闪亮的东西意外地成为你的目标。避免成为喜鹊开发人员。在追求闪亮和新的东西时要有选择性,你可能会发现自己是一个更好的开发人员。