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

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
Tor Project blog
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Last Week in AI
Last Week in AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Cyberwarzone
Cyberwarzone
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
Recorded Future
Recorded Future
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
Simon Willison's Weblog
Simon Willison's Weblog
Cloudbric
Cloudbric
Project Zero
Project Zero
SecWiki News
SecWiki News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Latest news
Latest news
Schneier on Security
Schneier on Security
小众软件
小众软件
U
Unit 42
Y
Y Combinator Blog
Help Net Security
Help Net Security
Vercel News
Vercel News
月光博客
月光博客
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
Google Online Security Blog
Google Online Security Blog
T
Tenable Blog
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale

博客园 - 王君

全民超频---手把手教您超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语言网整理)