2007年4月24日

孤独终止的地方,就是广场开始的地方......


今天早上上班前,发表了一篇文章“不要奢望.NET能够跨平台”,主要观点是:
1、.NET是Windows API的高级版,跨平台是一个笑话。
2、.NET很多类库在设计上存在问题。

此文引发众多评论,回复者以小白居多。其中有一无聊好事者 "俺的儿是·刘",针锋相对,写了一篇“也说《不要奢望.NET能够跨平台》”。

偶非佛教徒,八风不动非我作风。偶是查拉图斯特拉的追随者,态度是嚣张滴,目的是邪恶滴!

小白的评论偶就懒得理啦,对那个"俺的儿是·刘",则需要教训几句,让小孩子懂得长幼有序。

你评上了MVP,也不用如此为.NET辩护吧,如果只从你的博客上来看,你的技术面还应该很窄,深度也不够,当了MVP也不能说明你什么,也许你还有没有表现出来的方面,至少看起来如此。按分类,你还属于那种刚学写程序的小孩。

至于你骂粗口,虽然不好,我不是你的家长,就不教你了。

注:
1、标题来自《查拉图斯特拉如是说》第一部分的“论广场的苍蝇”

posted @ 2007-04-24 20:12 温少 阅读(1325) 评论(58) 编辑

不要奢望.NET能够跨平台


有人跟我说了这么一件事。他们公司做机顶盒开发,原来是Windows XP + .NET作的,但是由于机顶盒免费赠送给客户的,而一个Windows XP需要88美金,因此成本翻倍。公司高层最终不愿意花这一笔钱,就迁移在Linux是用Mono重新实现一遍所有的功能,但是在开发过程中遇到了种种问题,频繁出现死机现象。

我听了觉得十分好笑,竟然有人还把.NET能够跨平台当真一回事,可谓智商无下限!

微软的.NET只有很小一部分提交给了ECMA,而其他部分的API,你可以认为是Windows API高级版。而且微软把.NET当作Windows API高级版的意图也越来越明显。

例如线程方面吧,System.Threading命名空间下的AutoResetEvent、ManualResetEvent、Overlapped等等,都只是Windows API的封装而已。Java的线程框架是自成体系,而.NET不是。

微软的资源也不是无限的,微软也应付不了整个类库的重新设计。语言规范、虚拟机作得十分优秀,但是应用层类库,很多部分,都出现了一些问题,简单封装Windows API,缺乏设计,包括System.Security.Cryptography、System.Net等部分。

.NET就如同当年的MFC一样,很多类库都是Windows API的封装,不是自成体系的框架,不了解Windows API,就不大可能会使用,同时,要移植到其他平台上,也是极其艰巨的任务,除非你能够在其他平台下实现了一套Windows API。

Novell公司的Mono是一个笑话。把.NET迁移到Linux下,就如同要把MFC迁移到Linux下一样可笑。

posted @ 2007-04-24 02:45 温少 阅读(21086) 评论(112) 编辑