Computer Science和Computer Technology的联系我就不想说了。两者肯定有很密切的联系。我主要想说说两者的区别。为什么要谈区别呢,原因就在于,对待两者的态度可以决定了一个人究竟在计算机行业中处于什么位置。
举一个例子,如果一个人在谈论编程语言,那么下面的情况就可以断定这个人在谈论Computer Technology层面的东西。比如,这个人谈论Java的Spring框架,谈论GUI设计库的好坏,谈论C#如何实现编辑软件。总之,就是谈论语言如何去做软件。
而Computer Science谈论到编程语言,就要谈论,这种语言是什么类型的语言。编译器如何实现。如何扩展这种语言。语言中的某个特性如何影响语言的整体效用。很多时候,这种讨论完全不用具体到一个实际存在的语言上。
还有例子。比如谈论对库的应用,Computer Technology谈论的是如何高效使用库,库与库之间的优劣。而Computer Science谈论的绝对是库如何设计,其中的哪些算法可以改进到线性级别。
再比如,Computer Technology知道有链表,知道有排序,但是只要知道他们在标准库里在什么位置,如何使用就行了。但是Computer Science却要理解,链表是如何实现的,插入算法是什么,排序有哪些,时间复杂度是什么。
还可以举例子。谈论到操作系统,Computer Technology喜欢比较不同操作系统的优劣。喜欢谈论哪个操作系统的界面更加华丽。而Computer Science则注重系统是如何实现的。系统的内存管理算法是否改进,系统是否支持多核,如何支持,调度算法是什么。
总而言之,Computer Science注重的是理念和算法,不太在意具体的工具或者环境。实际上,著名的《The art of programming》就完全和平台无关,甚至里面的代码都建立在一个完全虚构的计算机和开发语言上。而Computer Technology则注重自身的环境,什么系统,什么中间件,什么语言,并因此来划分各自所属的阵营。
当然,上面说的都是一些感性的认识。实际上,Computer Science和Computer Technology是互相渗透的。
没有评论:
发表评论