看了这么多的书评,鲜有人说不好的.不知道是真的倾慕.net技术,还是所谓的人云亦云.看完这本书,我也有点感触,向来很少说话的我,真有不吐不快的感觉.
作者鼎鼎大名,〈〈windows核心编程〉〉确实写得很好,揭示了很多windows的内部机制,这在windows没有开源的情况下实属难能可贵,但在本书中,似乎有给.net做广告的嫌疑,太多的溢美之词,不禁让人有王婆卖瓜的感觉(他是.net的技术顾问,确实算是个.net资深人士)
再来说说.net本身,我不知道所谓的.net平台是什么意思.仅仅是各种语言的互操作?这似乎够不上平台的概念.简单来说,.net只是将大部分的语言编译成中间代码的形式,以CLR做中间件,这其中互操作很容易实现,因为大部分的语言在这种情况下都是和CLR交互.只是相当于提供了一种二进制标准而已(com的基本原理),至于基本类库FCL,也只限于类库而已。从这方面来看,与java没什么不同,而且好多都是从java演变而来(如对象引用,运行时编译执行等等)
我不想攻击微软,我只是想说,.net封装了太多的东西,让程序员失去了太多的控制(如果是真正的程序员的话),而且引入了很多和以前不兼容的概念(不知道是倒退还是进步,但我知道兼容是技术的生命),简单的回调函数偏偏要叫委托(Delegates),类型又偏偏引入装箱(boxed)拆箱(unboxed)的概念,等等.确实,委托加了很多其他功能,但回调函数的定制我相信更有效率,也更简单.
大凡太高层的东西大都缺乏灵活性,自己定制是最合适的方式,当然也许会需要更多的成本(时间,精力等,这或许是.net在企业中存活的原因之一),这之间要找一个平衡.但.net引入了更多的复杂性,以及对传统的颠覆.我不知道.net能存在多久,但我知道微软也不知道.
作为一个程序员,我有义务提醒大家,学习编程最好的方式是了解低层的运作。如果知道硬件,编译器,连接器,操作系统,网络协议等等,没有什么编写不出来,也许这些技术是复杂的,但却是通用的。当然我也不提倡重复的制造车轮,但不制造并不意味着不需要知道如何制造。这是中国的程序员所最缺乏的东西。
发表于:2004-12-10 最新讨论:2008-5-7
送鲜花(得
37支)
扔鸡蛋(得
42个)
47条评论-->
正在读取本评论的讨论,请稍侯……