软件随想录(local.joelonsoftware.com/wiki)-2000年07月22日 微软疯了 - Microsoft Goes Bonkers

2000年07月22日 微软疯了 - Microsoft Goes Bonkers

 

The Joel on Software Translation Project:微软疯了

From The Joel on Software Translation Project

Contents

[hide]

微软疯了

作者:周思博 (Joel Spolsky)
译:Paul May 梅普华
Saturday, July 22, 2000
属于Joel on Software, http://www.joelonsoftware.com

微软最新声明的产品Microsoft .NET被财星杂志之流誉为巨大的「变革」,不过实际上只是个泡沫软件,而我认为这证明了Redmond有些事错得很严重。

利用泡沫软件可以承诺各式各样你根本不能卖的功能和产品,因为实际上这些东西你都没有。不过.NET比泡沫软件更糟。以微软那种漠不关心的高傲态度来看,他们根本连泡沫本身都懒得提供。

仔细看看这份白皮书就会发现,在整场闹剧中 .NET只是一团恐惧和不确定以及怀疑的疑云。里头没有內容。你可以尽量去挖,可是整份白皮书什么都没说。于是你抓得愈用力,从指缝间漏掉的东西愈多。

我并不是说.NET里面没有东西。我是说里头什么都没有

看看这些敘述:

所有人都相信Web将会演进,不过要真正落实到开发人员和企业以及消费者,还需要一个基础的新愿景。微软的目标就是提供这个愿景以及实现愿景的科技 [摘录自「微软.NET:实现新世代」,2000六月]。

这个又如何:

微软.NET愿景意味把权力落实到消费者、企业、软件开发人员以及整个业界。它释放Internet的所有潜能。它是照你想的方式运转的的web。 [Ibid]

这里头究竟怎么回事?整份白皮书里找不到一个能在软件产品里实际执行的想法。微软并不是提供功能列表,而是列出一串如下的无形「好处」:

网站成为可互动、交易并能运用彼此资料的灵活服务。 [Ibid]

这就是这个振奋.NET架构的「功能」之一。它实在是太空泛而且高高在上,根本不能表示任何东西。不过这个事实似乎没有对任何人构成困扰。再来看看这个:

微软.NET提供了寻找服务和人并与其互动的可能性。 [Ibid]

噢,真好笑!Altavista出来已经五年,而Larry Page和Sergei Brin发明一个先进许多的搜寻引擎也有两年了,微软还在假装没有方法搜寻Internet,而他们要替我们解决这个问题。整份文件都是这种东西。

这里有两件事。微软有些很伟大的思想家。当伟大的思想家考虑问题时会开始看出模式。他们看到人们要传送文书处理文件给别人,又看到人们要传送试算表给别人,然后就会发现里面有一个通用的模式:传送文件。这已经是一层的抽象。然后他们会再上一层:人们传送文件,不过网页浏览器也会「传送」网页要求啊。这些全都是传送的动作,所以我们聪明的思想家就发明了一种更新更广义的新抽象概念:「讯息传送(messaging)」,不过现在这件事变得愈来愈神秘,再也没人真的懂他们在说些什么。

而当你一直往上把事情弄得太抽象,就会像上太空一样没有氧气。有时候这些聪明的思想家就是停不下来,然后就创造出这些荒唐又无所不包的高层次宇宙景像,这些东西什么都好,就是完全没有实际的意义。

而这似乎就是这里所发生的事。

下一世代的Windows桌面平台Windows.NET支持生产力、创造力、管理、娱乐以及更多更多,并设计让使用者掌控他们的数位生活。 [Ibid]

这种说词实在太抽象了,根本无法批评。谁会不要一个支持生产力的操作系统呢?真是伟大的功能!请给我一套这种有生产力功能的新神奇操作系统吧!问题是微软要怎么达成呢?软件界20年来的生产力改善都是渐进累积的。难道他们发现一种能让他们的操作系统更具生产力的新化合物吗?我不认为他们有这种东西。我认为他们在吹牛。都是恐惧、不确定、怀疑,以及泡沫软件。

让人害怕的是他们是认真的

我在微软工作过三年,了解这家公司。我了解写这份文件的那种人。几乎可以确定比而盖茨在里头占了很重要的角色;这也是他放弃CEO位置的原因,这样才能参与这件事。我不认为微软写这份文件只是为了拥有一些泡沫软件。他们可都是超级聪明。

