smhy8187

 

编程语言和编程思想

 编程语言和编程思想
这么多年来,我学过和使用过的开发语言也不少了,可真正用得好一点的就只有C。有一段话很流行,直到现在类似的想法还影响了很多人。“做程序员,学习程序语言最重要的是学习编程思想,而不是学习那种语言”。我曾经把这段话奉为经典。在做程序员的初期,频繁更换编程语言,这是一个重要原因,另一个重要原因是,如果不会新的语言,就显得落后了。因此流行的语言基本都涉及过,买书的钱都以千计。随着代码数量的增加,经验的增长以及对于业务了解程度的深入,自然产生了一些想法、思路和设计。

我举的一个例子,开发过数据库的人大概都有所体会。数据库应用中常常需要构造SQL语句,但在程序中写SQL语言以及对返回结果集的处理,这往往是个体力活,特别是在嵌入式SQL的编程中。重复地拷贝一段颇长代码,再修改一点点,整个程序大量的篇幅都耗在这上面了,维护起来也比较困难。我想很多人都针对此想过了很多的方法来简化这些甚是无趣的操作。我也想过好些方法,其中一个方法比较有趣。在C语言中有一个很常用的函数是int sscanf(const char *str, const char *format, ...),用起来颇为简便。我想仿照这个函数的来处理SQL语言的select,因此就定义了一个获得一条记录的函数:ifx_select(const char* sql,…); 使用起来非常简便:

int id;

char name[16];

if(ifx_select(“select id,name from users where id=10”,&id,name)==0)

这是一个很好的点子,也是很好的编程思想。但开工后,我发现我实现不了。虽然这段代码看上去很简单,但它包含的东西却不少:变参数的处理,指针及其内容的赋值,错误处理,数据类型判断与分析等等。这些东东都学过,但在实际工作中却不能灵活运用,想法和思路自然实现不了。类似的现象不仅仅大量出现在程序设计中,在现实生活中也比比皆是。

由此,下决心好好补了补课。把教科书又翻了几遍、阅读了很多开放源码的程序、在平时的编程中投入一部分精力到C本身的研究中,经常感叹,原来C语言还可以这样用。随着对语言本身(语法、技巧、组合等等)的越来越熟悉,自己的很多思路和想法也得以顺利实现。到目前语言和思想已经密不可分了,以上的代码自然搞定了。当然这是一个长期的过程,不可一蹴而就。时间一般以年计算。

讲了这么多,我的观点也很明确,编程的语言和编程的思想同样重要,扎实的编程语言功底是编程思想得以顺利的实现的基础,二者缺一不可,相互制约也相互促进。就象人的灵魂和肉体。对于一个人来说,若只管灵魂而不管肉体,那是“鬼”;如只管肉体而不管灵魂,则会被称为“行尸走肉”。基本工具都用得不好,用得不熟,很难期待会出现一个好产品;有一个好的编程想法,却因为编程语言的能力不够而不能实现,那么这个好的想法就只是“空想”,开发者容易被划归到“眼高手低”、“不切实际”、“不踏实”的一类中去。

另外在选择和学习编程语言上,最好根据需要选择一门主流的、应用广泛又有强大生命力的编程语言,例如BASIC、FORTRAN、C/C++、JAVA等。语法学习相对容易,关键在于熟练应用。理想境界是达到卖油翁的程度:“无它,唯手熟而”。

posted on 2007-02-25 10:36  new2008  阅读(245)  评论(0编辑  收藏  举报

导航