微軟 //Build/ 2016 大會第一天:更聰明的個人化運算
//Build/ 是微軟一年一度針對開發人員所辦的大型研討會。在這個活動中,微軟會向開發人員展示最新的平台、關發技術、願景等等。
今年 //Build/ 2016 的主題演講分成兩天進行,第一天的內容著重在智慧(intelligence)與個人化運算(personal computing),第二天則是介紹雲端平台(cloud platform)以及資料科學(data science)。
第一天的影片可以由此觀看:
[embed]https://channel9.msdn.com/Events/Build/2016/KEY01/player?format=html5[/embed]
開場
今年依然是由微軟的執行長 Satya Nadella 來為 //Build/ 2016 開場,當然在開場時再次強調開發人員對於微軟的重要性,然後重申公司的核心目標「讓地球每個人、每個組織都有能力完成更多工作」(Empower every person and every organization on the planet to achieve more)。
而微軟將會從三個方向來達到這樣的目標:
創造更多個人化運算;
重塑生產力以及商業流程;
建立智慧雲端平台。
不過圍繞這三個方向最重要的是,人們是怎麼樣使用這些平台的呢?
在個人電腦上我們可以用鍵盤滑鼠、在手機平板上用觸控甚至是語音、更有可能在其它的裝置上使用手勢或是身體動作與這些平台互動。也許不該想得那麼複雜,而應該把這些與機器與平台的互動,看作是一種「對話」(Conversation)的形式。
如果基於對話這個平台(Conversation as a Platform)來開發應用程式,是否能更容易運用這些平台完成更多工作(achieve more)呢?
接著,就以個人化運算做為這一天主題演講的主軸。
個人化運算
對應這個目標的產品(或平台)就是 Windows 了;而 Windows 團隊的老闆 Terry Myerson 首先介紹目前在 Windows 10 發佈九個多月來的使用、升級情形。
從這些數據上來看,目前全球已經有超過 2 億 7,000 萬個活躍用戶、操作 Windows 10 超過 750 億個小時的時間;從 Windows 10 在 2015 年 7 月 29 日正式上市以來,全世界已經有超過 500 種為它全新設計的裝置。
這些事實,造就了 Windows 10 成為史上成長最快速的 Windows 作業系統。
而 Windows 10 也將會繼續秉持「Windows as a Service」的概念,在今年夏天再次釋出一次重大更新。這個重大更新有人會以它的代碼「Red Stone」稱呼它,而這次 //Build/ 大會則是定調這次更新為「Windows 10 的週年更新」(anniversary update),屆時也會提供給所有的 Windows 10 用戶免費升級。
如果您迫不及待想嚐試這些 Windows 10 的新更新,可以考慮加入 Windows Insiders 計劃,以更快取得新的 Windows 10 版本。
Windows 10 的週年更新
Microsoft Edge 加入擴充套件並結合 Windows Hello
在這次週年更新中(更精確地說,在 Build 14291 之後),Microsoft Edge 終於可以安裝擴充套件,而開發人員也可以使用 HTML/CSS/JavaScript 的技術來開發擴充套件。
從 Windows 10 開始,除了傳統的帳號密碼、PIN 碼身份驗證之外,只要裝置有支援,就可以使用像是虹膜、指紋等生物識別技術來作身份驗證,這個功能稱作「Windows Hello」;而 Windows Hello 也提供了 API,讓 Windows 10 的應用程式(包括 UWP app)來使用。
在這次更新中,Microsoft Edge 也會提供結合這個 API 的 JavaScript 介面(已提交 W3C Web Authentication WG 制定標準),讓網站也能選擇使用這個先進安全的身份驗證技術。
加強觸控筆的操作體驗
而在這次週年更新中,加強了許多對於觸控筆操作的部份,首先是在桌面環境中加入了「Ink workspace」的空間,讓你可以編排使用觸控筆操作時的一些捷徑。
另外還有一些強化,像是辨識手寫筆跡的文字與 Cortana 語音指令結合、或是在應用程式中多出一個觸控筆工具列,透過這個工具列還能叫出「尺」,不僅可以拿來畫直線,還能用來對齊物件:
其它部份還有在地圖 app 中自動將筆跡轉為路徑、然後算出實際距離,在 Word 等 Office 工具的文字處理上面,也可以自動辨識標齊螢光筆的效果等等;透過這些觸控筆操作效果的強化,其實就是「提高使用觸控筆的生產力」的動機,來呼應「完成更多工作」的動機。
Universal Windows Platform
自從 Windows 10 發表之後,隨著而來的 Universal Windows Platform(UWP,暫譯為「Windows通用平台」)的概念也一併向開發人員宣傳。
UWP 的願景,是希望所有的 Windows(10)裝置都有通用的應用程式執行環境;如此一來,應用程式開發人員只要按著 UWP 的方式撰寫應用程式,就能寫一份程式碼、包裝成單一個應用套件、然後在所有支援 UWP 的 Windows 裝置上執行。
所以在這樣的概念下,要開發像是 Xbox One、Microsoft HoloLens 這些非典型手機、平板、或是 PC 的應用程式,也就變得相對簡單容易許多。
而 UWP 也與 Facebook Audience Network 合作,在 UWP 中加入 Facebook 的 SDK 顯示廣告,使得全世界 300 多萬個 Facebook 廣告主都能透過應用程式接觸到客戶;這當然也會提升應用程式開發人員的獲利機會。
波音公司的案例,使用 UWP 應用程式讓機組員不必再帶著厚重的文件上機,可以讓工作更有效率。
Keynote 的這個部份,介紹了 UWP 開發工具的持續改良,而前面看到 Windows 10 週年更新中的全新觸控筆操作體驗,也很容易就能把這些功能加到應用程式中;此外,還有加入豐富視覺效果等超過 1,000 個功能修正,讓開發人員能在 UWP 上有更多發揮。
另外,簡報中也示範了如何簡單地將網站立刻轉成 UWP 應用程式,讓原本就擁有網頁的企業能快速擁有 UWP 應用程式,藉此接觸更多使用者;甚至還能因為有這樣的轉換,讓網頁呼叫 UWP 的 API,以使用 Windows 10 和 UWP 平台的特有功能。
目前有不少知名的網站,已經把網頁內容轉成 UWP 應用程式了。
這些開發工具的參考資料如下:
[免費] Insider Preview 的 Windows SDK(預覽階段)
[MSDN] Hosted Web App
「Windows 是所有開發者的家」
原本在 Windows 上的開發人員,已經有像是 Visual Studio 這樣很好的開發工具,不過微軟並不以此滿足,如果要讓 Windows 成為開發人員的「家」(家是最舒適的,微軟希望開發人員在 Windows 上開發就像在家裡一樣舒適),就必須整合更多開發人員在乎、而且喜歡的功能。
所以微軟與 Canonical 公司(提供並維護 Ubuntu Linux 的公司)合作,讓未來的 Windows 10 上有原生的 bash (其實是一個 Ubuntu Linux 子系統)可以使用。
從操作展示中,可以看到 Windows 上原生的 bash.exe,然後在其中使用一些 GNU 工具,也開啟了 emacs 編輯器來編輯檔案;整套工作流程就像在 Linux 下的 bash 一樣。
微軟希望透過這樣的工具能讓開發人員有更多的武器,至少在需要一個 bash 環境(或是一個 Linux user space)時,不必再另外煩惱要用虛擬機器、還是遠端連線到工作站。
這部份的技術概觀,大概可以參考下圖的示意圖:這次的整合並不是虛擬機器,或是像過去 cygwin 專案這樣,把所有的 Linux system call 集中在 cygwin.dll 下;透過直接把 Linux system call 的轉譯做進 Windows 作業系統核心層,以換取更好的執行效率以及相容性。
Bash on Windows 是如何完成的。圖片來源
更多詳細的介紹可以參考這些資料:
[BUILD2016] Running Bash on Ubuntu on Windows
傳統桌面應用程式的現代化
既然 Windows 10 希望大家都能朝 UWP 的路線前進,連網頁都可以輕易轉成 UWP 的應用程式,那麼原本使用 Win32 或 .NET Framework 所撰寫的傳統應用程式呢?
當然還是可以繼續用相同的方式開發,但如果透過由之前 Project Centennial 所衍生出來的 Desktop App Converter,就可以很快將這些以 Win32/.NET 寫成的傳統桌面應用程式,變成 UWP 的應用程式;而且如果修改原始碼,加入 UWP 的 SDK,甚至還能呼叫或使用 Windows 10/UWP 上獨有的新功能(如動態磚、筆跡、訊息中心等等)。
跨平台應用程式開發
當然,程式開發人員不僅會為 Windows 10/UWP 撰寫應用程式,當然也有可能為其它平台撰寫應用程式,這樣才稱得上是所有開發人員的家。
而微軟的回應也很明確──在 Windows 上寫 UWP、而在 Android/iOS 開發上採用 Xamarin 的技術;如此一來,便能將與平台或操作介面無關的部份做成共享的函式庫,讓開發人員能減輕跨平台開發的負擔。
在第二天的主題演講中,微軟宣佈 Xamarin 的技術將免費提供給 Visual Studio 的開發人員。
遊戲開發
既然提到了 UWP 的通用概念,當然不得不也來介紹一下 Xbox。
過去要在 Xbox 上開發遊戲或是應用程式,都需要取得特殊的開發機、以及特別審核的開發帳號;這次微軟直接把這些開發門檻降低。
首先,只要有一台 Xbox One,即使是一般市售機種,都可以透過程式開啟「開發模式」;這樣一來,就能像開發 UWP 應用程式一樣,開發 Xbox One 上的應用程式或遊戲:使用 Visual Studio 開發,然後透過網路遠端佈署上 Xbox One 執行與測試。
如此一來,不僅僅是應用程式,遊戲開發商很快就能推出 Windows 10(PC)以及 Xbox One 版本的遊戲;而且因為是 UWP 的版本,所以都能直接透過 Windows 市集來銷售與管理。
HoloLens與Holographics
去年發表之後相當轟動的 VR/AR 裝置── Microsoft HoloLens,在今年的大會前後終於有更進一步的消息;除了開發團隊可以申請購買之外,這次大會也首次亮相即刻開始出貨的盒裝樣式。
除了繼續透過 AR 進行火力展示之外,這次 HoloLens 的展示更多了可能性,像是讓不在身旁的人也能一同加入討論或是聊天,彷彿這個遠端加入的夥伴就在身邊一樣。
這次大會開始公佈更多開發細節,同時也開放了模擬器以及應用程式範本下載。基本上,HoloLens 的開發也是走 UWP 的方式;除了使用一般 UWP 的開發方式之外,也可以使用 Unity 遊戲引擎來製作 HoloLens 上的應用程式或遊戲。
如果想瞭解更多訊息,請參考:
[免費] HoloLens 模擬器以及應用程式範本
對話即平台
介紹完了關於 Windows 10 的進展,以及相關裝置端的平台開發技術後,主題演講再度拉回「對話即平台」(Conversation as a Platform)的議題上。
既然有了這麼好的平台,那接下來的問題就是,要怎麼讓這個平台更容易親近?而「對話」又是什麼?所以微軟定義出:
人類語言是一種新的操作介面(UI,user interface)
機器人(bot)是一種新的應用程式,而數位助理則是描述這些應用程式的應用程式(meta app)
任何的互動都需要加上智慧能力
所以接下來介紹微軟提供了什麼樣的「對話平台」而開發人員又能怎麼基於這些平台來做應用程式開發。
Cortana 開發平台
在 //Build/ 2014 大會上公佈的數位語音助理 Cortana 具備智能學習能力,能根據用戶提供的資料來瞭解狀況,進而提出解答(例如根據你的狀況回答各種問題)、或是主動提出建議(例如根據交通狀況以及您的習慣提醒是否該提早出門)。
但它不僅僅是一個數位語音助理,對開發人員來說,它更是一個可以擴充、而且與其它應用程式互動的平台,讓開發人員能直接利用 Cortana 的語音處理和智能學習的能力,讓用戶能夠透過說話的方式,在應用程式中完成許多工作。
而現在微軟已經將 Cortana 推上了 Windows、Android、以及 iOS 平台,所以不論你是哪一個平台的開發人員,都能開發與 Cortana「對話」的互動功能。如果想要瞭解更多訊息,可以參考:
如果想要瞭解更多訊息,請參考 Cortana 開發中心。
Bot
除了 Cortana 這樣的數位語音助理之外,其實還有很多絕佳的對話平台(尤其是通訊平台),也有許多人已經開發了形形色色的 bot(自動回應機器人)。
微軟在這方面做了三件事:
將 Skype 打造一個容易開發 bot 的平台;
提供 Bot Framework,讓開發人員可以更簡單寫出 bot 以注入各平台;
提供智能服務 API 讓應用程式或 bot 更加聰明。
Skype Bot Platform
如果您也想開發一個 Skype Bot,現在也可以參考 Skype 開發中心的網頁,瞭解如何開始建置自己的 Skype Bot。演講中展示了許多在 Skype 上面透過與 bot 對話完成工作或是取得資訊,或是如下圖所示,完成旅館的訂房工作。
Microsoft Bot Framework
製作平台與開發工具,一直都是微軟的強項,如果「所有的開發人員都會創造機器人」(Every developer will build a bot),那微軟的期望就是讓開發人員能夠更輕鬆開發出 bot,也因此推出了 Microsoft Bot Framework。
上圖是在演講中展示、用 Microsoft Bot Framework 寫出來的一個訂 Pizza 的 bot。Bot Framework 提供了以人類語言為基礎的文法引擎,以減少開發人員在處理語言解析上的麻煩;而且因為是使用 Bot Framework 開發,所以可以在開發完成後選擇運作平台,而不必每個平台都開發一個 bot,所以能為開發人員大幅減少開發各平台 bot 的成本。
Microsoft Cognitive Services
既然讓應用程式或 Bot 擁有智慧是很重要的事,所以 Microsoft Cognitive Services (前身為 Project Oxford)提供了各種人工智慧的 API 服務,讓開發人員利用這些服務來做到如臉部追蹤、圖片特徵、語音判斷等等許多功能。
只要一個簡單的 API 呼叫,就能為應用程式加入智慧。下圖中的展示,就是由 Cognitive 所提供的 API 來判斷一張圖片中有哪些特徵。
微軟在展示中也同步推出了一個線上小玩具「Caption Bot」,你可以試著上傳照片,看看這個 Caption Bot 會為這張照片下什麼樣的標題。
關於 Microsoft Cognitive Services 的開發文件,可以直接在這裡找到文件、範例、或是測試環境。
謝幕
第一天主題演講的結尾橋段,是微軟如何透過以上的這些技術,為自家一位盲人工程師打造了能全新感受這個世界的服務:Seeing AI;透過 Microsoft Cognitive Services,讓他的輔助眼鏡能告訴他更多關於眼前這個世界的資訊。
這不就是為「創造個人化運算」畫龍點睛的真實案例嗎?來看看這段影片: