none
希望C#能增加独立编译功能,一个C#程序员的心声 RRS feed

  • 问题

  •   .net 已经发展多年,身边的程序员并不像2000年的时候热衷于.net,个人认为最大的问题在于.net有一个必须有一个运行环境,大多数情况下,一些软件使用客户并不期望所有的软件都在安装后使用,特别是一些对电脑不怎么了解的使用用户。
        一些小型、甚至微型应用开发,都必须背上FrameWork,实在是让人头疼。一个20k的应用程序要带上20M的库(可能甚至更多)别人才能使用,是不是也很荒唐?这好比一个平常人上菜场买一斤鸡蛋,我自己买就行了吧。的确,如果我带上会计、出纳、公关、物流、法律顾问肯定能井井有条买一斤鸡蛋,可以应付各种突发问题,但是,犯得着么?

        我提议微软,.net Framework固然好,但是能不能在VS.net加上一个编译开关,让软件开发者选择是否运行在FrameWork中。
        如果开发者选择独立编译,那就让生成代码直接是机器码,同时强行引用一个小规模的内存分配控制库文件,保证内存安全,放弃一部分在FrameWork环境中运行的优越性,如果是独立编译,允许手动加入一些内存分配控制库文件中的代码引用。
        毕竟.net中 System.net 这些众多库函数也只是对 API 的打包。

        我相信,如果有这种改变,灵活性更大,需要更使用到FrameWork的特性的企业型开发仍然可以选择在FrameWork下运行,小规模开发或者不需要用到丰富计算机特性的开发选择独立编译,让程序员有更多的选择。
        这样做另外一个特性就是保护代码,允许损失一部分性能,而提高代码安全性,提高软件产品的便捷性。如果有一个公司花了九牛二虎之力用.net开发了一个网络游戏,他会愿意让他的客户轻轻松松看到传输协议的代码么?混淆又能起多大作用?
        
        目前的 .net 尴尬之处也在于此,IL代码可以轻松反编译,小软件背着个大库,安装过程中还会蹦出一个窗口让你确认一下同意微软的软件协议。。。。毕竟大部分客户是不稳定的,虽然.net只要装一次,
    但是如果哪天操作系统被重新做过,或者还原,原来软件就不能用了,多烦琐,定期升级自己的开发程序给客户升级程序还可能安装2.0 3.0 3.5。使用 WinXP win2000 win98的客户在未来很多年里将肯定存在,不但存在,还很多,就目前为止,我还没看到哪一台收银POS机,银行取款机终端安装的操作系统版本超过win98。
       
        我想如果做此改变,会有更多的程序员愿意接受 .net,转而放弃原有开发平台,谁都必然会认为微软的开发平台会有更广泛的支持。本来C#这种新语言就极富时代特征,集成度高,高效,易学,易用。
        我认为,变通,更丰富的选择,只会给微软公司带来更多客户,更多利益,让.net平台更广泛的成为全球程序员的开发平台,让选择.net开发作为自己事业方向的程序员,不后悔。

    2010年1月11日 23:04