咱們來看看Python如何在8年時間裡逆襲的?曾經是多麼的不受微軟待見
Python 是微軟未來雲端計算的一個重要組成部分,是服務和團隊需要支援的語言之一,也是微軟公司內外快速增長的資料科學和分析領域最受歡迎的語言。但一直以來,Python 在微軟似乎從來沒有享有如此高的盛譽。
2010 年,我們的一些 Python 程式設計師非常低調,以防有人注意到他們,把他們拉入自己的專案。他們為數不多,是從之前的工作中留存下來的,但卻一點一點地改變患上“非我原創(not invented here)”綜合症的公司文化:Python 屬於其他人,所以微軟對它不感興趣。
在這裡給大家推薦一個python系統學習q群:250933691有免費開發工具以及初學資料,(資料分析,爬蟲,機器學習,神經網路)每天有老師給大家免費授課,歡迎一起交流學習
然而,過去八年卻發生了戲劇性的變化。微軟的很多產品現在都開始支援 Python,還有一些最新的產品只支援 Python。我們的一些關鍵工具是用 Python 開發的,而且我們也正在積極地在這門語言和社群上投入。
從 2011 年加入公司到現在,我有幸參與了一些重要的 Python 專案。現在,我在為 Python 在微軟的發展壯大貢獻著一己之力,並與社群合作,讓每個人都能更好地使用 Python。
Visual Studio 中的 Python
在加入微軟之前,我還只是澳大利亞的一名研究生,不過我當時已經是 Visual Studio 的鐵桿粉絲和 Python 開發者。微軟在 2010 年第一次釋出 Visual Studio(PTVS)Python 工具時,我感到無比興奮。.NET 的 Python 版本 IronPython 已經交給了社群,Dino Viehland 和 Shahrokh Mortazavi 組成的一個小團隊繼續為微軟產品提供 Python 支援。經過與法律團隊數月的談判,PTVS 基於 Apache 2.0 許可託管在 CodePlex(微軟的前開源託管服務)上,並開始接受外部的貢獻。
作為一名 Python 開發者,我很高興能夠使用最早的 PTVS 版本,並幫忙找到和解決了一些 bug。一個多月之後,PTVS 開發經理問我是否有興趣作為暑期實習生加入微軟。一年後,我順利成為雷德蒙德辦公室團隊的一名全職員工。
由於我們的團隊具備最豐富的 Python 知識,所以理所當然地成為為微軟 Azure 提供 Python 支援的團隊。最初版本的 Azure SDK for Python 是由我們的團隊開發的,這個團隊現在有五個人,隨著 Python 重要性的提升,我們已經能夠將這項工作交給專門的團隊。後來,我們招來了 Laurent Mazuel,他是讓 Azure Management SDK 取得成功的核心人物——能夠協調 100 多個 Azure 服務並生成一個同一的庫絕對是一個巨大的挑戰!
在接下來的幾年裡,我們看到我們的專案在使用者和實用性方面都經歷了顯著的增長。每次釋出新版本都會在 Twitter、Reddit 和 Hacker News 引起人們的關注和討論,很多人不相信微軟正在做與 Python 有關的東西,包括我們自己的同事在內。我辦公室旁邊的一位開發同事直到半年後才知道到我們實際上是一個 Python 團隊。
我們的工程團隊每年都會參加各種 Python 大會,在大會上展示我們開發的工具。但我們在微軟內部還不夠強大,還無法獲得營銷團隊的支援,所以我們讓工程師負責規劃、人員配備、裝修和運營展位。有時候,我們會衝到當地的印刷店,以便在最後一刻打印出更好看的標誌,或者跑到雜貨店購買巧克力,因為我們真的沒有什麼可以拿出手的好東西。我們經常感覺自己是一家存活在大公司內的小型創業公司!
PyCon US 2014 微軟展臺
一直以來,公司內外的人都認為 PTVS 是一個社群專案,但卻沒有意識到我們其實也是屬於微軟的。不過也有一些跡象表明,這種情況有在改善。比如,我們找到負責 visualstudio.com 的市場人員,並讓他在主頁的語言列表中加入“Python”。不出所料,這引起了一些人的注意,我們開始看起來更“官方”了。
後來,我們開發的工具被新增到 Visual Studio 2015 安裝程式中,這也是一個轉折點。這個版本包含了一個改進過的“自定義”頁面,其中簡化了核心選項,並添加了很多“外部”元件。使用者可以勾選 Python,而無需下載 Python 安裝程式,這也是有史以來的第一次。
Visual Studio 2015 安裝程式,包含了 Python 工具
隨著我們的使用者數量的飆升,引起了越來越多人的關注。我們不再低調了!PTVS 遷移到了 GitHub 上,Python SDK for Azure 比預期的更受歡迎,而這一切開始真正引領微軟的文化變革。
成為 Python 貢獻者
在 PyCon US 2015 大會上,我自願為 Windows 提供 Python 支援,這個提議很快被接受,經過多次與法律團隊的交涉後,我很快成為 CPython 的核心開發者。
對於 Python 3.5,我將 Python 使用的 Visual C++ 2010 編譯器和執行時遷移到最新版本,其中包括專門針對 CPython 做出的變更。我還重寫了安裝程式,修復了安裝方式,並將安裝目錄改到了更為安全的目錄。最後,我開始負責開發 python.org 上列出的所有 Windows 版本的 Python。
舊的 Python 安裝程式以及 Python 3.5 的新安裝程式
現在,我們有五個 CPython 核心提交者,並且獲得了時間上的授權,我們可以花時間在這個專案上。我們致力於改進相容性、註冊、花哨的新圖示、JIT 鉤子以及其他更多正在進行中的工作。受僱於大型公司並擁有自己的專案,這樣有助於我們看到一些問題,而這些問題是純粹的志願者看不到的。我們付出的時間是有償的,因此更加能夠給 Python 社群帶來令人滿意的積極影響。
身處文化變革之中
當有人走過來問你有關 Python 的事情而不是你主動去告訴他們時,你就知道,公司的文化正在發生變革。我們認為跨平臺 Azure CLI 是我們的一個主要勝利。它最初用 Node.js 開發,後來,它的開發團隊發現維護這麼大的命令列工具越來越困難。在研究替代方案時,他們向我們尋求幫助。
討論過程大致如下:
CLI 團隊:“我們並不瞭解 Python,但對於可擴充套件的命令列工具來說,Python 似乎是一個不錯的選擇”。
Python 團隊:“是的,它會是一個不錯的選擇。”
CLI 團隊:“你們能否幫我們建立基本的結構?只需要幾個命令,並告訴我們如何保留登入狀態和配置檔案?還有本地化?”
Python 團隊:“當然,我們很樂意”。
CLI 團隊:“你們需要幾個禮拜時間?”
Python 團隊:“禮拜三之前就可以準備好了”。
CLI 團隊感到很驚訝,或許還有幾分懷疑。他們最終接受了我們的提議,我還為他們提供了一個示例:https://github.com/Azure/azure-cli/tree/549f1be8ee881fb309caf3559d9232d3191af81d。
Azure CLI 團隊採用了我們的東西,並將它們變成了世界上最大的 Python 命令列應用程式。Knack(https://github.com/Microsoft/knack)現在是專門用於構建高效能大規模命令列應用程式的 Python 框架,可以處理數千個命令和選項,同時支援引數完成、提示、可擴充套件性、配置檔案,等等。
微軟的 Python Day 海報
雖然我們自己知道 Python 在微軟其實已經很受歡迎,但有一件事還是讓我們感到很驚訝。2014 年末,我們組織了一個內部的“Python Day”,邀請了一些名人,預訂了一個可以容納 100 人的房間,並在辦公室周圍張貼海報。當這一天到來時,因為參與的人太多,我們不得不換到雷德蒙德區最大的房間之一,併為其他全球辦事處開啟了線上直播。有超過 1000 人蔘加或觀看了此次活動——約佔整個公司的 1%(包括所有工程人員、財務人員、人力資源和法律人員)。
Visual Studio 2017 安裝程式,提供了 Python 工作負載
與此同時,Visual Studio 2017 換上了全新的安裝程式。我們從一開始就被包含在內——不只是一個擴充套件連結,而是作為真正的內建功能。不過,我們仍然將我們的工作公開在 GitHub 上,我們的模型也被用在其他的 Visual Studio 元件中。PTVS 是最早的開源 Visual Studio 功能之一,現在有更多的開源功能,包括 Roslyn(C# 和 Visual Basic 編譯器)、MSBuild 和 Visual F# 等。
我們還採用了由社群開發的 Visual Studio Code Python 擴充套件,並招來了它的開發者 Don Jayamanne,讓他全職與其他開發者一起工作。因為它一開始是開源的,所以必須繼續保持這種狀態,我們的官方 GitHub 儲存庫清楚地表明我們是從原始分支 fork 出來的。
我們是 PyCon US 2019 的關鍵贊助商(這已經是第三次了),所以你們可以期待在那裡見到我們。與五年前不同,我們將擁有一個更好的展臺,並提供大量的演示。我們將介紹我們與 Python 的故事,比如我們如何依賴 Python,如何為 Python 貢獻我們的力量,如何為使用 Python 的使用者提供支援。
不再低調
2011 年,Python 在微軟非常低調。而到了 2018 年,我們為 Python 感到自豪。在我們的開發者工具(如 Visual Studio 和 Visual Studio Code)中都能看到 Python 的身影,我們在 Azure Notebook 中託管它,並使用它來構建 Azure CLI,等等。我們聘請了五位核心 CPython 開發者,還有很多其他貢獻者,他們通過 NumFOCUS 和 PyData 積極支援開源資料科學。我們還定期贊助、主持和參加世界各地的 Python 活動。
雖然我不能代表我們在過去八年中所取得的所有進展,但我很榮幸能夠為此而努力,並幫助微軟成為更好的開源社群參與者。
在這裡給大家推薦一個python系統學習q群:250933691有免費開發工具以及初學資料,(資料分析,爬蟲,機器學習,神經網路)每天有老師給大家免費授課,歡迎一起交流學習