WinCE开发的语言思考
很长时间没有写了,业余时间,除了带女儿,最近我花时间最多的,是学习C#语言。可能会有人奇怪,怎么在这个时候来学它,其实原因很简单:我需要做Windows phone 7的开发。
做为一个主要从事Windows CE开发的工程师,我几乎只使用C和C++。WinCE开发分成底层开发和应用开发,底层开发根本就没有选择,只能使用C或者C++,有时候还需要用到少量的汇编代码;应用开发在4.0版本引入.net compact framework以后,除了用C/C++以外,也可以使用C#(当然还有VB),但是在早期因为硬件的局限(那时候的主流嵌入式处理器主频还在200M左右)以及.net平台本身的效率问题,用C#写的程序,运行速度完全不能接受,所以我那时候简单了解了一些C#开发后,就完全放弃了,而且还给很多新人讲过C#在WinCE下没法用的话。我也知道,抱有这样想法的还不止我一个,在CSDN的WinCE论坛上,偶尔有人问道关于C#或者.net Compact Framework的问题,要么是没有人回复,要么就是一帮人大波冷水,主要论点还是说C#写的代码效率不高,运行速度慢(当然,这主要是和.net Compact Framework有关系)。
但是,在微软公布了Windows phone 7的开发环境以后,我开始重新审视这个问题,首先,我需要做Windows phone 7的开发,那么C#,Silverlight,XNA这几个技术就是必须要掌握的;然后扩展开来看,既然使用了wince内核的Windows phone使用C#和Silverlight做的应用,可以如此流畅的话,那么Windows CE使用这些技术应该已经成熟了,所以我觉得是时候来学习C#了。
看过一句话“手里拿把锤子,看什么都是钉子”,这话常用来说明编程语言对程序员思维的限定,研究了一段时间的C#以及.NET,我开始放下自己一直标榜“万能”的这把锤子(C/C++),换着从“起子”,“锯子”的角度去看问题,这一看还真是发现了很多新奇的东西(后面,我会专门写篇文章来讲讲这些)。
嵌入式CPU这几年更新换代的脚步越来越快,在手机这个热门应用的推动下,达到和超过1G主频的ARM处理器已经大规模应用;无线网络的普及,使嵌入式设备联网的需求越来越普遍;嵌入式开发正处在一个快速的变革时期,所以处在这一行中的我们,也需要多多镀镀金,提高一下自己了,否则真要被淘汰掉了。