知识点1:众多编程语言,为何选择C?

  现在我们的同学喜欢java,也参加很多java的培训班,java是比较热门,但是C语言在工业界依然有重要的地位,在很多领域无可替代,几乎所有和硬件打交道的地方都得要用C语言,比如再工业界大量实用的linux操作系统,几乎都是C语言编写的。

  至于编程语言的热度,参考TIOBE编程语言排行榜http://www.tiobe.com/tiobe-index// 的三张图:

    2017年2月份最新数据,C语言第二。每个月都会有新的数据出来。

  

  2002年到现在15年时间的一个走向,可以看出各个语言的起起伏伏,占据第一二名的一直是java和C,蓝色的线是java,黑色的是C,从整个趋势看,java的上下起伏大一些,在2002年的时候占据25%(越1/4的软件使用java写的),而在2004和2015年左右java掉到15%以下,而C在2002年的时候是20%多一点点,2008年跌到15%以下,而总体来说,特别是2010年后近几年在c和java不相上下,处于一个比较稳定的状态。java的起伏主要原因是java的替代语言出现,而C之所以一直相对稳定一些,主要是因为在很多场合,C语言是唯一的选择,比如说做操作系统,嵌入式操作系统等,只能选择C,也有的时候是C++,所以C语言在企业界有大量的应用,我们没用理由不去研究下C语言到底是怎么回事~

  从上图的2016年和目前来说,我们看到C和java都有个大滑坡,使得本来占据15%以上的C下降到目前的8%左右,主要原因是近年来软件开发工作逐渐向网站和移动设备应用程序靠拢,C 语言却难以应用其中,且 C 语言也不如 Java、C++ 和C# 等语言有大幅度的进化,而其他新兴的语言比较能胜任这项任务,在上图中也看出其他语言在2016以后的份额都在增长。那么为何不去学习其他语言?

  原因之一我们不能只看一年的流行趋势,而应该看整个10多年的趋势,无论怎么起伏,C始终处于第一或者第二的位置。

  原因之二是现代的编程语言在语法上差异很小,现在很多语言都可以叫做C-like语言,就是一些基础的东西,比如变量怎么起名字,怎么定义,函数是叫做过程,叫做方法等等,基本上和C语言很接近,这和C语言在历史上的地位是有关系的,

  原因三:在我们现在说这个语言很厉害很强的时候,大多不是说这个语言本身的特点,而是面向语言写的库,这些库有针对各种应用的库,一件很难的事情你只要去调用这个语言的库或者一个类来完成,那么很大的一件事情就解决了,所以如果一种语言有你做的事情的库,那么你用它写程序就变得很容易。通常用这种语言写的软件比较多,那么这种语言的比例就上去了。

  所以我们选择C语言做我们的教学语言,因为份额比较多,另外语言之间的差异很小,当你学会了一种编程语言,对另外一种编程语言的掌握就非常快了,而C正好处于比较基础的这个层面的语言。

  下图是三种语言的例子:C,java,python,都是双引号,函数,printf等很详细,所以在学好一个语言后,再去学别的语言就会是一个非常快的事情。

最新文章

  1. christian louboutin ballerinas outlet
  2. ImageLoader介绍2
  3. 服务管理,Dll查看
  4. (六)学习CSS之color属性
  5. ClassLoader和Reflect
  6. 【动态规划】Vijos P1616 迎接仪式
  7. Eclipse上改动Jython代码的Comment颜色
  8. Python之路:Python 基础(三)-文件操作
  9. 表达式树解析"框架"
  10. jsp:useBean的使用
  11. 安装gitlab8.0在reconfigure报错
  12. 1. cocos creator 连接服务端
  13. APP加急审核
  14. bzoj 3991: [SDOI2015]寻宝游戏 虚树 set
  15. 获取当前exe的路径
  16. jquery ajax的load()方法和load()事件
  17. 通过HttpWebRequest调用webService
  18. php函数返回引用示例
  19. Centos生成SSL证书的步骤
  20. Java NIO学习与记录(八): Reactor两种多线程模型的实现

热门文章

  1. httpclient案例二(调用百度地图的接口)
  2. type="submit" button的用法
  3. View的放大->旋转->还原动画
  4. 第三篇:一个Spark推荐系统引擎的实现
  5. NOIP2017划水记
  6. js去重合并
  7. cache 订单队列 - TP5
  8. html onclick时间传字符串参数
  9. css学习の第三弹—盒模型的创建和使用
  10. Cassandra配置多节点集群以及使用雅虎YCSB压测Cassandra 3.11