Blog

编程语言喜好

一个人对于编程语言也有自己的倾向,我最近和同学一起完成学期项目时,有了深刻的体会。

我们的学期项目是网络课上要求的,让我们写一个socket程序,让几个客户端可以通过服务器来玩NIM游戏。我们第一次小组讨论的时候决定用C来做。我同时修一门计算机组成的课,作业是用C语言写虚拟机。我看了老师给的答案后,感觉有豁然开朗的感觉,一扫以前对C语言的恐惧心理,所以也信心满满的做了起来。

但从开始写到现在,总感觉一些细小的部分在阻挠我。而且一些socket交互相关的问题,比如进程、线程、select函数之类的小问题,也让我相当头疼。因此本来看上去很简单的程序,写到现在还在继续弄。

我之前也写过,我对C语言还没有建立起一种“体系”。我在过去写BASIC和Pascal程序的时候,哪怕不能解决问题,都有一种掌控全局的清晰感觉。而对于C语言,我现在还不行。总有一些小地方,一不注意就会出问题。比如结构体中的字符串,今天也费了我不少功夫才搞清楚,原因是之前我写程序从来不用结构体,因此也不知道C语言具体怎么给里面的字符串分配内存。Pascal没有C语言里的指针这么深刻的概念,所以我对这类问题掌控不明确。

我曾经考虑过:是什么让我过去对BASIC、Pascal等语言有掌控全局的感觉?我写了多少程序才建立起了这种感觉?能不能从这些程序里找出一个最小的必要集合,学新语言的时候就用那种语言把这些问题实现几遍,就能摸透语言的关键并形成习惯呢?可惜我一直没有时间深刻去思考这个问题。在有了答案之前,唯有像无头苍蝇一般,看到什么就练什么,直到哪一天把必要的知识点都“撞”全了。

相反,我对一些不那么流行的语言倒是有挺浓厚的兴趣。之前我们学了Prolog、LISP、我们老师发明的fp、J,这学期我们又接触了Jess。去年冬季我有一门课,名为Programming Language Concepts,专门讲各种编程语言,也用它们来写程序,我就做的不错。和我一起做项目的组员这学期也修这门课,就觉得这门课很难,觉得那些奇怪的语法让他转不过弯来。可他对C语言倒挺熟练的,所以项目里困难的部分,就让他去做了。

今天中午他在复习下午的考试时,问了我几个相关的问题,我都觉得挺简单的,他却一脸迷茫。一些稍微复杂一点的Prolog程序,比如归并排序里的merge,我觉得很容易理解,他却觉得已经难到天了。所以我看编程语言,还是要和人的性格相合啊。

没有评论

Leave a Reply