撕B —— Perl, PHP, Python, 以及美國白宮陣營,IntelCPU陣營,小作坊陣營

Solitaire發表於2019-01-19

Python, 2018年度全球最佳程式語言,這個訊息,毫無疑問,大家已經知道

這裡提一點看法

Python, 在個人看來,是失敗的

你總不能說,美國白宮的人都是傻 B;你也不能說,聯合國總部的人,都是傻 B

但是,為什麼,美國白宮的站點,和聯合國總部的站點,都沒有使用 Python ? 這個年度最佳程式語言 ?

要知道,php 與 python 幾乎都是在上個世紀90年代橫空出世,

美國白宮和聯合國總部的人,當時是本可以選擇python的,但是他們沒有。WHY?

毫無疑問,他們的選擇,間接證明本人的觀點,python是失敗的

python很狡猾,它被今天廣泛應用的原因,只有一個,就在於它支援數學中的複數概念

但這不足以彌補他自己異想天開,所埋下的缺點 —— 類定義(class)

Perl, PHP, Python

類定義,最最成功的是perl —— 因為perl知道class的難度—— 所以,根本不趟渾水 —— 一開始就不支援

Python,最最失敗的 —— 類屬性竟然不是明確定義出來的,而是通過內部函式呼叫來動態新增的 —— 這還不算最失敗的 —— 最失敗的是類的成員變數 —— 實質就是C++中的static變數 —— 而在Python中這個所謂的(靜態)成員變數,竟然還要區分public, proteced, private —— 把C++中的一個簡簡單單的static變數,搞得如此本不應該的繁雜 —— 難道它這是想上天嗎?

這種自以為是的類定義,個人認為,是當初美國白宮和聯合國總部的技術專家,果斷拋棄python的根本原因

PHP的類定義,就很中規中矩,尤其是名稱空間的概念,在使用中與目錄概念完全吻合,易於使用和理解;而不像C++那樣,自己定義一個作用域的抽象,與目錄概念無關

基於Web,IntelCPU陣營,沒有跟隨美國白宮和聯合國總部的腳步,而是使用C++來實現

python中,也有極為優秀的一面,因為你也不能說,2018年,全世界的人,都是傻 B —— 畢竟是全世界的人選出的年度最佳程式語言

但是,個人認為,python第二個敗筆是 —— 可變變數和不可變變數

其實,這是python語言開發團隊的無奈選擇 —— 為了避免頻繁拷貝記憶體區

但是,把string定義為不可變變數,這是不道德的 —— 導致的後果就是,頻繁分配記憶體區

而把int/long定義為不可變變數,這就道德嗎 —— 導致的後果是,python變得很慢很慢很慢 —— 如果你能想象一下,計算機為了把象天上的星星一樣多的int/long進行不斷地頻繁的分配記憶體小塊——注意,分配時,還要基於64位/32位對齊 —— 上帝都會嗤之以鼻的

python的優點,它對數學非常友好,適用於工程計算,為此新增了不少對數學的精細支援,複數是一個,還有很多,不一一列舉

因此在美國大學及科研機構很受追捧,當然在眾多搞科研的國人中,也不缺鐵桿粉絲

小作坊陣營

小作坊,就是短平快的打法,就像餐廳的服務員,端盤子端碗,掃地麻灰,油汙遍地,Web程式設計就是一個字 —— 髒,碎片檔案遍地都是,跟餐廳工作的性質一致 —— 髒 —— 餐廳的掃地大媽(備註一個月3000,4000到5000不等)

Perl,是對C++的拙劣的改造,變得更復雜

Php, 是對C++的有意義的改造,變得容易

python, 是對C++的過度改造,有一點走火入魔,變得更復雜

Java

為什麼,在Web中的是Javascript, 而不是Java,要知道,當初Java的SUN公司和網景公司(當初微軟還是小個子),可是穿一條褲子的。這說明,當初網景公司的精英團隊,都嫌棄Java的繁瑣,所以才又開發了另一門語言——Javascript

所以,可想而知,Java這個被嫌棄的語言,是否適合小作坊的短平快的要求

展望:

C++/Java註定被取代,因為C++/Java中繼承了C中,最不該繼承的東西,就是變數的型別標記

int a=100 struct a=記憶體塊 和 a=100 a=記憶體塊

這在組合語言中,有任何區別嗎?

答案是,幾乎沒有,a,在CPU核心中,本來就沒有任何型別,只是一個值(一個變數值或者地址值)

世界正在改變,物件導向程式設計,其實(在某種形式上)又回到了組合語言,更貼近與CPU硬核邏輯

相關文章