MS

概述

微软公司,是优秀的技术托拉斯,成功的商人,有着最优秀的科学家和开发人员,可否记得MFC/ATL带给你的喜悦,可否记得DirectX,很多与计算同起同休的故事,都是跟Microsoft紧密关联的,可以说对于Windows平台而言,软件设计人员的荣耀都是跟Microsoft的战略联系在一起的。微软的传奇之处在,当你看到一款产品时,你认为他是一个应用产品,但是最后,微软总能让他成为战略平台,像Office、SharePoint和Visual Studio 等等。

即便在众多公司竞争愈演愈烈的今天,我从来都没有忘记windows所带来的快乐,和Windows平台所创造的可能性。世界从来都是发展的,说到底,技术也是产品。通常意义上的软件设计,是为最终用户设计产品,只要用户满意,软件就能存活;为软件设计人员设计的产品,生产者是平台销售商(像微软、SUN等等),消费者是开发人员。微软公司已经从竞争对手那里学到很多,IBM这些年一直在不停的大把捞钱,居然放弃了自己的PC事业,这足见Money的巨大魅力。对微软而言,微软公司一直从Windows销售、Office销售以及开发工具和服务其产品的销售赚够了钱。这些年,技术公司的收益更多的来自最终客户,这是时代的转变。Google这样的公司,取悦开发者的目的是为了更多的吸引最终客户,虽然单一客户给Google带来受益较少,但是从互联网广泛的客户和市场Google赚够了钱,不用生产信息,只需要收集和顾虑便可,这就是Google的产品,与其说Google是广告中介商,不如说Google将信息发布者变相买给了信息获取者;像IBM这样的公司,关心的是如何吸引大客户,如何从哪些关心事务、逻辑以及自身业务的大公司捞钱;微软关心的是如何维护生态圈,如何适应新潮流,这需要成本,并且通常只能获取间接收益,现在微软公司明显增加了最终客户的比重,更多的制作政府和企业应用软件,那是极富有前景的。过去的辉煌会积累丰富的基础,但是也成为前景的阻力。生产软件,关注客户,这就是生存之道。

第一批.Net书赫然写着:“微软公司为你未来十年做好了准备……“,完全没错,微软公司为自己也为生态圈做了十年准备,并且每年都有新十年计划。

从Windows DNA战略,到Windows .Net战略,到现在或者是未来的云战略,我们不可能驳斥Microsoft的道路,因为需求所产是的改变和革新是不能阻挡的,Microsoft是正确的,那只是微软,你得到了什么,你应该如何做,如何能适应微软的战略蓝图,还能做好自己的那部分。我一直觉得,如果想要理解微软的策略,我们需要从两头考虑,架构师心目中的微软方案和程序员心目中的微软技术。微软技术是根据用户需求改进的,或者说更多的,微软是由竞争对手所提出的技术方案,确定自己应该如何改进技术战略,微软很少创造什么新思想,最后,却能将新思想表现的淋漓尽致,让她根据时代的发展演变和延续。架构师心目中的微软方案,很明显,是根据战略需要不时改进自己的技术战略,非常平滑,微软高层的视野依然很清晰,10年都就想到的,就知道的,就做到的,今天她做她该做的,她发现,表达不够优美,应用不够广泛,这是程序员视野中技术改进的源动力。至于设计师,那么就是根据两头发挥调节作用,对上提供可能性,对下保证可能性。微软公司从来都没有忘记产品,技术框架就是她们的产品。

我看到有人为Restfull争论,因为表达方式就指着框架的优劣,有些太过火。如果微软有,用就好;没有,要么等,要么创造;尽最大努力发挥创造力,才是目标。

看待产品,请关注时间段,拿一个已经用了十几年的方案、技术和最进几年的新实现相比,显然,老方法不够优美,然后因此说他失败的也太荒唐了,旧产品已经完成了自己的使命,曾经胜出竞争对手就是成功,今天的战争是后来者的故事。典型例子很多, COM/COM+/DCOM、内核结构,关于微软的基础架构优劣的问题总有说不完的话题,我表示中立,这些产品在历史赢得客户、软件生产商、硬件生产商的支持,取得了成功,那么她就是成功的,今天新竞争要用新产品。看待技术,我们过于偏执,忽略了驱动力,技术只是为了生产产品,技术本身就是不断改进的产品。

除了微软之外,世界上还有很多成功的产品:gnu、apache、php、perl、linux、oracle、firefox、safaric、ruby、python、ruby on rails、Novell等等很多,关于这些产品的争论很多,有些没有必要,对微软市场也许很有必要,但是对我们没有必要。软件设计者要足够谦逊,抬头做人,低头做事,关注产品。为争论浪费时间显然不是蜜蜂族的特征,嘿嘿:)

我想Perl、python和ruby程序员可能都不会花时间做长时间的争论,因为他们的方案从全局看起来似乎不够完整,但是,不是所有的客户都要求面技术面面俱到,迎合需求,做好自己该做的事情,发挥创造力,这就是成功的设计者,也是过的最好的人。

参见

使用Mono平台前,请牢记产品观点| 分清“语言/规范”以及“平台/实现”,以及跨平台.NET开发|

How to Map Skydrive as Network Drive in Windows| SkyDrive Simple Viewer|

SkyDrive Explorer 1.4 for Microsoft® Windows|