1. 程式人生 > >淺談 計算機軟件科學和技術

淺談 計算機軟件科學和技術

blog 語法 不難 增刪 軟件 href 高級語言 curd 程序

計算機軟件技術 的 核心技術 是 :

操作系統 、 編譯器 、 關系數據庫 、 圖形學 。

操作系統 包括 操作系統 和 虛擬化, 虛擬化 又包括 虛擬機 和 容器 。

在 4 個 核心 技術 中, 圖形學 是 最難的 。

如果要 按照 難度 從高到低 排一個 順序, 那就是 :

圖形學 -> 編譯器 -> 操作系統 -> 關系數據庫

搞一個 圖形學 要 50 年,

搞一個 編譯器 要 30 年,

搞一個 操作系統 要 20 年,

搞一個 關系數據庫 要 10 年 。

圖形學 是一個 數學問題 。

圖形學 = 60% 的 數學 + 40% 程序設計, 有網友說是 硬件問題, 好吧, 硬件問題 也包括在 程序設計 裏 。

跟 圖形學 比起來, 操作系統 就像是 增刪改查(CURD) 的 業務系統 。

操作系統 的 門檻積累 在於 對 硬件 的 了解 。

編譯器 具有 很高 的 邏輯復雜性, 編譯器 的 邏輯復雜性 高於 操作系統, 編譯器 是 操作系統 之母 。

有一個 好的 語言, 寫 操作系統 並不難 。

編譯器 的 復雜 來源於 語言語法 的 復雜, 高級語言 復雜的 語法特性 會讓 編譯器 更加復雜,

編譯器 的 復雜 還 來源於 優化 , 即 編譯器 對 代碼 的 優化 。

優化 的 復雜 在於 需要 編譯器 理解 代碼 的 意圖,

優化 的 門檻積累 在於 對 操作系統 和 硬件平臺 的 了解 。

關系數據庫 是 4 個 核心技術 中 的 小弟, 關系數據庫 的 復雜 在於 數據存儲格式 和 檢索方式 。

關系數據庫 誕生 和 興起 的 年代 是 以 機械存儲器 作為 外部存儲器 的 年代 。

所以, 關系數據庫 需要 以 順序存儲 為 基礎, 但要 兼顧 查詢 的 效率, 又要 兼顧 插入 修改 刪除 的 效率 。

在 內存 並不大, 也沒有 快速的隨機存儲器 作為 外部存儲器 的 情況 下, 要 達到這些 要求, 需要 精巧 的 設計,

這個 精巧 的 設計 是 復雜的, 包括 數據存儲格式, 檢索(查詢)操作, 插入 修改 刪除 操作 。

在 海量內存 和 快速的隨機訪問的外部存儲器(如 固態硬盤) 普及 的 時代, 高速 的 離散存儲 成為 可能 。

在這樣的趨勢下, 也許 關系數據庫 會 逐漸 淡出 歷史舞臺, 取而代之 的 是 NewSql 數據庫(離散存儲 數據庫) 。

可以參考我之前寫的一篇文章 《我發起了一個 .Net 平臺上的 NewSql 數據庫 BabanaDB》

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

淺談 計算機軟件科學和技術