尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
一直以來,C# 可以說是微軟在編程語言方面最為顯著的一大標籤,甚至於知乎上都有「微軟的所有工程師都用 C# 嗎?」的提問。但時至今日,微軟正在逐步地擁抱 Java、JavaScript 以及 Python。在本文中,來自微軟的 Python 工程師 Steve Dower 即分享了微軟是如何一步一步擁抱 Python 的。以宇宙第一 IDE Visual Studio 為例,在數年之前,微軟的 Python 開發者可謂少之又少,且非常沒有話語權,但今天,微軟正在積極擁抱 Python 語言及社區,目前已經有許多產品及關鍵工具做到了支持,而微軟也有著直接的 Python 工程師團隊及文化。
作者 |Steve Dower,Python 軟件工程師
譯者 | 彎月
出品 | CSDN(ID:CSDNnews)
以下為譯文:
Python 是微軟未來雲服務的重要組成部分,也是微軟的服務和團隊需要支持的基本語言之一,同時還是公司內外快速增長的數據科學和分析領域最受歡迎的選擇。但是以前在微軟 Python 並沒有如此受歡迎的地位。
2010 年,我們幾個做 Python 的人一直很低調,以防有人注意到他們可以將一些開發人員重新分配給自己的項目。我們的團隊很小,都是從以前的工作中留下來的人,但是正在遭受一種「並非起源於這里」綜合症的公司文化:Python 是一種屬於其他人的語言,所以微軟並不感興趣。
在過去的八年中,這種情況發生了戲劇性的變化。現在許多微軟的產品都開始包含 Python 支持,而有些最新的產品只支持 Python。我們的一些關鍵工具是用 Python 編寫的,而且我們正在積極地投資語言和社區。
本篇文章是我的親身故事。從 2011 年加入微軟以來到今天,我有幸參與了一些重要的與 Python 相關的項目,並與許多團隊合作建立了其他項目。這些日子以來,我通過微軟做出了貢獻,建立了 Python 的主體,並與社區合作讓每個人都能更好地使用 Python。
Visual Studio 中的 Python
在加入微軟之前,我曾在澳大利亞的研究生院學習。當時我是 Visual Studio 愛好者,也是 Python 開發人員,2010 年,當看到最早發布的 Visual Studio 版的 Python 工具(簡稱 PVTS)時,我非常激動。在.NET 上運行的 Python 版本 IronPython 已經交給了社區,與 Dino Viehland 和 Shahrokh Mortazavi 合作的一個小團隊被整合在一起,繼續為微軟產品構建 Python 支持。經過與法律團隊數月的談判,在 Apache 2.0 許可下在 CodePlex(微軟以前的開源托管服務)上發布了 PTVS,並允許接受外部貢獻。
作為一名 Python 開發人員,我有幸使用了第一版的 PTVS,並報告了一些無法正常工作的問題,還修復了一些問題。在我做了一個月左右的貢獻以後,他們團隊的經理問我是否有興趣作為暑期實習生來微軟。一年後,我成為了微軟位於 Redmond 的全職成員。
由於我們的團隊擁有最多的 Python 知識,因此我們自然成了在微軟 Azure 上支持 Python 的大本營。最早面向 Python 的 Azure SDK 是在我們的團隊中開發的,現在已經有五個人了,隨著 Python 重要性的增加,我們將這項工作移交給了一個專門的團隊。我們發現了 Laurent Mazuel 對該 SDK 的貢獻,並很快招募了他,從那以後他一直是 Azure 管理 SDK 成功的核心人員——協調 100 多個 Azure 的服務生成一個連貫的庫是一項很大的挑戰!
在接下來的幾年里,我們看到我們的項目在用戶和實用性方面都有所增長。每個版本的發行都會在 Twitter、Reddit 和 Hacker News(盡管我們很少在這些地方宣傳自己的產品)上產生很大的反響,許多人不相信微軟真的在從事與 Python 有關的項目,包括我們自己的同事。我與旁邊的一位開發人員在辦公室共事了半年多,他才相信我們真的有一個 Python 團隊。
每年我們的工程團隊都會參加各種 Python 會議,展示與討論我們的工具。然而在微軟內部我們還不夠大,無法獲得行銷團隊的幫助,因此我們讓工程師負責規劃、人員配備、裝修和經營展位。有時候我們會在活動期間沖到當地的印刷所,然後在最後一刻列印出更好的標誌,或者到雜貨店拿巧克力,因為我們沒有任何真正的贈品。我們經常感覺自己是一家大公司內部的小型創業公司。
長期以來,公司內外的人都認為 PTVS 是一個社區項目,沒有意識到我們是真正的微軟。但是也有一些進步的跡象。其中一個是,我們找到了負責 visualstudio.com 網站的銷售人員,讓他在公司主頁的語言列表中加入「Python」。不出所料,這引起了一些人的注意,而且是好的方面。我們看起來有點「官方」了。
當我們被添加到 Visual Studio 2015 安裝程序時,事情又出現了下一個轉折點。這個版本包括一個經過改進的「自定義」頁面,該頁面簡化了核心選項並添加了許多「外部」組件。這是第一次 用戶可以獲得 Python 支持,而無需下載其他安裝程序。
Visual Studio 2015 安裝程序,包含用於 Python 的工具
隨著用戶數量飆升,越來越多的人開始關注我們。我們不再低調行事了!PTVS 遷移到了 GitHub 上(https://github.com/Microsoft/PTVS),用於 Azure 的 Python SDK 比預期的更受歡迎,並且這些部分開始逐步落實,並開始了真正的文化變革。
向 Python 貢獻
同時,在 2015 年美國的 Python 大會上,我自願幫助支持 Windows 上的 Python,這項提議被很高興地批准了,經過多次與法律團隊的訪談後,我很快成為了微軟支持的 CPython 核心開發人員。
對於 Python 3.5 版本,我將 Python 從使用微軟 Visual C ++ 2010 編譯器和運行時移植到了最新的版本上,包括專門為 CPython 更改了我們的 C 運行時(例如 _set_thread_local_invalid_parameter_handler()函數)。我還重寫了安裝程序,修復了每個用戶的安裝並更改為正確安全的安裝目錄。最後,我還負責構建了 python.org 提供的所有 Python 的 Windows 版本。
舊的 Python 安裝程序以及 Python 3.5 的新安裝程序
如今在微軟,我們有五個核心 CPython 的提交者,我們所有人都有時間為該項目做出貢獻。我們為兼容性、註冊、花哨的新圖標(example.png 等)、JIT 執行鉤子以及更多正在進行的工作做出了貢獻。受雇於大型公司並擁有自己的項目,可以幫助我們看到問題和情況,如果我們純粹是志願者,那麼就不可能了。再加上領薪水的開發時間,我們能夠對 Python 社區產生令人滿意的積極影響。
見證文化的變化
當人們向你詢問 Python 時,你就知道這家公司的文化開始發生變化了。我們認為,我們取得重大勝利的項目之一是跨平台的 Azure CLI。最初是用 Node.js 編寫的,其背後的團隊發現維護這麼大的命令行工具越來越困難。在研究替代方法時,他們向我們詢問了 Python 支持。
討論過程大致如下:
CLI 團隊:「我們並不真正了解 Python,但似乎 Python 對於可擴展的命令行工具來說是一個不錯的選擇。」
Python 團隊:「是的,它是不錯的選擇。」
CLI:「你們能否幫我們建立基本結構?只需幾個命令,並告訴我們如何保留登錄狀態和配置文件?也許可以本地化?「
Python:「當然,很高興。」
CLI:「你們需要多長時間的準備,我們才可以嘗試這些東西?」
Python:「周三就可以準備好。」
CLI 感到十分驚訝,可能更多的是懷疑態度,但是他們接受了我們的提議,後來我做了一個樣本。CLI 團隊採用了我做的樣本,並將其轉變為世界上最大的 Python 命令行應用程序。現在 Knack 是高性能大規模命令行應用程序的 Python 框架,可以處理數千個命令和選項,同時支持參數補齊、提示、可擴展性、配置文件等。
微軟 Python 日的海報
雖然我們知道 Python 在微軟比想像中更受歡迎,但有一件事真的讓我們感到震驚。2014 年末, 我們組織了一個內部的「Python 日」,邀請了一些名人,預定了 100 個人的房間,並在辦公室周圍張貼海報。結果反響簡直太不可思議了!最後那天我們轉移到了 Redmond 主園區最大的房間,並為我們其他全球辦事處設立了直播。總共有 1 千多人參加或觀看了這次活動——大約占整個公司的 1%(包括所有工程、財務、人力資源和法律等來自各個崗位的人員)。
Visual Studio 2017 安裝程序,擁有 Python 工作負載
大約在同一時間,Visual Studio 2017 設計了一個全新的安裝程序。 從過程的早期開始,Python 就被考慮在內——不僅僅是作為擴展的鏈接,而是作為真正的內置功能。但是我們仍然將我們的工作公開在 GitHub 上,並幫忙構建許多其他 Visual Studio 組件所使用的模型。PTVS 是最早的開源 Visual Studio 功能之一,但現在有很多,包括 Roslyn(C#和 Visual Basic 編譯器)、MSBuild 和 Visual F#。
我們還採用了社區構建的 Visual Studio Code 擴展,雇用了它的開發人員 Don Jayamanne,並讓他全職與其他開發人員一起工作。由於它始於開源,所以必須保持這種狀態,我們的官方 GitHub 代碼庫也清楚地展示了我們在原始的代碼上建立了分支。
在 2019 年美國 Python 大會上,我們將第三次作為主要讚助商出席大會。與五年前不同,我們將擁有一個設計好的展台和大量的演示,我們將討論我們依賴 Python 的所有方式,為 Python 做出貢獻,並致力於支持 Python 以及使用 Python 的每個人。
不再低調行事
2011 年,微軟的 Python 確實行事非常低調。2018 年,我們走向了光明,我們為 Python 感到自豪,在我們的開發人員工具(如 Visual Studio 和 Visual Studio Code)中支持 Python,在 Azure Notebooks 中托管 Python,並使用它來構建 Azure CLI 等最終用戶體驗。我們聘請了五位核心 CPython 開發人員和許多其他貢獻者,通過 NumFOCUS 和 PyData 積極支持開源數據科學,並定期讚助、主持和參加世界各地的 Python 活動。
雖然我不能說在過去八年(甚至更長時間!)中我們見證了很多進步,但是我很榮幸能夠為此而努力,並幫助微軟成為開源社區中更好的一員。
有關資源:
-
Microsoft 的 Python 的最新資源:
-
在 Channel 9 或 Steve 的 Python 演講中觀看我們的 Python 視頻內容:
https://channel9.msdn.com/Search?term=python&lang-en=true
http://stevedower.id.au/blog/speaking/
-
在 GitHub 上的 Microsoft 和 Azure 主頁中瀏覽我們的開源 Python 項目:
https://github.com/Microsoft?utf8=%E2%9C%93&q=&type=&language=python
https://github.com/Azure?utf8=%E2%9C%93&q=&type=&language=python
福利
掃碼添加小助手微信,回復:1,入群獲取Python電子書(附代碼~~)
推薦閱讀: