分享

C语言要学吗(Java无法接触硬件层面的操作清理和释放内存一般只能通过垃圾收集器)

 山峰云绕 2017-11-13
   https://www.wukong.com/question/6486655743255642382/?share_ansid=6487009857982431502&iid=15906422033 

       (Java无法接触硬件层面的操作清理和释放内存一般只能通过垃圾收集器)


 知名开源软件分享平台GitHub公布了2017年最活跃语言排行榜,Javascript一骑绝尘继续蝉联冠军。而C语言则排在第十位,较2016年度还下降了一位,甚至连严格意义上来讲不能算编程语言的CSS也排在了它前面。乍一看面对许多新兴时髦的编程语言,已经45岁高龄的C语言显得有点过时,但GitHub毕竟不能完全代表整个软件产业,以开源软件圈的标准来衡量一门编程语言的流行度,还是存在一偏差的。
  而更为专业和权威的SCI期刊《IEEE Spectrum》则把C语言排在了第一位,炙手可热的Java, C#和Javascript语言则在第二阵列。所以,C语言并不是一门面临淘汰的计算机语言,反而C语言绝对不会浪费你的时间和精力,它有许多的优点值得你来学习和掌握,主要有五个方面:
  一、能够更深入的了解计算机
  你可能已经听说C是一种“较低级的语言”,在编程行业里,所谓的“级别”是描述编程语言与计算机的本机指令集有多接近的一个描述。级别越低,与机器代码的距离就越近。级别越高,语言就越抽象,与机器代码的关系就越松散。
  C语言相对其他更高级的语言,诸如Java和C#,它是一种抽象的、较低级的语言。你可以编写代码直接操控硬件设备,比如直接访问内存。而在更高级的语言如Java中,语言本身无法接触硬件层面的操作,清理和释放内存一般只能通过垃圾收集器。
  虽然这是C语言难于入门的原因之一,也是C程序员更倾向于计算机思维工作方式的原因。为了编写更好的C语言代码,程序员必须像计算机那样思考,比如内存管理、输入输出流、字节顺序等等。 C语言能让你更好的了解计算机到底是怎么工作的。
  还有比C语言更低级的编程语言,例如汇编语言,但C语言在保留了低级语言的大部分功能的同时,还抽象得足以让人读懂代码,而不是汇编语言那样,对于初学者来说代码看上去和天书没有什么两样。
  二、更容易掌握其它语言
  许多资深程序员都会向初学者表明,一旦掌握了某种计算机语言,那在学习其他语言的时候会比较容易。但是这种容易程度是有区别的,例如掌握了Java语言,再来学习Pascal语言可能并没有那么容易。但如果初学者是从C语言开始入门的,那么再学习其它语言会容易得多,因为许多现代语言的设计风格,都是和C语言相近似的。另一方面,从低级一点的语言向高级一点的语言过渡是比较轻松的,但反之就困难很多。
  换个角度,像C#语言是当前最流行的编程语言之一,特别是在游戏开发领域(著名的Unity引擎使用C#语言),尽管C#是一门足够抽象并简单易用的语言,但许多初学者在学习C#的时候,还是经常会觉得很困惑,因为他们往往并没有很好的理解抽象编程的内含,而通过学习C语言,则能让新手们更好的掌握这一点。
  C语言是现代编程语言的基础,当你深入了解了C语言,你就会发现每一种现代编程语言都是在C语言基础上的高级扩展。
  三、写出更优秀的程序
  相对于更高级的语言,C语言的低级特性也有它的缺点,那就是更复杂和乏味。
  如果把编程比喻成制作煎饼果子的话,在高级语言的开发环境下,通常系统已经为你准备好了鸡蛋、火腿肠、面饼和各种调料,你只需要简单的把这些东西加工一下就能生产出味道不错的美食了。但在C语言中,你不但要自己养母鸡,收集鸡蛋,而且还要准备各种原材料来亲手加工成火腿肠及调料,最后,你还要自己琢磨出制作煎饼果子的每一个步骤,才能得到你想要的东西。
  一方面,能亲手控制制作煎饼果子的每一个细节是很棒的体验,你甚至可以发明一些截然不同的作法来烹饪一款全新的、独一无二的煎饼果子,这些C语言都能满足你。而高级语言通常只能制作出觉见的味道,尽管这个味道尝起来可能比你亲手制作的要好很多。如果你只是想以最快的速度制作出一款最常见煎饼果子,那么高级语言才是更好的选择,这也是为什么会产生高级语言的原因之一。
  同时,大多数现代的高级语言之所以被发明出来,往往就是为了解决另一种语言的缺点和不足,比如C 在C语言的基础上增加了面向对象的特性,Java又在C 的基础上更简洁易懂,而C#则在Java语言的基础上加入了更多的现代元素。学习C语言,能让你更好的了解高级语言为什么会采取某些特定的设计方式,并更好的利用高级语言提供的便利性。
  四、非常规的应用
  大多数现代编程语言主要用于三件相同的事:业务应用程序、Web和移动应用程序以及数据分析。在这几个领域,高级语言显然更有用武之地,因为这些应用通常并不需要接触计算机的硬件细节。更快的开发速度和更高的可控性是高级语言的重要优势。
  但是如果你想开发直接与硬件相关的软件,就需要一种更低级语言。C语言则是这一领域最常用的语言。显著的应用包括操作系统、驱动程序、编译器、嵌入式系统、游戏引擎等等。
  例如,Linux内核是用C语言和汇编编写的。像Python、PHP、Perl和Ruby这样的流行语言也是用C语言实现的。你知道甚至C语言编译器本身也是用C编写的吗?由于许多嵌入式系统都有严格的资源限制,所以C语言常常是首选语言,因为它的开销很小。
  五、提高你的就业机会
  有两种方式可以保持在软件开发行业的就业优势,一是精通某种最流行、最热门的编程语言,二是在相对冷门的领域深耕。
  高需求的职位涉及许多方面,比如Java、Python和Javascript都是炙手可热的技能,但在一些历史遗留系统方面,C语言程序员则更受欢迎,因为这些系统虽然古老,但往往应用在非常重要的场合,比如银行、电力系统等场合。面对C语言程序员日益减少的局面,在这些冷门行业里,雇主往往更愿意花重金聘请相关的技术人员。
  大部分的培训机构和在线培训网站都提供更多的高级语言训练课程,但有时候学习C语言反而能给你带来更多的工作机会。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多