[ @xiaolai ]: Apple告诉我们的铁律是:表面功夫一定要做足。 [ @tinyfool ]: 告诉我们的另外一个铁律是,如果没有底层的OS,硬件,表面功夫怎么做也作不足的,呵呵… [ @virushuo ]: 如果没有osx 就什么都没有了。 [ @liut ]: 说明一个稳健的底层平台有多重要 [ @jeffz_cn ]: 我倒觉得“配合”是关键。要说稳健,Windows不稳健吗?好吧,先不争论这个话题,那么Linux不稳健吗? [ @tinyfool ]: jobs不用linux显然是因为授权,至于windows就不用说了嘛 [ @jeffz_cn ]: 其实Jobs搞个操作系统,明显就是要打造一个封闭/独特的生态环境嘛 [ @tinyfool ]: 我更想说成,jobs知道他需要一个舞台,基础要坚实的,要能面向未来挑战的 [ @jeffz_cn ]: 我能不能说,Job不用Windows也是授权原因…… [ @tinyfool ]: @jeffz_cn 当然不是了,连微软自己都择不出来一个底层,你让人家jobs怎么用?人家只要底层,UI是人家自己的强项 [ @delphij ]: 用了windows它就成戴尔了。。。 [ @hengdm ]: @jeffz_cn 同学,图形界面的Mac OS诞生的时候,小比尔还在搞DOS呢好不好。你觉得苹果有可能想去拿Windows授权,让自己沦为纯硬件制造商跟Dell之流竞争么? [ @jeffz_cn ]: @hengdm 是啊,我说这话是开玩笑的,但是很明显授权也是不可以的,如果jobs真要打造一个独立的生态环境的话。 [ @virushuo ]: @jeffz_cn windows真的不稳健,光api变换就有多频繁?微软每年都宣称自己有革命性的变化。 [ @iceboundrock ]: @virushuo 这个,新功能到底算不算创新或者革命性是一回事,但是有新功能肯定有新API啊,OS X、iphone os不也一样不停的增加&废除API么。 [ @tinyfool ]: 微软甚至不发布api diff,苹果每次都发布的,当然微软要是发布的话,那就是api全文了…… [ @tinyfool ]: 微软是典型的拿着个榔头就满处敲的典型,VC来了api全部c++化,com来了,api全部com化一次,.net来了api全部.net化一次…… [ @iceboundrock ]: @tinyfool 没有全部吧,Windows本身的API一直是C接口,只是有些产品用了C++、COM或者.net的接口。要这么说,OS X一样有这个问题,有些API是C接口,有些是Cocoa的,而且它也弄过一套Carbon的C++ API,Cocoa也有官方的java绑定 [ @delphij ]: 多好啊,给新人写书的机会。。。 [ @tinyfool ]: 那是,不过他们也只能写书了,写好了,技术就过时了 [ @liut ]: 要不说怎么叫“革命”呢?反过来说,很多Unix下的程序和习惯现在都不过时 [ @tinyfool ]: 有些永远也不会过时… [ @delphij ]: 没觉得这是好事。。。我想改个数据结构得考虑一堆问题,包括跟以前的二进制兼容,所以其实大家都想搞抽象和封装,裹到开发人员看不见下面是啥才行。。。 [ @tinyfool ]: 谁管你的苦啊,哈哈哈哈 [ @KevinDai ]: @tinyfool Joel Sposky写过一篇文章《How Microsoft lost API war》 [ @tinyfool ]: 有功夫可以看看 … [ @jeffz_cn ]: 其中心思想就是批评微软过于理想主义,不够现实,例如api的兼容性方面 [ @jeffz_cn ]: @virushuo 还好还好,.net已经快10年没有变化了,win32 api也只是发布新的接口而已,所以我一直没能亲身体会大家说得这些变化,嘿嘿。 [ @tinyfool ]: 仅因为这些变化就不知道害死了多少公司… [ @jeffz_cn ]: @tinyfool 你们啊,既然是不搞.net滴,不知道这些莫名其妙的看法是哪里来的啊……要知道.net/vs养活了多少第三方组件供应商,他们可都是好好的,一代又一代,爽快得很。 [ @tinyfool ]: 你哪里知道宝蓝是怎么死的,当年中国一堆公司是怎么死的,中国人97年前后的软件强国梦是怎么死的 [ @delphij ]: 宝兰让人家挖走三任CTO,我觉得这事可怜但它自己也可恨。跟不上变化的公司一定要灭亡的,这是一个快鱼吃慢鱼的时代。 [ @tinyfool ]: 宝蓝傻屄的地方很多,最傻屄的一点就是不懈的跟着微软走,直到死… [ @jeffz_cn ]: @tinyfool 好吧,十几年前的时候得问题,叨念到现在也够了吧……还有,其实我看过 Borland传奇的,要说倒在微软的革命下的公司,怎么也算不到宝蓝,它是无比坚挺的。宝蓝倒掉的原因有许多,如果没原因Anders等人也不投靠微软至今了。 [ @tinyfool ]: 对你们是十几年前,对我们来说就是我们的成长历程。如果一个人骗你一次,我建议你宽容,两次你宽容就是太宽厚,三次,你也在犯罪。我也算是犯过罪的,唉,当然谁也没有宝兰罪孽深重了。现在的微软程序员也许理解不了,97年前的时候,没几个人觉得微软算的上一个平台厂商,宝兰是微软上位的元凶之一。微软如果没那么轻松上位,现在的业态是完全不一样的。当年金山、希望、四通利方,都像做大平台的。他们的愚蠢是一方面,唉,又往血泪史和万言书方向走了,我去炒菜了,吵架你们来吧,哈哈 [ @jeffz_cn ]: 看来近N年的微软程序员真幸福,遇到了投靠微软的大好时机了…… [ @tinyfool ]: 我早说了,现在才几年的平稳期,你看到dos到win95间有多长。 [ @jeffz_cn ]: @tinyfool 我也说了啊,少算7年,多算8年,这也够稳定了吧。而且到现在没有任何革命的新迹象,如果你关注微软的新技术,incubation,你会发现都是围绕.net平台开展的——也就是说,微软其实把未来5-10年赌在.net上。用道奈特,放心吧,呵呵。 [ @tinyfool ]: @jeffz_cn 对啊,我有提一句.net出现以后么?出现以后,我就不跟他玩了,我不care了。 [ @jeffz_cn ]: @tinyfool 是啊,所以我也没说以前微软做的有多好,我不了解,没法评价。只是我觉得现在我对.net方面还是了解很多的,对于你们用十多年前微软的问题来指责微软的现状表示不平,于是解释几句,呵呵。 [ @tinyfool ]: 其实 @jeffz_cn 你不懂,我们就是帮被微软强奸过的老妇,我们喊着被强奸过。你告诉我们这两年没强奸过了,关我们鸟事?好心的会说,赵姐夫你小心,回头别也被强奸的。我才不操那心呢,你运气好,不被我当然高兴;你要是运气不好的话,你能想象我多么高兴吧? [ @jeffz_cn ]: @tinyfool 其实我懂你的意思,也能理解你的想法,如果我经历你那一段,说不定看法也会和你差不多了。其实我的说法也类似于:土匪已经被招安了,不会强奸人了。但是,被强奸过的人一辈子无法原谅土匪,这也是可以理解的。 [ @virushuo ]: @jeffz_cn .net 哪年发布的第一个版本?10年没变不可能的。2003年才算正式推出吧。 [ @iceboundrock ]: @virushuo 确实没有10年,2001年开始大规模的进行公开beta测试,2002年初发布1.0,2003年发布了1.1。 [ @virushuo ]: @jeffz_cn 02年的话也应该是年底了 [ @jeffz_cn ]: @virushuo 01年开始造势,02年正式发布,到现在8年吧,10年是说长了。 [ @jeffz_cn ]: 对了,哪位可以谈谈自从02年.net平台出现以后,微软有哪些革命,哪些不兼容的api更新,哪些搞.net的组件厂商因为革命倒掉了……我是真不知道啊。我其实是从那时一路走来的,真没切身感受。社区倒经常说更新快,但真没听说不兼容的——微软还写了一本书讲API设计,兼容性是其中重要部分 [ @tinyfool ]: @jeffz_cn 02年以后到现在才几年,从pc dos1.0到windows有多少年的稳定期?等到.net的厂商都死绝了,我倒是不用跟你讨论这个问题了,呵呵 [ @jeffz_cn ]: @tinyfool 少算一点7年半,多算一点8年。我不是说微软没有在十多年前革命太多,不过以此继续来批评微软近7-8年的技术更新,我除了说这时FUD找不到其他答案了阿。 [ @virushuo ]: 微软的故事:ole2的资料现在估计都找不到了,不知道有多少人还知道之前的DDE,之后的com到现在可能都没多少人明白。然后就是.net。.net之后还有2.0...后面我就懒得看了。 [ @jeffz_cn ]: @virushuo .net 2.0完全兼容1.0,从运行时到类库。.net 4.0也完全兼容.net 2.0,如果连这个都算是问题,那还让不让人发展了…… [ @virushuo ]: @jeffz_cn 后面的我真的不知道。不过,现在你们说的.net和2003年微软说的.net可完全不是一个东西。03年微软说的是VC6从此作废,windows以后只能运行托管代码。MFC和api都退出历史舞台了。所以我决定让微软退出我个人的舞台。 [ @jeffz_cn ]: @virushuo 那是微软的造势,微软的炒作,说得更实际点是微软的目标……当然这个目标我也从来没有当真过…… [ @virushuo ]: @jeffz_cn 我不知道你们现在以什么为核心。当年的核心技术可是webservice和soap。 [ @jeffz_cn ]: @virushuo 不是核心技术,只是说对这方面(分布式,不过不用DCOM用标准了)有很好的支持而已。要说核心,怎么可能把一个运行时构建在WS和SOAP上呢,Java和.NET其实说到底完全是一个概念的事情。 [ @virushuo ]: @jeffz_cn 当年可不是这么说的来着。但是现在已经找不到什么当年的宣传资料了。当年还说WINDOWS内核要CLR化,这现在也没实现吧?当年说longhorn要完全使用CLR... [ @jeffz_cn ]: @virushuo 炒作,炒作……其实这些都是1.0时期的炒作了,.net 2.0时微软自己也不炒作这些了,炒作别的了,比如winfs啥的。可惜jim gray一失踪,没人搞得定这东西了…… [ @virushuo ]: @jeffz_cn winfs跳票了好多年,在jim gray失踪之前已经跳票了至少2年了.....这些东西不能叫炒作,那是微软当年认真走的技术方向,只不过没走下去而已。当年所有的技术准备都是那样的,结果又害死了一票人。 [ @jeffz_cn ]: @virushuo 好吧,还好微软没有把它们搞出来,推广以后再废掉…… [ @virushuo ]: @jeffz_cn 这还真是最近5年微软的进步了。1995~2005都是推广之后废掉的。幸亏现在平台控制力在下降,不然他们还敢那么干。 [ @virushuo ]: win32api,然后unicode,后面都加个A。然后VC来了,弄了一堆宏和模板,然后.net来了,说MFC不要了,api也不要了,都换成.net了。vc.net和vc++除了名字相同,别的都没关系了。vb.net和vb也一样... [ @virushuo ]: 这些变化没什么大不了的。软件公司也没有什么搞不定的。后果是程序员很少有积累,水平高的没几个,了不起也就是把微软那套东西弄明白了,别的东西一概不知。 [ @jeffz_cn ]: @virushuo 这是一个问题,微软把东西作的都太方便,让人不思进取。所以我一直鼓励.net程序员去多了解点windows平台以外的东西——我会说:到时候你懂得东西就比那些不屑Windows的人还要多,嘿嘿。其实,从互联网上都可以意识到,高级的.net程序员都是不封闭的。 [ @virushuo ]: @jeffz_cn 那根本不是太方便的问题。.net从来没比delphi方便过。只不过用平台把对方压死了 [ @jeffz_cn ]: @virushuo 我没说.net是因为太方便所以压过delphi,我只是说微软把东西搞得太方便,所以让.net程序员不思进取。但是把门槛搞低,这真是错误的做法吗?这也是我很头大的方面。 [ @virushuo ]: @jeffz_cn 我的意思是,.net从来没有比其他工具方便过。但是靠平台压制,windows平台上没有其他竞争者了。这才是不思进取的原因。也是windows软件平均质量偏低的原因。 [ @jeffz_cn ]: @virushuo 那是有可能,.net平台基本上还是微软一家独大的,几乎没有竞争者。不过微软在易用性方便的确也投入很多,毕竟平台间的竞争是依旧存在的。 [ @virushuo ]: @jeffz_cn 我还真没觉得windows有易用性可言,尤其是在mac面前。 [ @jeffz_cn ]: @virushuo 我们不是在讨论操作系统的易用性吧,现在难道不是一直在讨论开发平台么…… [ @virushuo ]: @jeffz_cn 对啊。。。你说微软在易用性方面投入很多。。。但是我实在没看到这种投入有什么效果。唯一的效果大概是,作为2000之后没用过win的用户,现在给我vista的时候,我根本不敢碰... [ @jeffz_cn ]: @virushuo 我没用过mac,所以对易用性到真没啥感觉,这次要好好体会一下了,呵呵。微软其实在易用性和创新上投入很多,所以现在社区主要的抱怨主要是跟新太快,学不过来。 [ @virushuo ]: @jeffz_cn 为什么没有听说过unix程序员或是mac程序员抱怨学不过来呢? [ @jeffz_cn ]: @virushuo 因为unix程序员门槛高,微软门槛低,结果xxoo的程序员都被过滤到微软平台上来了。其实如果你关注一下微软社区,高手们从来不担心这些的,每次有新手出来抱怨都会有许多人出来苦口婆心一把…… [ @delphij ]: 其实unix门槛低,只不过几年前不太好找资料和工作,现在已经没法看用什么来判断一个人了 [ @jeffz_cn ]: @delphij 其实微软的确还是低的,君不见无数程序员嗷嗷待哺,就等微软出一些好的设计器,而“配套工具”几乎也是微软推广某个技术的必要条件了…… [ @virushuo ]: @jeffz_cn 我当年挺关心的,似乎也没见谁不操心这个。至少我就挺操心的。VC6废了,我之前7,8年都浪费了。 [ @jeffz_cn ]: @virushuo 还好啦,废掉的只是VC工具而已,你不是很轻易的就切换到unix上了嘛,技术是相通的,这句话不假。所以我其实一直觉得就算微软倒了我也不怕,我很快去搞Java,Ruby,Python,Unix…… [ @virushuo ]: @jeffz_cn 很少的人可以这样切换。对于公司来说,前面的投资都浪费了。那才是致命的。 [ @jeffz_cn ]: @virushuo 喔,公司的投资倒的确是的…… [ @virushuo ]: @jeffz_cn 另外,我不觉得我个人的切换轻松,至于我在unix上的熟悉程度仍然比不上当年我在windows上。不过整体水平提高了,分析和解决问题的能力比当年强了。 [ @virushuo ]: 微软有几个创造还是不错的。比如 event-base的开发模式(当年unix程序员嘲笑完成端口来着,认为阻塞模式才是最好的),比如xmlhttp,这是ajax的基础....不过似乎这些真正好的创造,微软自己也没太当回事... [ @jeffz_cn ]: @virushuo 其实微软的东西是很有技术含量的,所以业界各种技术交流从来不缺微软的身影。但是微软的一个特点,就是要把什么东西都搞成最简单的模式,搞得似乎不用学就能搞,结果搞着搞着开发人员就废掉了。所以,搞微软技术不能跟着微软单单听它宣传,这是个大道理。 [ @virushuo ]: 微软的折腾影响深远。比如工业和楼宇控制的标准之一 OPC是基于com/dcom的。这东西应用太广泛了,主流厂商比如西门子,都支持这个。后来微软说不玩com了,玩.net了。可怜那天文数字的生产线和智能建筑,别说继续开发,维护都找不到人了。 [ @iceboundrock ]: @virushuo 也不至于吧,我还在为糊口天天折腾ATL。微软自己的产品还有很大一坨是基于COM的,比如DirectX、Office。 [ @virushuo ]: 控制设备是从DDE/OLE这样一路走下来的,到了com,厂商们认为结束了,就搞了个联盟,形成OPC协议,大家遵守。没想到这就跟中国股市暴跌一样,猜的中开头,猜不中哪是底。现在看来OPC协议真是糟糕的没法说。可惜应用太广泛了,不知道以后怎么办。 [ @gorush ]: @virushuo 只用到OPC DA 2.x, 估计也是国内目前项目应用最广泛的标准了, 推荐 #OpenOPC 这个模块用起来很顺手,参见 http://www.opcconnect.com [ @gorush ]: @virushuo OPC 基金会早就考虑摆脱对MS的依赖了, 从AE,HDA一路走到了UA, 无奈成也萧何, 败也萧何, 但是OPC依仗那么广泛的工业应用会长久存在下去. 以后就是开发商和客户一起跟着升级吧. 标准只要开放,一切都好说。 [ @virushuo ]: 这是个痛苦的过程 [ @virushuo ]: @tallrain OPC因为继承了dcom复杂的验证体系,导致用起来也不稳定。某一台机器莫名其妙就会出权限问题。用户很难自己维护的了,最后还要开发人员去搞定。相当噩梦。 [ @virushuo ]: 我是02年做这些,很多设备连opc都不支持,我写了好多转换器 [ @gorush ]: @virushuo 你比我早了好多年,我不是做开发的,只是有机会接触到OPC标准。用OpenOPC来操作IO模块。