首页 > 代码库 > 我的技术转型之路——从C++到Android (一)
我的技术转型之路——从C++到Android (一)
作为一个程序员,学习是工作必不可少的一个环节,从学习新的API、类库、IDE的使用到学习一种全新的开发语言,我们跟随着时代的脚步不断挑战和改变着自己。而所谓技术转型到底多大幅度才算,其实也很难说得清,我自工作开始先是从事了两年多的C++开发,而后因工作需要转而学习Android应用程序开发至今两年有余,这两者之间所使用的工具软件和语言都完全不同,所以这里姑且就算我是技术转型了吧,我只是想说说我这几年的工作经验,一个C++程序员到Android程序转变过程中的一些心得和体会。鉴于工作环境和专业素养的差异,或许我的体验对大多数人而言并无意义,但或许总有那么几个人能从我的叙述中找到那么点同感,那我也就觉得很欣慰了。
从逻辑上说,标题的说法描述并不准确,如果从操作系统平台而言,我是从Window平台转向了Android平台;从开发语言角度而已,是从C++转到了JAVA;从使用的开发工具是从VisualStudio转向了带ADT插件的Eclipse;从使用的SDK而言,是从MFC和Window API转向了Android SDK。我之所以用“从C++到Android”这个副标题,是因为发现大部分人是从这两个角度来认识和区分这两类程序员的,对于C++程序员大家并不关心用了什么开发工具包和在什么操作系统平台,而对于Android程序员又似乎不大关心用了什么开发语言,或许这两个称谓是有着时代的烙印。
下面说说两种语言的差异,首先说C++吧。说C++就不得不提到C语言。C++是C语言的扩展而来,二者语法上有太多相同和相似的地方了,一般来说会C++的人也能写C程序,但是两种还是有些差异,最重要的一点是C是支持面向过程编程的语言,C++是支持面向对象编程的语言。在排名靠前的语言中C++也被公认为入门门槛最高的编程语言之一,他的复杂的原因大概在引入了面向对象的编程理念和规范的同时又对C语言的功能做了尽量大的保留,尤其是指针和宏定义更让很多小白程序员望而却步。面向过程和面向对象是两种完全不同的编程思路,有C语言基础并且学过至少一门面向对象的编程语言的人一般都能有所体会。面向过程就是分析出解决问题的步骤,然后用函数/方法将这些步骤依次实现,最后依次调用就可以了;面向对象是将构成问题的事物分解成多个对象,事物都是又对象之间的相互作用而形成的。相对来说,面向对象更容易写出松散耦合的代码,能更好的实现代码复用。但是并非使用C就不能写出面向对象的程序,用C++写的程序就一定是面向过程的,这里涉及程序员个人编程习惯和职业素养的问题。
JAVA语言也属于C语系,所以它的语法多少与C/C++类似,但它是一门更为人性化的语言。人性化不仅仅在于JAVA没有指针,而是它更好的实现了面向对象,并在面向接口编程方面也有着天然的优势。面向接口编程的方式在编程理论方面又是一大进步,它并非对面向对象编程的颠覆,而是将面向对象编程带入了一个更高的层面。对象的高度解耦和不依赖底层实现的方式,让我们的代码更容易扩展和维护。技术的进步并非让人有了更为艰深晦涩的知识和专业技能,而是技术让我们极大的提高了工作效率。
待续...
我的技术转型之路——从C++到Android (一)