Dropbox 与 C++ 的“七年之痒”难跨越,跨平台真的是伪命题吗?
Perl 语言创建者 Larry Wall 曾总结过好的程序员有 3 种美德:懒惰、急躁和傲慢(Laziness, Impatience and hubris)。因为懒惰,程序员绞尽脑汁地将大量的重复性劳动交由机器处理;因为懒惰,程序员希望通过“一次编写,处处运行”而实现“一劳永逸”的美好愿望。 “一次编写,处处运行” —— 简单来说就是跨平台。然而这个十分符合程序员思维,且承载着他们美好愿望的方案,在实际操作中往往不能如其所愿,甚至会适得其反。 Dropbox 工程师近日在其官方博客和大家分享了他们“弃暗投明”的经历 —— 放弃在其 iOS 和 Android 客户端之间共用同一套代码的策略,转而使用各自平台的原生语言进行开发。 工程师表示,Dropbox 在 2013 年开发 iOS 和 Android 平台的移动应用时,采用了通过 C++ 语言在两个平台之间共享同一套代码的策略。当时的想法十分简单,开发团队希望使用C++ 编写一次代码即可,无需分别针对 iOS 和 Android 平台各使用 Objective-C 和 Java 编写两次代码。另外,当时负责移动应用开发的团队规模...
