同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

最近略忙,整理一篇舊文分享

————————懸而未發的分割線————————-

不管你發不發微信朋友圈,只要你還看微信朋友圈,那麼大機率被推過以下這條廣告。

推送情況我沒有統計數字,但是接近 100% 的機率你會看到你的朋友們在下面點贊、點評、發廣告、版聊、撩騷……

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

會 Python 的人,工作都不會太差。追上同齡人,就趁現在。

一開始的疑惑:

Python 真的能換來好工作嗎,或者Python ≈ 不差工作?作為一名用 Py 寫過彩票機率統計分析工具、淘寶優惠券搜尋程式、微信機器人、Excel 批次格式化小工具、圖片批處理……的非職業 Py 程式設計師,好像這個除了給處理重複性工作帶來些許便利,也許就只是“好玩”+“輪子多,不用重新造”這倆印象了。

更深的疑惑:

我們都知道所有能多次重複持續投放的市場廣告,必定是在 ROI 上獲得了多次正向的自我強化,讓老闆開心,讓運營滿足。但是 Python 真的值得買課程嗎?這個課程值得嗎?

學了真的能追上同齡人嗎

(我的師兄師弟有幾個福布斯 30 under 30 的,就以他們作為小目標了。思聰就不追趕了)?

於是我想起了郭德綱的經典:

“男相聲演員不準戴金錶”,因為觀眾會傷心——“我的錢買的”,但是“漂亮的女演員可以穿金帶銀”,因為“那是我的錢買的”——自豪臉。

(看以下配飯配摸魚影片,32秒,強烈推薦)

閒話少說,先入正題。

行業同仁們應該都還記得今年 6 月初,國際 CRM 巨頭 Salesforce。com 史上最大的收購案——157 億美元收購資料分析軟體公司 Tableau Software。

這一筆收購一定程度上用於強化其自身的 Einstein 愛因斯坦人工智慧平臺,很明顯,Salesforce 把資料分析能力當作是生死攸關(至少是非常重要)的一環。

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

插個嘴:同樣是今年 6 月初,Google 收購資料分析公司 Looker;2007 年 10 月 SAP 以 67 億美金併購 Business Objects,同一年 11月 IBM 以 50 億美金收購了BI公司 Cognos(這也是截至當時 IBM 金額最高的收購)。有趣的歷史。

然而在 2017 年 Einstein 分析平臺正式推出前,

Salesforce 放棄了使用多年的 C + Python 後端並且用來自 Google 的 Go 語言 - Golang 重構了一套東西。

而這才是本文的關鍵關注內容的開端。

根據 Salesforce 首席架構師 Guillaume Le Stum 的說法,在 Einstein Analytics 正式推出之前, 作為雛形的查詢引擎和資料集建立工具都是用 C 語言編寫的,並且透過 Python 包裝了一層,用來提供諸如解析查詢的功能以及構建 REST API 服務。

Le Stum在Stack Overflow上的一篇文章中(https://stackoverflow。blog/2019/10/07/how-salesforce-converted-einstein-analytics-to-go/)解釋說:“從本質上講,兩全其美。”

“ Python 非常適合快速編寫頂層(相對底層)的應用程式,但並不總是能夠提供企業級所需的高效能。

C 可以建立高效能的可執行檔案,但是新增新功能會花費很多時間。

所以,C 和 Python 結合的模式既滿足了效能要求,也提供了業務靈活性,看起來很符合傳統上大家對他們的認識。

為什麼對 Python 始亂終棄

但是在 Einstein 釋出之前,隨著應用的不斷擴充套件,整套平臺的效能下降很嚴重——不屬於核心查詢引擎的所有新功能都放到 Python 程式中——然後結論就是,儘管 Salesforce 可以使用 Python 快速開發和部署功能,但最終系統變慢了。

“ Python不能很好地執行多執行緒,因此要求 Python wrapper 執行的越多,它的執行效果就越差。”

“ Python使用鬆散型別變數,這對於一個需要快速開發新想法並將其投入生產系統的小型團隊非常有用,但對於某些客戶為此付出數百萬美元的企業級應用程式而言,效果不佳。”——說真的,旁觀者小陳也不敢想象賣得這麼貴的 SFDC 系統在 2017 年的時候還用這種架構。

“ Python 庫的依賴關係、版本和檔案機率將變得很繁瑣,巨大的依賴噩夢。因此,在 2014 年我們就決定將 Python 移植到 Go。”

在 Le Stum 的文章中,他表示,Go的優勢包括其內建工具、快速的編譯時間和部署時間、更輕鬆的故障排除以及更易讀的程式碼,以及跨平臺特徵。

“在 Python 中,你可以編寫幾乎是數學級優雅的程式碼。但是如果不是你編寫的程式碼,那麼優雅就可能以可讀性為代價。”——碼農/工程師們花費比編寫程式碼更多的時間來閱讀程式碼。

另一方面,Go 是為適合 Google 生產系統的大型應用程式而構建的,所以 Einstein Analytics 從混合C & Python 應用程式轉變為 Go 應用程式。——儘管還用了 Java 和 SFDC 不願意公開的一些開發語言。

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

深挖一下 Go 和 Py

再次重申,本文不是為了吹爆 Golang,而是客觀地描述 Python 並不是程式設計師世界的唯一高薪可能性……

僅僅對比 Go 和 Py,我們看看國外版逼乎 Quora 的高贊回答:

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

“顯然 Python 在與資料科學相關的任務中表現出色,而 Go 在與效能相關的任務中表現出色。”

“如果效能不是很關鍵,如構建 RESTful 或 RPC Web 服務等常見的應用——當我構建這類東西時,由於 Go 中缺少功能豐富且文件齊全的庫(例如 Flask、SQLAlchemy、Django等),與 Python 相比使用 Golang 通常花費2到3倍的編碼時間。但我們不是生活在一個完美的世界中,編碼並不是啟動和執行應用程式的唯一步驟——與除錯 Golang 應用程式相比,我通常花費比除錯 Python 少 5 倍的時間。這就是 Golang 的亮點。”

“因此,當我做一些例如最小概念驗證、興趣愛好或其他應該很快可能完成的事情,並且不會變成一個大專案時,Python是我的首選語言(無需編寫太多程式碼,可以使用一些庫)。”

“但是對於所有需要長期支援的事情,尤其是由更大的開發團隊支援的事情,我會選擇 Golang(易於除錯,易於為其他人研究程式碼)。”

“沒有明確的贏家,這兩種技術都是完美的,要看具體的 case 來判斷。”

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

Python 只是最流行的工具

於小陳的看法,Python 看起來真的什麼都能做,什麼都能用來偷懶,而且看起來還好學。

但是它真的不是萬能的,而且正因為入門容易,所以”能帶來高薪“才更加不可思議。

商家會有商家的一萬種利益相關宣傳,讓你覺得,只有跟著”比我更懂更聰明的人“,才能獲得成功,”過上他們在廣告裡描述的生活“。

同齡人真的都在用 Python 嗎?從朋友圈廣告、Salesforce 和 Google 說起

有沒有朋友給朋友圈那家 Python 培訓的交過錢,能不能告訴我他們的收費定價和運營模式,我真的好奇。

另,提供 1對1 或 1對多 Python 入門及進階教學服務,提供 Python 程式外包開發服務(太複雜的我還可以帶人組團接)。

TAG: Pythongo應用程式GolangSalesforce