几个月前笔者跟两个年青企业家在巴尔的摩吃了顿愉快的午饭,这两个年青人最近才从霍普金斯大学(Johns Hopkins University)计算机科学系结业,创办了一家成绩快速生长的顾问公司;他们的公司拿手以一种称为Ruby on Rails (又称Ruby)的言语,编撰以网页为中心的数据库(web-centric databases)软件。
咱们边吃饭边谈一些工作上的论题,其间一个年青人下了个令我难忘的谈论:“用C言语写程序是真实的男人!”这句话是他跟同学在将可用的编程言语进行分类时所创造的;而即便优异如他,也当场供认他不符合以上“真实的男人”条件。看来,这句话不只反映了C言语的高难度,也显现对较年青的规划工程师来说,C言语真的欠好把握。
对现代的计算机科系学生来说,学习C言语就像选修一门用拉丁文来上的课那样;但C言语并不是现已过期的规划言语,且在方兴未已的嵌入式软件开发范畴保持着主导地位。下面的图一是美国版EETimes子网站Embedded Systems Design十三年来针对嵌入式软件所运用之规划言语的查询统计表。
图1
从 图一可看出,C言语在1997~2009年之间都是嵌入式软件开发运用最多的言语;近五年来,C与C++言语更瓜分了大部分原属汇编言语 (assembly)的地图,其间较高阶的C++开展速度虽不如预期,但仍在嵌入式软件规划范畴保持27%左右的占有率。全体看来,C++言语运用率在 90年代晚期加快上升,在2001年到达顶峰,然后略微下滑、之后保持安稳。
无论怎么,嵌入式软件规划师不会在短时间内抛弃运用C言语,原因有很多个:首要,C言语编译器支撑大多数的8位、16位与32位CPU;其次,C言语在处理器与驱动程序层级,兼具高低级言语的特征。
当 然,假如仅取得一小群人数逐步削减的程序规划师支撑,C言语难以继续作为重要的规划言语而存活;而已然C言语依然如此重要,也意味着嵌入式软件规划师并不 会削减。现在每年新上市的CPU有98%都是嵌入式的,这类新式CPU的长时间开展性也十分达观。图二显现美国那斯达克指数与新CPU出货量改变的消长联系。
图1
嵌入式软件规划教育断层
但 在C言语在全世界各地的重要性日益添加的一起,校园里却越来越少学生乐意去学怎么运用该种规划言语;这反映了嵌入式体系规划范畴日益严重的「教育断层」问 题。美国的高等教育组织在供给有用的、嵌入式软件规划必备的技术教育方面十分失利,相关开发技巧非得在工作岗位上才干学得到。
图3
从图三能够看出,在电子工程相关科系,只要一小部分课程是与嵌入式软件开发有关的;而计算机科学系所供给的嵌入式软件开发相关课程也只多一点点。现在有不少美国大学虽供给额定的计算机工程 学分,但大多数仍是来自现有电子工程、计算机科学系的课程与教授,并没有太多有关嵌入式软件开发的新内容。而在职训练也很少供给嵌入式软件开发课程。
假如以上我所举出的,有关C言语将在可见的未来继续保有重要性、特别是在嵌入式软件规划范畴的种种依据事实,那费事就真的大了──由于现在的年青程序规划师尽管都很聪明,他们恐怕不知道该怎么运用C言语写程序,甚至不想学。
总 有人得写那些需求量越来越大的嵌入式软件──新一代规划言语或许帮得上忙,却无法支撑一切那些开展资格已数十年、未来数十年也会继续被运用的CPU架构; 已然这样的趋势难以避免,咱们这个圈子需求培养年青一代的C言语程序规划师。但该怎么做呢?若情况继续开展下去,又会发生怎样的成果?
【补白】我坚信那位年青人并没有性别歧视,「真实的女性」当然也会运用C言语!
(参阅原文:Real men program in C,by Michael Barr,本文作者为嵌入式体系规划范畴的专家,现在运营一家嵌入式体系顾问公司Netrino)