版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/61912260
TIBOE 有如期的釋出了最新的程式設計語言的排行榜,變化總是有的,這是今年3月的榜單:
關于程式設計語言的争議總是有的,不論是各個論壇,微信群,QQ群,乃至知乎,Quara 等知名網站,總會有對各種程式設計語言的吐槽。一句“PHP是世界上最好的語言”可能會引起一場又一場的激戰,這就話仿佛成了一個“梗”,我自己也忍不住寫了一篇《PHP是最好的語言嗎》,但程式設計語言的鄙視鍊令很多人無休止的追問,這不應該隻是一種程式員間的樂此不疲吧?!
在微服務中,資料庫的內建是一件不會令人愉悅的事,因為分布式系統CAP理論在起作用吧。
- Consistency(一緻性),資料一緻更新,所有資料變動都是同步的
- Availability(可用性) 好的響應性能
- Partition tolerance(分區容錯性) 可靠性
CAP 的核心思想是任何分布式系統隻可同時滿足二點,沒法三者兼顧。
由此,類比到程式設計語言會是怎樣的情景呢?
是否可以對程式設計語言進行抽象呢? 而且抽象到3個次元呢?
根據自己所用過的程式設計語言的經驗(35歲前曾經每年學一門程式設計語言),仿佛可以把程式設計語言歸納到3個限制SAP:
Simple 簡潔明快
- 程式設計語言的讀與寫都容易了解,學習曲線平滑而且短
- 結構緊湊,容易協作與維護
- 擁有豐富的類庫,以及完善的參考手冊
- 依賴少,部署同樣簡單
- ……
Adaptive 适用性強
- 适用于多個應用領域,支援各種層次的抽象
- 伸縮性好,增減依賴都很友善
- 支援多種程式設計範式
- 可編譯執行,也可解釋執行
- 甚至可以定制派生的語言
Performace 性能高效
- 不論使用IDE還是文本編輯器,代碼編寫都很快
- 執行速度快,充分利用CPU甚至GPU的能力
- 編譯的速度同樣快,支援JIT
- 故障定位的速度快,debug快捷精準
如果分成這樣3個限制,會發現它們之間存在着内在的沖突,就像CAP那樣:
SA 是Python,Java,還是……?
AP 是C,C++, 還是 ……?
SP 難道是 彙編麼,還是 ……?
CAP 給我們的啟示是 架構師不要将精力浪費在如何設計能滿足三者的完美分布式系統,而是應該進行取舍。
如果SAP 的猜想是成立的,那麼給我們帶來怎樣的啟示呢? 會不會是混合程式設計是一種必然呢? 沒有仔細閱讀CAP的數學證明,也沒有努力想用數學的方法去證明SAP的成立,現在隻是老碼農的猜想,可能是一種遺憾吧。
回顧一下程式設計語言的曆史,獻上一張來自veracode.com的舊圖:
這是一張不太完整的編年史。老碼農總嘗試溯源,視圖從其他的角度看程式設計語言。
那為什麼會将程式設計語言劃分為S,A,P三類而不是别的什麼呢?
因為老碼農對程式設計的了解是軟體的時空與人的關系。
軟體時空與人的關系是形而上而務虛麼?
老碼農還沒有那個本領,如果想知道老碼農如何思考軟體時空與人,以及全棧與全棧團隊,請關注:
或者在嘉年華之後,見字如面,隻是沒有了現場的那個朗讀者。