相關文章, 中文編程興起的必然性 -- 歡迎看評論,與做者作了一些交流.javascript
[摘要] 知乎上有個問題編程爲何不用中文? 有點意思, 我把回覆單獨整理後, 寫在這了: 編程語言是個符號系統, 可否普遍使用要看使用人員基數php
_java
題主是一個挺"有趣"的程序員, 獨立思考, 提出疑問也有意思, 只是問題自己的表達, 比較可能是在陳述一個事實, 以及題主的思考:python
編程開發語言( 強調可讀性) 當前不多用中文表述.c++
題主認爲: 中文對於咱們中文母語的開發者, 更直觀明瞭啊......git
我我的呢, 不太謙虛的說, 是平面設計者, 自由職業程序開發者, 同時很是喜歡音樂(有個音樂培訓小機構), 在這一基礎上陳述一下我的觀點程序員
就像音樂的曲譜, 音樂家們寫出曲譜, 演奏家們按譜演奏出音樂家所表達的音樂. 注: 音樂是一個不一樣強弱的聲音(包含休止), 以時間長短構成的聲音序列.github
程序員們以某種現代計算機開發語言, 寫出程序源代碼, 表達了本身想讓計算機以及計算機構成的網絡, 相關的工做網元如打印機, 去執行程序但願實施的某些工做或任務, 這些程序源代碼, 最終轉化爲二進制 CPU 執行指令序列, 交由計算機( 們.....) 去執行golang
演奏人或電聲音設備演奏的聲音序列 <----> 音樂符號集 <---> 曲譜 ( 音符構成的表達符號序列)算法
可執行的 CPU/GPU 二進制指令序列 <---> 開發語言指令符號集 <---> 程序源碼( 開發語言符號系統構成的源代碼序列)
JAVA 語言的符號系統轉換, 以下:
某CPU/GPU 二進制指令序列 <---> 彙編語言<---> java中間碼< ---> Java 符號指令集 <-----> java 程序源代碼集合( 與數據)
現代音樂的五線譜:
演奏人或電聲音設備演奏的聲音序列: 音樂 <-------> 五線譜定義的音符<-------> 國際標準通用五線曲譜
由於歷史發展緣由, 編程語言的符號系統, 也一直在發生變化, 但整體變化就兩個方向:
這就很少說了, rust 與 golang 的出現及持續普及, typescript 增強了 javascript, 而 wasm 是 java 中間碼思想在瀏覽器內嵌語言的華麗重生..............以及 LLVM 的持續獲得重視與普遍使用
cpu 指令集 <----->( 彙編語言---------> LLVM.........) <----> 高級開發語言 ( 強調易讀, 強調效率, 強調安全性,強調多態抽象智能........ )
高級開發語言, 有 js / java / c / c++ ................. 固然能夠有中文編程語言
有些領域開發語言, 是某領域的特殊須要, 但也有人員基數在主導, 好比生物基因研究領域, perl 依然是主力, 而機器學習, python 佔有一席之地, 對於數據抽取, sql 是固然的皇者
而通用編程語言, 主要是人員基數在起決定做用, 比較 erlang / haskell 與 java / php 的使用人員基數就知道了
注意, 走的人多了, 沒有路的地方, 也就成了路.
那麼, 影響中文成爲編程語言的因素, 只有一個,有多少人在用或將會使用?
因此, 若是讓中文成爲使用人多的開發語言, 第一個問題, 用中文表示的符號系統(假設完美的定義出來了) , 真的好到能讓不少人承認並使用嗎?
對比:
int var1, var2, var3,var4
if var1 == var2 then var4=var3
中文?
天然數 變量一, 變量二, 變量三, 變量四 若是 變量一 等於 變量二 那麼 變量三 賦值給 變量四
注: 該示例被標註 用中文命名API的意義和途徑
來, 咱們來構建一箇中文開發語言的符號系統 come on.......................................
你們一塊兒來努力 .........
相關:
或許有人想翻翻個人"黑"歷史 ( 自嘲地笑.......... ) 就知道, 我是最先 perlchina 組建者之一. perl 是優秀的開發語言, 自1999到2005年, 用了6年,最終放棄了, 由於 perl 很是優秀, 但部分語法有點晦澀難讀.
java 也是我之前經常使用的開發語言, 符號系統完整而精確, 表達力一流, 看看 java 的泛型, 漂亮啊............ 但 java 的 OOP 被某些 OOPer 過份的強調可重用性而讓代碼層層嵌套, 因此, 我的不喜歡用 java 的某些 framework 們但又不得認可 java 的規範與優秀
固然, 用過 python , 在用 javascript / typescript , 在用 haskell , 在用 plpgsql..........
但 go 語言出現了, 我轉到了 go , 由於 go 語言的符號系統, 簡明直白, 難有歧義, 並且使用 go 的同道者一直在增加.
縱觀計算機的歷史發展, 英語有先發優點, 英語作爲國際通用語言, 使用人數很多, 英語成爲編程語言符號系統, 有歷史與人員基礎兩大緣由
因此, 想要中文成爲某種高級編程語言, 須要用中文編寫一個符號系統, 下接 llvm , 上編譯中文編程代碼....... 我的認爲挺有意義, 但沒什麼建議
而未來的歷史, 由咱們去創造, 題主與支持中文編程的朋友們, 期待中文編程語言的普遍普及.
多說幾句, 中文編程, 這東西只對一個市場有好處, 那就編程培訓市場, 尤爲是青少兒編程培訓市場.
以我的見解, 青少兒學習編程, 絕大多數是浪費時間: 孩子還在學習事物並培養邏輯思惟, 而且在學習國語與英文( 這已是兩個符號龐大系統)的時段, 對語言表達差得遠........ 這時培訓另一個全新的符號系統(編程語言) , 能學到什麼.................... 學出來了也是碼農, 而不是問題終結者這樣的程序員.
_
_
( 注: golang 有 google 大廠與三位計算機大神背書, 發展了10年...........如今這個樣子, 依然有人不看好, 呵呵) .
_
_
關於如何編程, 我認爲,
1.學習某種編程語言的符號系統, 以及這種編程語言附帶的定義問題, 解決問題的哲學, 以及這種語言一些約定俗成的"習慣", "規範", "範式", "模式"....... 套路
- 本身要精於發現問題, 定義問題的內涵與外延 ( 邊界) , 精肯定義解決問題的方法(算法)與步驟.......
- 學會用你學的這種編程語言, 轉化, 表達成爲解決問題或指派計算機(們....) 去幹活的編程源代碼.........
因此, 實現編程, 你有須要,
- 瞭解事物自己, 好比, 瞭解行業基礎, 瞭解業務場景, 瞭解業務流程, 瞭解業務過程當中各細分過程的各數據以及數據處理方式與限制條件( 邊界)
- 用編程語言去表達, 你瞭解的事物與解決流程
最後, 只要精通一種編程語言( 解決問題的方法, 以及用程序語言表達) , 其餘編程語言基本只要熟悉特有的符號系統與"套路", 基本是能夠用了 (固然, 用好, 還得多碼多用............)
_
_
「Any fool can write code that a computer can understand. Good programmers write code that humans can understand.」
---------------Martin Fowler
最後, 祝你們碼錢愉快.........
ps: 編程不爲掙錢, 純爲興趣愛好? 嗯哼, 偶表示不太相信..........吼哈............
_
_
_
網名 tsingson (三明智, 江湖人稱3爺)
原 ustarcom IPTV/OTT 事業部播控產品線技術架構溼/解決方案工程溼角色(8年), 自由職業者,
喜歡音樂(口琴,是第三/四/五屆廣東國際口琴嘉年華的主策劃人之一), 攝影與越野,
喜歡 golang 語言 (商用項目中主要用 postgres + golang )
_