Farseer

导航

企业软件=没有技术含量?

一直以来,标题的问号在我头脑里是大大的叹号,直到最近。

有些东西如果不去深究,一切都是很简单的。但如果深究起来,从某种意义上来说,做企业软件远比做底层的复杂。

程序设计语言从机器码,汇编,C,C++到.Net。计算机也从上世纪的占据几个房间的庞然大物到现在的小巧玲珑的掌上电脑。

一些被底层研发人员的鄙视的企业软件研发承载了从底层逐渐演化的过程,如果详细研究一下C#,你会发现,其实C#远没有想象中的那么简单。

是的,C#封装了指针,指针操作在C#只能被贴上unsafe的标签,作为托管代码运行,于是有人说,看见了没?连内存都不能操作,C#太简单了。我看是这种说法太“简单”了。

稍微研究一下MSIL就可以知道,其实C#继承了C/C++的指针操作衣钵,所有的操作都是通过指针操作来完成的,只不过由老盖帮你去申请了内存,帮你管理指针,帮你把内存释放掉。

当然你大可视而不见,不去了解这些事实,不去关注这些细节,闭上眼睛就是天黑,然后大吵C#真是不爽,让我不知道底层是如何操作的。我看是你自己太懒了,自己不去了解吧!

我现在了解为什么说有C++的基础,学习C#会容易得多了,如果没有C++的基础,从源码死也不会看出C#的函数参数是如何传递的,C#的多态又是如何工作的。曾经我以为,C#怎么这么简单啊。其实Visual C#产品经理Dan说得很对
for(int i;i<X;i++)
{
}
你能看出是哪种语言写的吗?如果想停留在Ctrl C+Ctrl V上,一切都是那么简单,即使你用汇编语言,在window下做粘贴复制的动作又会难多少那?

C#是建构在机器码,汇编,C/C++之上的语言,要探究其本质,还要从最基础的东西弄起。看过《.Net本质论》就会知道,要彻底了解.Net的机制,远没有想象中那么容易。 B/S架构中,数据的传送机制也没有看上去那么easy.

企业软件又是设计模式应用的土壤,也许我理解的不是很深刻。设计模式是面向对象领域开发的经验积累,而面向对象编程在企业应用软件的开发中应用又是如此之广,而在底层的汇编,C去不会过多地考虑这些东西。要想把GoF的23种设计模式应用到项目中,不是一朝一夕的事情。

所以停止,这个有含量,那个有技术的讨论吧,过多地"推托",更加证明了自己的惰性.

posted on 2005-03-18 19:52  佛西亚  阅读(547)  评论(0编辑  收藏  举报