第26章 不打算上课了-《回到1997造芯片》


    第(2/3)页

    但在计算机领域,硬件和软件从来就不是能相互分离的东西。准确来讲,硬件和软件是一种相辅相成的关系,就如同汽车和发动机一般:一辆没有发动机的汽车,只是废铁架子一堆;而单纯的一个发动机没有其它结构支撑,也根本就是一坨破烂。

    唯有硬件这个车架子和软件这个发动机相互配合起来,才能在信息化这条大路上越走越远。

    而计算机科学与技术,就像胶水一般,将硬件和软件紧紧黏合在一起,精通计算机科学后,既能对硬件技术有深刻的了解,也能抬手写上几个软件,更加能够深刻地理解在应用背后飞速运转的计算机逻辑,也能在软件趋势下对硬件逻辑加以改进。

    当然这个专业的缺陷也相当明显:在就业方面,在硬件方面竞争不过信工专业,在软件方面竞争不过软件专业,更不要提其它的网络、通信那些更具有偏向性的专业了。所以一般计科的毕业生不少都是选择继续深造,或者是在实习时更加卖力地学习更多偏向市场方面的知识,以谋求更好的就业前景。

    在大学一年级的时候,所有的专业学习的知识都还是比较通用的,比如c语言,它几乎就是每个计算机相关专业学生的必修课,因为它纯粹就是一个面向硬件的编程语言!

    打个比方,你可以把内存想象成一个书柜,通过c语言,你可以像一个管理员一般,轻松地将书柜上的各类书籍取下,也可以将新书存入其中——也就是说,它直接操作的是硬件,而并非是操作系统,这也是大多数高级语言所达不到的效果。

    只要学习了c语言,就能明白硬件和软件背后是如何相互配合开展工作,也能更深层次地理解计算机的本质。

    “怎么没有delphi呢?”一旁的徐建松迅速翻看了每一种教材,面色疑惑地喃喃地道。

    “现在当然是没有这种东西的。”见到徐建松的疑惑,王向中也是笑了笑,解释道:“delphi是高级语言,是一种面向对象的编程语言,按照课程安排来讲,大一就学这个太早了。”

    所谓高级语言,便是更加接近于人类语言的一种编程语言,其语法逻辑更像是在“下达命令”。

    它们大多不像c语言那般,直接针对硬件进行操作,而是将各种硬件操作功能打包,糅合成所谓叫API(Application Programming Interface,应用程序接口)的东西,只要将参数传递给API,就能轻松实现c语言几百行甚至上千行代码才能实现的功能。

    高级语言可以摆脱程序员对背后机制的思考,将更多的精力放在功能实现这个主要矛盾上,而这也是“面向过程编程”和“面向对象编程”的本质区别。

    就拿炒菜打比方,首先要洗菜切菜,接着是下锅烧油,再然后炒菜加调料,最后出锅,洗锅。

    而所谓面向过程编程,就是要逐步下达指令,从头开始将每一步的操作告诉计算机,假若哪一步出了错,或者是忘了洗锅,接下来面临的就是各种各样的错误。如果你想炒五个菜,则你需要往复循环不厌其烦地把整个过程重复循环五遍,计算机才能实现出你想要的效果。

    而面向对象编程,则可以将炒菜的一整套抽象动作写在一个叫“对象”的东西里,毕竟炒菜是一个机械的工作,接下来只需要向计算机“下达命令”,例如我要炒五个菜,那计算机就会按照炒菜的逻辑自动循环执行五次,无疑是相比前者方便不少。

    相比于面向过程的呆板而言,面向对象编程的优越性在于重用性、灵活性和可扩展性,更加符合人类的思维逻辑。

    当然,面向对象编程也不是完美无缺,选择它,就意味着需要牺牲一定的性能,随着软件纳入的功能越来越多,整个软件的内容越来越臃肿,相应的它的执行效率就会变得低下,就需要占用更多的硬件资源,也就是所谓的“吃硬件”,这也是更新软件和系统后,手机和电脑会越来越卡的本质原因。
    第(2/3)页