我真的认为他们认真地以为自己正在创造未来,而且也自认知道怎么做到。他们审视由Hotmail到SQL Server每一个微软的产品,尝试把这些产品套入一个奔放的新愿景中。不过问题是里面并没有人真的发明什么惊天动地的东西。这并没什么好惊讶的,不是因为微软笨,他们并不笨,只是惊天地动的新发明太罕见了而微软的聪明人数有限。全世界只有一个人发明Napster,而他并不在微软做事。微软自暴自弃地想相信自己能量产革新,不过即使在这个Internet的寒武纪大爆发期,每年还是只会出现几个真正革命性的想法,而这些点子之一出现在比而盖茨小世界和Redmond武士团的机会实在是太小了。何况一个相当聪明的程序员可能在微软里写Windows NT的显示驱动程序,他即使有很伟大的点子可能也没有人会听倒。考虑到这种状况后微软想出绝世好点子的机会就更小了。

这份白皮书里唯一看清的具体內容,就是软件应该是一种经由Internet取得的订阅服务,而不是由光碟安装的某种东西。

对一个客户来说,本来由光碟安装的文书处理器改由Internet取得可能只有少许的益处,不,可能根本没有好处。这些做并没有实际解决任何客户的问题。可以透过Internet修正问题?真伟大。不过我已经可以做到了。七年前起我就已经在网络上下载微软产品的修正档了,而且现在都是自动进行的。取得新版本?如果新版本的唯一功用就是更容易取得新版本,这有什么意义!最新的三版Word几乎没有增任何一个新功能,真要说有的话就是做了些奇怪的事,让图片的定位比较「容易」,结果我根本没办法把图移到想要的位置。

事实是过去1991年时微软注意到升级使他们的收益成长。由于很难强逼大家升级,于是他们努力了几近十年,试图让客户同意用订阅方式购买软件。不过这是行不通的,因为客户并不想要这种模式,这只是满足微软替一万名程序员安排未来十年工作的需要罢了。我们都知道,他们想出一个大家都要的文书处理功能已经是很久之前的事了,没有好点子的话这些程序员要做什么呢?

「愿景空话」的好处

有个老笑话:有个男的去看精神科医生。医生要他看一张鸟的照片并问他:「这会让你联想到什么?」男人回答:「性。」医生拿一张树的照片再问:「很好,那么会让你联想到什么?」男人回答「性」。换火车照片,还是「性」。房子,也是「性」

「我的天啊!」医生说:「你满脑子都是性!」

满脑子都是性!?」男人说:「是你一直拿色情照片给我看耶!」

你看,像.NET白皮书这种空乏文件的好处在于它就像某种罗夏克测验(Rorschach Test)。大家都带著预设立场来读文件,由于这份文件如此的含糊不清,所以大家就认为微软在覆述他们的想法。UserLand software的总裁Dave Winer对软件有很多有趣而创新的想法。当他读到微软.NET相关的文章时,他认为微软终于认清楚他讲了两年的想法。Dave,你太瞧得起他们了。他们跟你比起来实在太无知了。他们是在玩心灵电话热线和报纸占星术的把戏:讲些无意义模糊的泛泛之词,让你落入陷阱误认为他们能感应你的想法。「今天行星连成一直线,表示你向自己的目标前进了一大步。」其中的差异在于Dave有真实明确的想法可以转换成真的软件,而微软还停在六年前喊著Cairo会提供「指尖上的资讯」那个奇幻世界,而当初那个愿景却是由Internet而非Cairo所达成的。

所以只能希望这一切无意义的废话真能让某人的创意继续前进(就像UserLand那样),然后导致某些真正的创新。不过这些创新比较可能出现在微软外面而不是內部。

后记:「可是等一下,」你说:「我.NET SDK啊!」

这篇文章一出来,就有很多人写来告诉我他们有.NET SDK这并不是泡沫!这是「真的」!

好吧,嗯哼,是。里面有什么呢?有SOAP这个基本上是Dave Winer依据XmlRpc创出的技术,后者我本人大概两年前就用在Juno的登入程序里了。微软玩这种游戏有点晚了。还有个叫C#的程序语言,这只是微软的一种表示方式,表示他们如果不能控制Java,就要回家玩他们自己的玩具。另外还有新版的ADO和ASP以及其他东西...都是好东西,不过只是渐进式的改进。财星杂志注意了,这里头并没有革命性的內容。即使微软的行销人员没有拼命推销,反正我们还是会拿到这些东西的,而且没有人会假装这是某种水平线那头的电脑天堂。

这就是微软的作法:每个产品都有一个产品团队,每个团队每隔一两年就要推出新版本的软件。就是这样而已。先生太太们,我们这里有的只是一个纯粹的行销团队,他们到处看看所有快要出来的新版本,决定需要一个「主题」让微软看起来像个革命性的大创新者,于是命令大家把下一版的东西叫".NET"。当你在微软这样的地方工作,没有什么事比行销人员接管一切更让人沮丧了:看看微软內部人员对我这篇文章的回应

这些网页的內容为表达个人意见。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值