寒假期间,从几个大一新生口中得知,但凡同IT行业相关的专业的大学生仍然几乎都要学习c语言,而且是作为基础课来学习,教材仍然是谭老师主编的第x版c语言教程,又翻了翻自己的书架,竟然找到了用过的谭老师主编的第1版c语言教程,不尽感叹c语言的寿命之长。在几十年的时间中,很多编程语言都如同流星般陨落,而c语言却仍然在发光发热,在很多重要的领域仍然是主流的开发语言。
C语言的优点无需多言,然而随着新技术、新思想的不断发展,现阶段,c语言也到了一个较为特殊的阶段。
首先,c语言自身的发展状况并不乐观。相对于其它老语言的发展速度以及不断涌现的新的开发语言,c语言的升级速度肯定算不上快。另外,升级的质量也差强人意,最近10年的升级尤其如此,大多数升级内容都是“学习”其它语言的优点,给人的感觉好像是为了升级而升级。剩下的一点不是“学习”其它语言的内容往往也是不具有实际的意义,很难被广大开发人员所接受。不得不承认,现在的c语言在编程语言中的地位同30年前已经大相径庭了。
另外,随着基于模型的开发的思想逐步普及,相关技术愈加成熟,基于模型的开发已经由尝试进入到普及应用阶段,对于c语言尤其如此。无论是国外还是国内,都推出了多种基于模型的开发工具,覆盖了从需求分析,设计、到仿真以及测试整个软件开发的全过程,当然,尽管很多软件已经彻底不需要“编码”环节了,但在现阶段“编码”环节对特定类型的软件来说还是必要的,即使必要,人工编码量也仅占整个软件编码量的一小部分。
以往,基于模型的软件开发推广应用进展缓慢的原因主要有两个:1使用非常复杂;2要在建模的过程中编程序。原因1主要出现在基于UML图来建模的工具中。通常需要软件使用者需数量掌握UML,而且即便创建一个简单的软件模型,也需要创建好多个模型图,而很多图同要解决的问题并没有直接关系。造成这种现状的根源是UML根本就不是为C语言设计的,根本不知UML为何物的c语言资深程序员人大有人在,而且UML也不是用于创建软件的,其能起的作用应该是对软件的分析与说明。而基于UML来开发C软件确实有些勉为其难了。可以用一个通俗一点的比喻:大炮打蚊子。就打蚊子这件事来说,苍蝇拍比大炮更有用且更广为使用用。原因2更为普遍,很多软件建模工具名字叫建模工具,但是要想创建一个同代码相互映射的模型,仍然需要熟练掌握c语言,而且还要使用c语言完成模型中很多内容的填写。这极大的降低了开发人员使用这类建模工具创建软件模型的积极性。反正都需要编代码,干嘛还多此一举呢?
现在,随着基于流程图的软件建模工具的成熟以及表达式建模技术的应用,使软件建模工具能够既简单易用,而且也无需使用者掌握c语言,这为软件建模工具的推广应用提供了坚实的基础。
基于模型的软件开发的优点是广为认同的,而且,对于以c语言为开发语言的软件来说,阻碍基于模型的软件开发的主要技术问题也已经解决或正在解决,因此,可以合理的推断,在软件开发领域,对于掌握c语言的人员的需求量会迅速减少。从目前的趋势来看,软件建模工具正朝着专业化、细分化的趋势发展,也确实需要一定数量的既熟练掌握c语言有具备专业技术知识的人才参与细分行业软件建模软件的开发与维护中。但这部分的数量仅仅占文章开头提到的IT行业相关的专业的大学生的数量的百分之几甚至更少,与其让这些大学生们花费大量的时间和脑力学习c语言,还不如多学一门专业课或是把时间留给学生们!