浅谈 计算机软件科学和技术

计算机软件技术 的 核心技术 是 :

 

操作系统 、 编译器 、 关系数据库 、 图形学  。

 

操作系统 包括 操作系统 和 虚拟化,  虚拟化 又包括 虚拟机 和 容器  。

 

在 4 个 核心 技术 中,  图形学 是 最难的 。

如果要 按照 难度 从高到低 排一个 顺序,  那就是 :

 

图形学 -> 编译器 -> 操作系统 -> 关系数据库

 

搞一个 图形学   要 50 年,

搞一个 编译器   要 30 年,

搞一个 操作系统  要 20 年,

搞一个 关系数据库  要 10 年 。

 

图形学 是一个 数学问题 。

图形学 = 60% 的 数学  +  40% 程序设计,   有网友说是 硬件问题, 好吧, 硬件问题 也包括在 程序设计 里 。

 

跟 图形学 比起来, 操作系统 就像是 增删改查(CURD) 的  业务系统  。

操作系统 的  门槛积累 在于 对 硬件 的 了解  。

 

编译器 具有 很高 的 逻辑复杂性,  编译器 的 逻辑复杂性 高于 操作系统,  编译器 是 操作系统 之母 。

有一个 好的 语言,   写 操作系统 并不难 。

 

编译器 的 复杂 来源于 语言语法 的 复杂,  高级语言 复杂的 语法特性 会让 编译器 更加复杂,

编译器 的 复杂 还 来源于 优化 ,   即 编译器 对 代码 的 优化  。

优化 的 复杂 在于 需要 编译器 理解 代码 的 意图,

优化 的 门槛积累  在于 对 操作系统 和 硬件平台 的 了解 。

 

关系数据库 是 4 个 核心技术 中 的 小弟,  关系数据库 的 复杂 在于 数据存储格式 和 检索方式  。

关系数据库 诞生 和 兴起 的 年代 是 以 机械存储器 作为 外部存储器 的 年代 。

所以, 关系数据库 需要 以 顺序存储 为 基础,   但要 兼顾  查询 的 效率,  又要 兼顾 插入 修改 删除 的  效率 。

在  内存  并不大,  也没有  快速的随机存储器  作为 外部存储器 的 情况 下,   要 达到这些 要求,  需要 精巧 的 设计,

这个 精巧 的 设计 是 复杂的,   包括 数据存储格式, 检索(查询)操作,  插入 修改 删除 操作 。

在 海量内存 和 快速的随机访问的外部存储器(如 固态硬盘) 普及 的 时代,   高速 的 离散存储 成为 可能  。

在这样的趋势下,   也许  关系数据库 会 逐渐 淡出 历史舞台,  取而代之 的 是  NewSql 数据库(离散存储 数据库) 。

可以参考我之前写的一篇文章  《我发起了一个 .Net 平台上的 NewSql 数据库 BabanaDB》

https://www.cnblogs.com/KSongKing/p/10255420.html     。

 

猜你喜欢

转载自www.cnblogs.com/KSongKing/p/10326733.html