## 無極生太極
最早的計算機是圖靈計算機(機械計算機),后來電學發展成熟,就出現了電子計算機,后來晶體管技術成熟,制造大規模集成電路成為可能,于是就有了我們今天方便的便攜筆記本和手機。
計算機的核心是CPU,但是CPU只認識0101,圖靈計算機的運算需要扳動計算機龐大的面板上無數的開關來向計算機輸入信息,然后來進行運算操作,這實在是太麻煩了。電子計算機就方便很多,最早是使用穿孔紙帶來編寫程序,但是這也非常麻煩。
于是就發明了匯編語言,但是匯編編寫大型程序還是很費力,于是發明了高級語言C語言,后來覺得C語言還不夠高級,于是有C++,C#,java,后來為了適應各個領域,在特定的領域還誕生了很多語言,比如web之王的php等等。
那么問題來了:
php是基于C語言的,也就是php使用C語言寫的,用C語言實現的,那么C語言是用什么實現的呢?
C語言使用匯編實現的。
好,那么匯編是用什么語言實現的。
匯編使用機器碼實現的。
那機器碼是用什么實現的?
這似乎陷入了一個無限循環。
* * * * *
其實這個問題要這樣去思考:
假設混沌初開,上帝讓你創造世界,但是只給了你一堆廢鐵,你要怎么做?
首先你要利用這些廢鐵創造出一把錘子當做工具。
但問題是,在什么都沒有的情況下,利用一坨廢鐵創造出一把錘子是何其艱難啊。
不過沒什么,盡管這第一步非常的困難,但是由于一開始這把錘子不需要造的有多好,只要能用就可以了,所以簡陋一點沒事。
于是經過一段時間的艱辛努力,你的付出終于換來了回報,錘子造出來了,盡管還不夠好,但是造出來了就已經很了不起了。
然后你利用這把錘子來制造更多的工具,由于使用了工具之后,你造別的東西的速度就很快了。
然后,扳手,斧頭,鋸子,……,等等各種工具都創造出來了,這時候利用工具,你造出來的東西不光質量好,還更快。而這一切,你不會忘記都是最初的那一把爛錘子,一堆破廢鐵的功勞,沒人比你更明白這一切,和其中的艱辛。
所以,計算機語言也是這么來的。
>[danger] 所謂實現計算機語言,或者說是發明一個語言,一般來說,至少包含兩個東西:1. 語言規范,2. 語言的編譯器(編譯型語言叫編譯器,解釋型語言為解釋器或者是運行環境)。
題外話:編程使用26個字母和10個數字,再加一些符號,有這些就足夠了,組合起來能創造出一切!
### 參考
[第一個 C 語言編譯器是用什么語言編寫的?](https://www.zhihu.com/question/19934285)
> 無極生太極,太極生兩儀,兩儀生三清,三清化萬物。
[編程語言是如何誕生的? - 知乎專欄](https://zhuanlan.zhihu.com/p/26696434)
> 因此,早期的計算機通過翻轉開關進行編程。
[極簡編程語言](http://mp.weixin.qq.com/s/xgVC-pI9fEVn2FT1LPPBbw)
* * * * *
使用C語言,很大程度上依賴于頭文件,printf函數就是頭文件提供的。
C語言的打印的函數是頭文件中定義實現的,那頭文件中的打印函數又是怎么實現的呢?
匯編,不是吧。這又是一個雞生蛋,蛋生雞的問題了。
有時間再實驗,只有看頭文件的源代碼才能知曉了。
待續:2017-9-20 13:08:05
* * * * *
> ……其他類似的古老的語言有 FORTRAN, COBOL, LISP, BASIC, 和ALGOL 家族,這些語言的唯一不同之處在于,他們為誰設計,FORTRAN是為科學家和工程師設計的,他們在計算機上編程的目的是是為了解決問題.COBOL是為了商業設計的,最好的體現在于讓商人們可以利用電腦時代.LISP是了計算機科學研究設計的,最突出的體現在計算機基本原理研究.BASIC是為初學者設計的.最后,ALGOL語言是有計算機程序員修改,演變成其他流行的語言,如C,Pascal和Java的一個龐大的家族。
作者:匿名用戶
鏈接:https://www.zhihu.com/question/24447820/answer/123307128
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
* * * * *
[軟件是用編程軟件編的,編程軟件又怎么來的?-悟空問答](https://www.wukong.com/question/6480260387840196877/?share_ansid=6481189367464329486&wxshare_count=1&tt_from=weixin&utm_source=weixin&utm_medium=topic_android&utm_campaign=client_share)
~~~
無極生太極,三清化萬物。
讓你徒手蓋一棟房子你會怎么做?
首先你需要磚塊,你需要鐵鍬等工具。
但是你只有一雙手,除此之外什么都沒有。
不過大自然還是有些東西供你使用的,比如沙土,石頭等。
你開始可以用手挖泥土做磚。
有一天你挖到了鐵礦。
甚至你學會了鍛造鋼鐵的技術,于是你用石頭捶打赤鐵,得到一把簡陋的鐵錘。
這個過程異常艱難,不過你還是做到了。
慢慢的,用這把鐵錘,你制作出了更高級的工具,鐵鍬之類的。
有了先進的工具,繼續利用工具制作更先進的工具。你建造房子的速度就快了。
于是你的房子就建成了。
~~~
* * * * *
last update:2017-11-9 22:54:09
- 開始
- 開發工作流
- 優秀的設計資源
- 網站權限的思考
- 好習慣
- TODO
- 你就是想得太多,做得太少
- 思考
- 產品設計
- 為什么需要設計
- 使用體驗
- 插畫設計
- 產品價值
- 時間機器
- 有跡可尋
- 設計怎么做的高大上?
- 交互狀態
- 過度效果
- 把用戶體驗做到極致是種什么體驗?
- 用戶都是沒有耐心的
- 用戶是小白
- 默認頭像
- 用戶價值的沉淀
- 專注-極致
- 簡潔
- 界面的思考
- 聆聽用戶反饋
- 常見問題
- 匿名私密性
- 產品與心理學
- 用戶心理
- 人性
- 商業
- 容錯性
- 回歸本真
- 權限-隱私
- 簡單就是最好的
- 個性化
- 無負擔使用體驗
- 用戶消息通知系統
- 用戶私信會話系統
- 友好的提示設計
- 從細節之處讓用戶愛上你
- 擬人情感化
- 任務機制
- 網賺模式
- 好看的顏色
- 免費激勵
- 操作記錄
- 用戶動態
- 回收站
- 二級密碼
- 產品與人的思考
- 產品運營
- 解決方案
- 項目立項
- 雞賊設計
- 空頭支票營銷法
- 陰暗設計
- 信息與大腦
- 驅動性
- 安全
- 解決方案與產品的區別以及關系
- 自動修正用戶錯誤
- 產品研發的三個階段
- 什么是好的產品
- 運營
- 警惕設計上的漏洞
- 心得體會
- 無極生太極
- 回歸本質
- 設計可以不用那么糾結
- 業務與技術
- 開發感想
- 人生苦短,來不及找尋所有答案?
- 人活著的意義
- 談開源
- 代碼與詩
- 心理
- 困擾
- 關于糾結
- 其它思考
- 獸爺|疫苗之王
- 記錄
- 哲學
- 宇宙
- 沒有絕對完美的系統
- 先賢
- 生命的意義
- 心即宇宙