Microsoft 於近 5 年做了非常多的 Developers-oriented 的舉動,這是一個明智之舉,早於幾年前,當大部份朋友都開始不會用在家中打開電腦,Smart Phone、平板電腦已經取代大部份人「用電腦」的需求,Software Application 愈來愈多、愈來愈複雜,當時我相信個人電腦發展會慢慢趨向專業用途或奢侈品方向走,而在專業用途的領域上,我深信因 Software Development 而購置的 OS 、開發工具及硬件都將會有顯著的上升趨勢。

以香港而言,近 5 年參與開發的人數不斷攀升,對傳統的 Software Engineering 管理上有一定挑戰,選擇開發者工具也愈來愈重要,Microsoft 在此究竟貢獻了多少工具呢?

接著,分享一下近 5 年作為一名開發者的所見所聞、分享一些我認為 Microsoft 為開發者帶來極具衝擊性的轉變。

Windows 10 WSL & Docker

2016 年 Microsoft Build 發佈於 Windows 10 加入 WSL (Windows Subsystem for Linux),我第一個反應是:「下!?咁都得?」

因為 Microsoft 的前一任 CEO (2000-2014) 曾經說過

Linux is a cancer that attaches itself in an intellectual property sense to everything it touches

新 CEO 上場後便改口風

Microsoft ♥ Linux

新 CEO 沒有再執迷不悟,擁抱 Linux,作為一名開發者而言,至少不會再被 Windows 的封閉世界捆綁。

於 2017 年第一次試用 WSL(Beta) 版本,立上嘗試在 WSL 玩 Nodejs Development,在處理一些node_modules 的「碎 File 黑洞」時,Performance 真的非常一般,但足以應付一般 Software Development,大幅減低在 Linux 運行不到的機會,減少 Overhead。

在 2020 年推出的新版 WSL2 已經有大幅改善!

GitHub

2018 年 Microsoft 收購了 GitHub ,大家當時都不太看好這個舉動,甚至跳船到 GitLab,或許是害怕會好像 Skype 的下場一樣,但時間証明了 GitHub 仍在不斷推出新功能:

  • GitHub Actions - 一體成型的 CI/CD
  • GitHub Packages - 一體成型的 Release Distributions
  • Completely Free Private Repository - 第一次免費時限制只能 3 個 Collaborators,2020 年終於解除所有限制
  • GitHub Dark Theme - GitHub.com 與 IDE 互換時不會再殘眼
  • GitHub Codespaces (Beta) - 類似 CodeSandbox, Cloud9 IDE 之類的 Cloud IDE,會在 Cloud 有一個 Container 去運行 Development Workload,最大優勢是可以儲存整個開發環境,對於一些 Side Project 或輕量 Development 來說,Codespaces 可以隨時隨地打開一個 Browser 就可以開始 Development!

Visual Studio Code

如果有一些在「Modern Web」出現前已經在開發 Web 的朋友,相信大部份都是依次序在使用以下 Text Editor / IDE:

  • Nodepad++
  • Sublime Text 2
  • Atom
  • Visual Studio Code

Visual Studio Code 於 Microsoft Build 2015 發佈,與 Atom 也是用同一個 Electron Engine,不同的是 Visual Studio Code 由有 Microsoft 主導,有相對多的資源去開發及維護。

而在 2020 年 VS Code 更推出了一個令我非常震驚的功能 - Semantic Highlighting

以 Javascript / Typescript Development 去看,功能上直迫 Intellij WebStorm / Ultimate,便馬上做了 GapStyle VS、寫了一篇 5000 幾字的長文講解其重要性《Productivity 與 Semantic Highlighting》、在 GitHub 報了兩個 Semantic Highlighting Bugs 以及一個 Feature Request 給 Microsoft VS Code Team,盡一點綿力去改善 Semantic Highlighting。

Open Sourcing Framework and Languages

Open Source 不單只是「將 Source Open」,更重要的是建立一個 Open Source Community,而做一個營運 Community 需要非常多資源去處理 Pull Request、Issues、Request for Comments、Feature Request ⋯⋯ 這絕對關係到一間公司的企業形象,所以要 Open Source 一個 Project 需要擁有比任何人想像的更大勇氣及 Commitment。

以下是一些日常最有機會接觸到的 Open Source Projects:

Typescript- 於 Microsoft Build 2014 發佈 Typescrip 1.0,Typed Javascript At Any Scale;相信於 2021 年,Typescript 已經家傳戶僥,就算是一般 Javascript Library 都開始加入 .d.ts 令其它寫 Typescript 的朋友使用 Javascript Library 時都可以享有 Type Check。

Fluent UI- 於 Microsoft Build 2017 發佈 Fluent Design System,一如既往一間大公司出嘅 Design Framework 包括 Implementation,特點是 Microsoft 365 的 Windows、MacOS、iOS、Android、Web 也是用這套 Fluent UI 開發

.NET Core - 於 Microsoft Build 2016 發佈 .NET Core 1.0 正式不再 Windows 限制可以在 Linux 上運行

我一直相信 Open Source 是一個非常「勇敢」舉動,這個模式可以快速推動整個 Software Industry 發展又可以打造良好企業形象,但執行上有一定困難,所以每當有大公司開始嘗試推廣 Open Source,而且確切地投放資源去營運 Open Source Community,實在難得!

Microsoft Build 2021 - Learn. Connect. Code

Microsoft 於過往都會在 Build Event 發佈一些與 Software Engineering 相關週邊的工具,非常期待 Microsoft Build 2021 會發佈一些具突破性的產品及服務。

上星期與負責推廣 Microsoft Build 的 Marketing 聯絡,得知 Microsoft Build 2021 有 4 個大主題:

  • Increase developer velocity with Microsoft’s end-to- end developer stack
  • Deliver new intelligent cloud-native applications by harnessing the power of Data and AI
  • Build cloud-native applications that run anywhere
  • Enable the next generation of productivity experiences for hybrid work

而是次 Microsoft Build 2021 更特備了一個 Hong Kong Local Connection Session (1 Hour),邀請了 3 個 A.I. & IT Professional 於 26 May 2021 1pm - 2pm 分享 AI & DevOps 經驗及 Live Q&A Session!內容如下:

  • 《AI - Building the Future in Hong Kong》 by Dr. Harry Shum (Executive Vice President, Microsoft’s Artificial Intelligence and Research Group)
  • 《AI - Capture & Flow: Think Beyond the Paper》 by Fujifilm,内容會提及到 Capture and Flow OCR solution using Azure AI and Machine Learning
  • 《Agile Transformation and Why Azure DevOps with GitHub matters to Developers》 by Lorenz Cheung (Professional Scrum Trainer)

Session Code: CON001

我登記咗喇 https://aka.ms/MS_Build ,你呢?