计算机世界的黑客帝国

相信喜欢看黑客帝国的程序员不少,在黑客帝国中,现实世界是如此的可怕,人都是泡在“羊水”中的生物电池,为超级电脑供电。现实世界没有阳光,不见天日,是一个人间地狱。而人的意识都活在虚拟世界中,人的诸多活动都是和超级电脑交流的结果。相对来讲,虚拟的世界可以说完美得多,人可以得到很多得满足。
 当java还活在服务器端的时候,这个虚拟平台还不为人了解,现在个人计算机越来越快,终于迎来了.Net,看来计算机语言开始全面进入黑客帝国时代。
 好事,还是坏事?c++等原生语言将向何处去?生存或死亡,这是个问题。
 对于虚拟平台,我想学过编译原理的人应该都想过,因为一般教编译的基本方法都是那个小语言,教我们编译成一种虚拟汇编码,然后执行之。既然我们都想过,那些大师们,可能早在第一个编译器出来的时候就想过,为什么现在才实现?可见,一个虚拟平台要解决的问题并不仅仅是这些。
  我想喜欢使用原生语言的程序员,对虚拟平台一定是深恶痛绝的。一如,当时汇编程序员对c,c社区对c++的看法。用惯了指针,习惯自己控制内存,你让我看不到指针了,把内存交给虚拟平台管理,而我,这个系统的God,在虚拟平台上看到的都是“假”的东西,都是别人写好的东西,我能放心吗?能甘心吗?再说了,这个效率行不行啊?大家都有这样的疑问。可是,在这个计算机系统上,“真”的东西又有多少呢?当操作系统出来后,很多的东西都不太真实了,内存,有虚拟的,打开文件也要调系统的函数,这些在unix上还底层一点,在windows上则全部被API给封装了。可以说现代操作系统已经是封装的很厉害的了,就想电影《楚门的世界》中的世界,那的确是真实的,但是却是个人造的摄影棚。其实,我们就活在这个“摄影棚”中间。这些封装带来了很多的好处。而虚拟平台,好处就更多了。
  其一,对于组件的开发,虚拟平台是一个彻底的解决,用c++写Corba和COM是件比较难的事。Corba和COM的思想都很好。拿COM来说,这种写组件的方式相当奏效,前提是要有好用的开发库。因为,COM实际上在二进制上给c++等原生语言来了一个约束,所以,你就不得不保证AddRef,Release,QueryInterface是头3个,你不得不定死你函数的调用方式,还有引用计数等等。谁要是不用mfc,atl,vcl这些自己写看看,真是一个难字了得。而对于虚拟平台,这些都可以提供first class的支持,你可以不用关心这些了。在加上工具,库什么的,就更方便了。其二,分布式能力,这是这些虚拟平台要解决的要点之一。而我们的c程序员,恐怕还要socket一下吧。java的表现就很能说明这些问题了。其三,移植能力。想我从32位平台移植一个充满了左移右移的程序到64位unix上去的那件事,我就做恶梦。而看别人java程序员,真是羡慕得不得了。.Net要做移植的话,只要微软愿意做,肯定是没有问题的,因为虚拟平台是对物理机器的抽象,这个对别的物理平台都是一样的。
 就说上面3点吧,什么内存泄漏等,都不说了。已经是一个很完美的世界了。记得有个数据库方面的教授写过他接触过的项目,他发现这些项目很少成功。最后原因是,一个搞计算机的(开发方)很难对一个具体业务的东西有兴趣,而且也很难做到精通。而一个对业务很熟悉的人(用户),对计算机也不感冒。而他看到的一个比较成功的项目是这样的,一帮学计算机的提供基本的库,封装基本的操作,而精通的业务的,包括他们用户计算机中心的人,用这些库来搭建应用程序。最后这个项目很成功,也调动了用户的积极性,得到了很好的效果。我想虚拟平台以后的应用模式可能就是这样的。微软这样的大公司提供虚拟平台,其他软件公司偏计算机人员的在上面开发组件,而比较偏业务的搭建应用平台。对于偏应用的人员来说,他们的计算机技术就不需要那么深入了,而虚拟平台就是把这些技术难度降到最低。而偏计算机的人员可能就对这个虚拟平台非常了解,可以解决很多计算机方面的问题。
  看来计算机世界中的黑客帝国是大势所趋。而.Net,java并不是一飘而过的浮躁的风潮。据马克思他老人家的说法是,生产力是推动社会发展的主要因素。而虚拟平台的出现极大的发展了生产力。对于与这个潮流为敌的以前事物,用央市《挑战主持人》中那经典的句话来说就是:“尽管你委屈或者不服,但是,你,被淘汰了”
  要是这样,那我,就完蛋了。因为,我是一个c++原教诣主义者。
  从历史来看,汇编到c,c到c++,这些都是通用的技术。而现在的虚拟平台都掌握在少数厂商,这是极度不正常的。同时,完美世界并不完美。比如做游戏,做底层的事情,这些平台都靠边站。因为计算机速度的发展,这些平台(希望是独立于厂商)也许在越来越多的方面占据市场份额,但是终久是一个应用平台。如果是一个独立软件厂商,就一定不能跟风,如果是一个国家,就更不能跟风了。
  如果你是做应用的,不关注.Net,java,后果是惨的。如果是做底层的东西,而且要有自己的东西,是理所当然的选择原生语言的。
  就像黑客帝国中,也许生活在虚拟世界母体中的人好像很幸福,可是他们由别人摆布,自由是有限度的。而Neo他们,也许在一个不见天日的现实中生活,可是他们是自由的,他们可以自己制造自己的母体,供自己训练和游戏。而在母体中他们的力量比一般人更强。这正如一个精通c++,COM的人在.Net的世界里比普通的.Net程序员要更强一样。
 领悟了c++,Object Pascal,OOP等精髓的人永远是虚拟平台中的救世主那样的人,The One!

你可能感兴趣的:(计算机世界的黑客帝国)