惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Security Affairs
PCI Perspectives
PCI Perspectives
Google Online Security Blog
Google Online Security Blog
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Security @ Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
TaoSecurity Blog
TaoSecurity Blog
V
Visual Studio Blog
博客园 - 聂微东
Scott Helme
Scott Helme
博客园 - 【当耐特】
K
Kaspersky official blog
Security Latest
Security Latest
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
MyScale Blog
MyScale Blog
Schneier on Security
Schneier on Security
WordPress大学
WordPress大学
博客园 - 叶小钗
C
Check Point Blog
V2EX - 技术
V2EX - 技术
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
T
Tor Project blog
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
雷峰网
雷峰网
博客园_首页
美团技术团队
Y
Y Combinator Blog
C
CERT Recently Published Vulnerability Notes
AWS News Blog
AWS News Blog
月光博客
月光博客
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
C
Cybersecurity and Infrastructure Security Agency CISA

博客园 - 王君

全民超频---手把手教您超AMD K10架构处理器 C语言笔记 【解惑】这么多技术我该怎么学 C语言文件操作函数大全 程序员之路起始篇──如何学习C语言 也许是你一直没有弄懂的问题系列之<函数的形参和实参特点及区别> wubi安装Ubuntu9.04失败的原因及解决方法 - 王君 - 博客园 浅谈C语言学习方法 C语言——算法 Ubuntu下永中Office2007的安装 Ubuntu中Sudo和Root 帐号相关 C/C++语言经典、实用、趣味程序设计编程百例精解(1) C/C++语言经典、实用、趣味程序设计编程百例精解(2) C/C++语言经典、实用、趣味程序设计编程百例精解(3) C/C++语言经典、实用、趣味程序设计编程百例精解(4) C/C++语言经典、实用、趣味程序设计编程百例精解(5) C/C++语言经典、实用、趣味程序设计编程百例精解(6) C/C++语言经典、实用、趣味程序设计编程百例精解(7) C/C++语言经典、实用、趣味程序设计编程百例精解(8)
会用C语言的是真男人!(转载的,献给正在学习C语言的朋友们)
王君 · 2009-09-11 · via 博客园 - 王君

  几个月前笔者跟两个年轻企业家在巴尔的摩吃了顿愉快的午餐,这两个年轻人最近才从霍普金斯大学(Johns HopkinsUniversity)计算机科学系毕业,创办了一家业绩快速成长的顾问公司;他们的公司擅长以一种称为Ruby on Rails(又称Ruby)的语言,撰写以网页为中心的数据库(web-centric databases)软件。

我们边吃饭边谈一些工作上的话题,其中一个年轻人下了个令我难忘的评论:“用C语言程序是真正的男人!”这句话是他跟同学在将可用的编程语言进行分类时所发明的;而即使优秀如他,也当场承认他不符合以上“真正的男人”条件。看来,这句话不仅反映了C语言的高难度,也显示对较年轻的设计工程师来说,C语言真的不好掌握。

对现代的计算机科系学生来说,学习C语言就像选修一门用拉丁文来上的课那样;但C语言并不是已经过时的设计语言,且在方兴未艾的嵌入式软件开发领域维持着主导地位。下面的图一是美国版EETimes子网站Embedded SystemsDesign十三年来针对嵌入式软件所应用之设计语言的调查统计表。


图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。www.cyuyan.com.cn C语言网整理)