不久前,台积电举办了开放创新平台(OIP)活动。ARM的西蒙·西格斯(Simon Segars)是会议的主讲人之一,他谈到了开放性的好处,首先谈到了PC市场的封闭程度和手机市场的开放程度之间的对比。
<声音的针撕裂乙烯基>
哇,哇,哇…让我们再放一遍,慢一点。
他展示了一张标准台式电脑盒子的图片,作为一个极端封闭系统的例子,然后是一张幻灯片,上面有所有不同的手机,作为开放的例子。
我的第一反应是讽刺的,如果你还记得Mac的早期。Mac有狂热的追随者,但也有同样激烈的反对者,他们抱怨GUI是“纳粹”(是的,我听说有人用过这个词;古德温的法律在良好的形式)迫使所有程序看起来相同。因此,在那个时候,个人电脑是一个“开放”的系统,因为任何人都可以为它构建外围设备,并编写软件,使其看起来像他们想要的样子。
显然,随着时间的推移,PC的外观变得更加统一,但我仍然很难将PC视为封闭的堡垒。
另一个想法带来了更多的不协调。人们普遍认为是什么革新了手机行业的创新功能?
当然是iPhone了。iPhone必须代表自IBM大铁时代以来最封闭的环境。那时,你只能为你的IBM大型机购买IBM软件(也就是说,直到“捆绑”成为非法的)。现在,任何人都可以为iPhone编写应用程序,但必须经过苹果的审查,并且只能通过苹果的渠道销售,苹果可以获得30%(或其他)的收入。这就涉及到“看门人”或“tolltaker的问题(在这种情况下,收费员通常和桥上的喷子差不多)。
因此,与相对开放的平台相比,我们有一个被誉为创新的超封闭环境。到底发生了什么事?
我不确定西格斯先生是否有意让这个特别的话题被过度分析,但如果我在任何事情上“擅长”(在这种情况下,是否擅长是有争议的),那就是过度分析了。系好安全带;开始吧。
第一个真正的问题是,“开放”到底是什么意思?你只需要走几步路,就会一头撞上另一个问题:“为谁开放?”
让我们从“面向开发人员开放”开始。开发人员通常喜欢开放,因为它通常可以被解释为“没有约束”。你可以像你想的那样创新,没有人会强迫你走某条路。
然后是对“顾客”开放的。在这种情况下,客户可以是终端用户,比如购买手机的消费者,也可以是下游开发者,从食物链的更上层购买产品,比如系统集成商获取IP。
后者也不需要约束,但这意味着完全不同的东西。这意味着它们可以即插即用,并以任何组合交换所有不同类型的选项。这意味着他们可以选择各种软件在他们选择的系统上运行。这意味着它们不局限于特定的供应商或硬件风格。
这通常意味着我们需要某种标准,这样,如果你交换两个外围设备或内存或其他东西,它们仍然可以工作。这就是适得其反的地方:对这些人开放的标准代表了对上游开发人员的限制。
如果你在设计存储器,你认为你有一个很棒的想法,可以做一些你的客户(和他们的客户)会喜欢的创新的东西,这可能需要,例如,不同于传统存储器使用的接口。这对你来说是双重的好处,因为不仅你的技术更好地工作,而且,因为你是唯一一个这样做的人,你锁定了你的客户,他们不能去其他地方。
换句话说,你的开放性,或者说做你想做的事的自由,关闭了你的客户同样的自由。
这或多或少就是手机市场的运作方式。是的,有许多不同的品牌和技术在争夺你的青睐。但它们大多互不相容。事实上,它们是如此封闭,以至于你甚至不能保证给定的手机能与你的服务提供商合作:如果你换了服务提供商,你可能不得不买一部全新的手机。那几乎没有打开。
Android在一定程度上缓解了这种情况。与Java一样,它在硬件和应用程序之间插入了一个软件层。现在,为HTC手机编写的应用程序可能无法在iPhone上运行,但却可以在三星手机上运行。因此,一组手机现在看起来更加开放,因为应用程序可以在许多完全不兼容的手机上使用。当然,虽然这使得软件开发人员更容易用一个项目来攻击更大的市场,但它仍然施加了软件必须遵守Android API的约束。
这提供了一个从另一个角度看待开放的机会:“开放在什么水平?”让我们用一些例子从食物链的底部开始。单个组件往往更加封闭。例如,MEMS设备倾向于遵循Yole制定的规则,即每个MEMS设备都有自己的工艺和包(后来又增加了“测试”)。一切都是从零开始,开发需要数年时间。随着MEMS作为一个行业开始爆发,这种情况正在慢慢改变,但它还有很长的路要走。
集成电路的表现稍好一些。与过去相比,IP的互换性更强了,理论上,人们可以选择去哪些代工厂。但是,一旦您承诺使用一个代工,您就或多或少地被锁定了——特别是在激进的节点上——因为设计与代工功能密切相关。切换铸造厂意味着调整设计和旋转一个全新的掩模集,将只在新的铸造厂工作。
其中一个表现是使用“开放”来指PDK文件和TSMC在过去几年中一直致力于的其他技术交换元素。在此之前,每个EDA工具都有自己的方式来获取各种类型的工艺信息,每个代工厂都有不同的方式来提供这些信息——在格式上做文章浪费了大量的工作。
因此,TSMC的“开放”方法为所有EDA工具访问信息提供了统一的方式。但这只是半开:它完全忽视了其他铸造厂的存在。如果它是真正开放的,那么它将是一个允许EDA工具和代工厂完全混合匹配的标准(或约束)。当然,就台积电而言,他们只是有EDA问题;他们没有让竞争对手的生活更轻松的动力。考虑到他们的地位,他们不需要这么做。但事实是,这些格式只是部分开放。
再往上走一层,我们到了站台。例如,你典型的个人电脑将使用英特尔处理器(或设计成像英特尔芯片一样工作的处理器),但系统中的其他一切都可以来自任何数量的供应商。CPU倾向于定义功能,这很简单,因为软件必须编译到该CPU。所有其他差异都可以通过驱动程序处理。(是的,可以肯定的是,写司机需要工作。但它们存在的原因是为了消除软件对硬件的依赖。)
然后我们上升到操作系统级别。这就是事情可以戏剧性地开放的地方。例如,使用Android的手机可能使用不同的cpu。它要求Android本身被移植到这个平台上,但一旦这项工作完成了(“一次”是关键字),那么所有的Android应用程序都应该工作了。Java提供了类似的功能——当然,以性能为代价,覆盖在像Windows这样的操作系统上。
在我们总结之前,我们应该考虑“开放”的另一个含义:我们在短语“开源”中发现的含义。这意味着完全不同的东西;这意味着一个人的创新成果可以被其他人利用,并得到推广和改进。这可能是对“开放”一词最有用的解释,因为它提供了可重用的技术,而不同时应用约束(为了方便起见,忽略了许可问题)。
那么这一切意味着什么呢?实际上,这意味着“开放”这个词很容易被用于任何适合你当前需要的目的。一个人的自由是另一个人的限制,就像在现实生活中一样(你在任何地方吸烟的自由限制了我在任何地方呼吸干净空气的自由——反之亦然)。
如果我们回到我们开始的地方,有一种说法是开放促进了创新。对于开源来说,这可能是真的,但如果我们把它放在一边,我们看到了过去PC世界的创新——随着它作为一项技术的成熟而衰落,我们也看到了在异常封闭的苹果环境中的创新。对开发者的蛮荒式开放可能会减缓市场增长,因为用户会搞不清什么东西适合什么东西,或者不愿意被捆绑到专有技术(这可能非常具有创新性)上。对客户来说,这意味着“关闭”。
所以在某些情况下开放可能是好的。约束在某些情况下可能是好的。你必须选择在哪里应用它们。毫无疑问,在某些情况下,开放可以促进创新。在其他情况下,它可能会碍事。甚至有些东西是否应该被认为是“开放的”也取决于解释。
我认为,通过这种思维练习,我得出的唯一真正的结论是,“开放”(不管这意味着什么)和“创新”之间几乎没有什么实质性的联系。如果你简单地将“开放”的含义局限于销售渠道是否开放(例如,非苹果外设)或关闭(例如,任何苹果产品),那么“开放=创新”的提议就会立即出现。
我们在这里解构了“开放”和“封闭”。你怎么看?你发现开放和创新之间有关联吗?如果有,你对“开放”的定义是什么?