习惯了在Windows下的编程,突然在Linux下写程序,感觉很不习惯,无从下手的感觉.慢慢适应ing
我困惑了很久,试着找出其中的不同,我发现C和C++各种编译器的语法格式差不多,调用的头和库都差不多,仔细看简单的Linux下C或者C++程序和Windows下的差不多.许多基本的语法格式和基础的数据结构都差不多.忽略编译器的编译方式和效率因素,不同环境下的程序写法差不多(这里指简单的程序).
上面说的都是指基本的小程序,但是应用到大程序上,不同环境的编程方法就不一样了.
比如,在Windows下我们要实现一些系统功能,最简单的方法就是调用系统的API函数,这些函数在系统自带的一些DLL里,当我们用API很简单的实现一些功能并且已经习惯了API调用的时候,突然转到Linux环境下,API不见了,代替的是各种库和头文件和各种系统函数,这个时候能写出的程序恐怕就只能是从1+到100的循环了.
当然在Linux下也可以通过调用一些函数实现系统功能,跟Windows下调用差不多,可是初用Linux编程的时候,我发现我的思维已经固化在API上了,思维混乱ing....呵呵
Windows的Kernel是封闭的不可知的,当出现问题的时候或者问题可能会出现的时候我们无法提前发现问题或者知道出错的部分,在Linux下我们可以很清楚系统调用的函数,这样很便于调试程序和根据Kernel的调用改进自己程序的代码.配合系统而高速度的运行(我听说Windows没事喜欢搞空循环哦)而Linux内核开放的特性也便于程序员们及时发现漏洞并修补问题,也就是说如果自己有能力我们根本不需要等什么SP几.
做为Linux的爱好者,我个人认为运行在Linux平台下的软件太少了,尽管有很多开源组织和开发团队都在开发Linux下的程序.但是普通且适合Linux环境运行的还不是很完善,不是很普及.这不能不说是一个严重的问题.
为了Free的精神,我们需要努力为Linux写出更多优秀的软件.