喜大普奔,微软开源
名词解释——喜大普奔:喜闻乐见,大快人心,普天同庆,奔走相告。总之《微软宣布.NET开发环境开源》是个好消息。
前言及历史回顾
就我个人来说,这十来年都对微软没什么好感,折腾.net的经验也已经是至少12年前的事情了,距离上一次吐槽.net也已经过去快十年(2005年)了,之后根本都懒得谈它,但是这一次不同,开源终归是一件好事——虽然基本也是与我无关。
但既然开始了这篇扯淡,总还是要扯下去的,谈点个人看法。
simp主席说得是,微软来晚了,现在就算是开源,原来搞.net的也还是继续搞,原来搞java的估计也不会换。令狐虫说在这事里获利最大的应该是mono。这些我都赞同。
总之这是件好事,不论是对开源世界还是对我们这些开发者来说,也不论是.net开发者,还是java或其它什么的开发者,都是好事。
我想谈的是技术细节之外的事,而且其中主要是我个人的猜测。
首先是微软为什么作出这样的决定?
我 想很重要的原因是世界的发展并没有能够如当初微软预期的那样发展,不论是外部世界还是微软内部——所谓的内部当然不是说我有什么内幕消息,而是因为其自身 的原因不能达到目的而已。举例来说,我在12年前吐槽.net的那些内容,现在看来是相当的naive,但是其中也的确有一部分被我说中了,三年之后的 Vista并没有实现微软当初的承诺,全面.net化,引发了一次影响颇大的.net信任危机。
当然之后.net发展开始变得更加务实,实现了一些踏踏实实的东西,比如C++/CLI,比如接近原生代码的CLR性能,这都是很好的。当然也有像Silverlight这种东西我就很不看好,这些年来的事实也证明,市场也并不那么接受。
从那以后桌面应用开始越来越多地有了一些基于.net的产品,同样,我们也可以看到有越来越多的Windows电脑里出现了N个版本的.net Framework——不要在意这些细节。而在服务器端,.net可能更成功一些,基于ASP.net的网站还是挺不少的。
但是问题在于桌面的世界发生了变化,浏览器开始占据桌面的最主要位置——而且还不是IE……
另一方面,苹果的再次崛起横扫了移动端,.net在其中完全没有任何位置。而异军突起的Android则给年老的java以新的青春,.net又没有份。等微软把WinPhone搞出来,开发人员的焦点都已经在ObjC和Java上了。
这里的关键我觉得在微软的战略上。微软的商业利益在于桌面,而桌面的核心在于Windows,所以一切的一切都必须围绕Windows。但事情坏就坏在这里。
我 不喜欢Windows已经很多年,属于个人好恶。早在十年前我黑Windows,涌过来的喷子不要太多,无非是有本事你不要用Windows,用着盗版的 Windows还JJYY之类。还好我很早就改用正版的windows,而且不久之后就不用Windows了。即使到了七八年前,中文互联网上还是这样的 环境。但是现在,这样的人已经很少见了,就算跳出来也是被人当笑话来看。现在的程序员标配个个都是Mac……
不可否认Windows是一个 很好的桌面系统,在很多时候就是最好的桌面系统。但仅此而已,它不可能是最好的操作系统,尤其是服务端或移动端。所以我们还需要Unix/Linux /MacOSX/iOS/Android之类。当微软固执地要把一切都围绕在Windows上的时候,杯具就已经注定了。
我前些年吐槽过很多Windows的不好,理由我已经不想再说了。连带被吐槽的还有IIS,虽然据说现在这货好了很多,但我仍然没有兴趣。至于MSSQL和.net这种我觉得有其长处的东西,也因为受限于Windows而最终不被我看好。
于是,当整个市场从桌面转向web和移动端的时候,Windows忽然变得不重要了,这些依附于Windows的东西也都受到了影响——即使它们可能的确不错。
现在,.net宣布开源并将支持其它平台意味着什么?
我觉得至少意味着连微软都认为桌面的时代已经终结了,至少是没有前途了——这并不表示桌面市场就死了,还是有非常大的历史遗留市场存在,而且还将存在很多年。但是,重点在于——没有前途!
不过这只是对一部分人来说是坏事——就是那些技术视界狭窄的开发人员,那些只懂Windows平台的IDE操作工,虽然他们还是可以继续在历史遗留市场里生活很久,而且可能生活得不错。但是,重点在于——没有前途!
但对于另一部分人则是好事——就是那些眼界开阔的开发者,即使他之前也主要是用.net,但是他们研究过mono的代码,对其它平台有一定了解甚至熟悉,做过服务端的开发,他们将有希望借此走向一个更大的世界。
未来将会如何?
当然主要还是看微软了,开源这事并不是说把源码丢出来就完事了,后续的社区建设和发展才是主要的。
当年Borland不也把Interbase 6.0开源出来,结果却只是丢出源码而已,后来又不继续了。开源社区只好基于Interbase 6.0搞了Firebird,但是因为没有商业公司的支持,至今发展不大,浪费了一个挺好的RDBMS。
所以,微软准备向.net开源社区投入多大才是重点。单是向其它平台移植就是个大工程,光凭社区的力量不是做不到,但是时间会很长,市场不等人。这事需要微软的推动。
虽 然mono问世已经很多年,但是我觉得它还远未达到可以生产应用的程度。我以前用Ubuntu的时候用了一个mono开发的程序,性能和效果都不错,就是 稳定性不行,常常莫名其妙就程序崩溃,需要手工重启这个程序。当然现在换了LinuxMint,也就没再用这个,不知道现在有没有好些。
还 有IDE的问题,VS是好,但是只能用于Windows平台,虽然说在Windows上开发好以后放到别的平台上编译发布也是可以的,但终归不那么方便, 而且对于我们这些已经习惯用MacOSX或Linux桌面的开发者来说,专门为VS装一个Windows也是不太乐意的。当然,也应该会有第三方的IDE 出现,问题是:时间要多久?而且未必有VS好用。
然后是微软准备怎么利用开源后的.net?似乎也没有什么明确的方向,这对于吸引开发者来说是一个阻碍。
总之还是师母已呆……
推送到[go4pro.org]