Languages

三个月的煎熬,算是对C#进行了“被熟悉”。开始接触C#时,我确实被那种简明的类C语法和丰富的类似Delphi的类库所折服。遇到繁琐的循环,你会得到替代它的迭代器,遇到静态数组的麻烦,你会想到用泛型的List。C#几乎包含了所有新兴的语言要素,而且都是很实用的,并不是说说而已。

不过,让C#到此为止吧。我现在确实已经厌烦了这个臃肿的东西。因为和Java一样需要把源代码编译成中间语言,然后由.Net虚拟机翻译成二进制机器语言,所以当项目繁多的时候,比如用AE开发GIS系统的时候(大规模数据操作级别),很容易就因为等待的时间而让你的耐心崩溃。我知道时间的代价是换回了丰富的调试信息,但是一次次修改作业,已经让我很无语了,每次封装前的测试,都是我最无聊的时候。

“语言不是障碍,只要有编程思想就行。”很多人都是这么想的。其实,经过这段时间的实际操作,觉得至少对于GIS的学生来讲,做项目做研发做研究,那些实际需要的编程思想是微乎其微的。对某一个算法如何去用简明的方法去实现,那都不是我们要干的事情,那都是计算机人才的事情。我们说白了,就是垒代码的。你垒的越快,就越能出成果,Boss就越高兴,Boss越高兴,你就能得到更多实惠。所以我们的关键字是速度,加快速度垒代码。

怎样加快速度呢?工具的选择是很重要的。记得以前学编程的时候只知道安装VS的时候会带一个Visual SourceSafe的东东,但是不知道是干什么的。现在有了实践的经验之后才发现它是团队协作的利器,代码版本的管理就全部靠它了。

当20W+的代码量成为家常便饭的时候,你也就顾不得那些基础的语法啊,细节的实现啊什么的。这时候你需要的就是语言的新特性。比如正则表达式,Lamda表达式,泛型,这些东西真的是很实用。考过计算机二级的人都知道,要想按照一个规则去增删改查一个字符串是多么费脑子的一件事,不过现在好了,你要是知道正则表达式,一个语句搞定。什么意思?就是说,那些别人发明出来的能让人不用思考就能用的工具不是别人发神经无聊造出来的,别人造出来就是要你提高效率的。GIS开发大量操作数据和逻辑真的是很难去考虑小的细节,这时候唯一能加快速度的方法就是采用一些好的框架,好的模式,即好的Language.

重新回到语言,C#是大杂烩,它有你想要的一切,甚至你可以拿它搞网页搞并发。但是这种庞大的机器,运转上太缺乏组织性了,里面充斥着各种语法。例如,赋值像C,C++,可是类操作又像Delphi, 数组集合那完全是Java,甚至把不论不类的动态语言也给塞进去。学了C#,我现在都有点读不懂C、Delphi、VB了。强大的过头了,就要走极端。

最近师兄提议搞一下网络富客户端的东东,于是下定决心和C#划清界限,开始啃Ruby的书。写程序的人如果死抱一种技术不放,那么他的末日也不会太远了,多掌握一门语言始终是好的,连老鼠都知道的问题,我今天也明白了。

你可以 回复, 或 trackback 于你自己的网页。

回复

你必须登陆 后再留言.

Powered by WordPress | Shop Free Cell Phones Online & Save. | Thanks to Best CD Rates, Best Checking Rates and Homes for Sale