科技愛好者週刊(第 165 期):全端 App 的時代

阮一峰發表於2021-07-02

本雜誌開源(GitHub: ruanyf/weekly),歡迎提交 issue,投稿或推薦科技內容。

週刊討論區的帖子《誰在招人?》,提供大量程式設計師就業資訊,歡迎訪問或釋出工作/實習崗位。

封面圖

重慶涪陵的一個水上樂園,製作了巨型棒冰,分發給遊客。(via

本週話題:全端 App 的時代

上週,微軟釋出了 Windows 11。最出人意料的是,它可以執行安卓 App

仔細想想也不意外,蘋果去年推出 M1 晶片,所有的 iPhone App 現在都能在 Mac 電腦上執行。

微軟一定是看在眼裡,急在心裡,絕不能讓 Windows 輸給 Mac。所以,這次匆匆忙忙就支援了安卓。

他甚至來不及做自家的安卓應用商店,使用者必須先安裝亞馬遜應用商店(下圖),才能用上這個功能。微軟就是急到這種程度,寧願白白用自己的最新系統為別人引流。

我問大家一個問題:手機 App 可以執行在桌面電腦,對於軟體開發有什麼影響呢?

顯然,直接影響就是一條, 以後還有必要開發桌面版軟體嗎? 除了少數桌面專用軟體,其他軟體只要讓手機 App 適配一下電腦,就不用釋出專門的 Windows 版或 Mac 版了。

舉例來說,Windows 執行微信,現在必須安裝單獨的 Windows 版,以後直接安裝手機版可能就行了。對於使用者來說,體驗完全一致,不會有功能缺失;對於騰訊來說,可以少養一個團隊,也不用操心跨平臺移植的複雜性了。

以前,所謂的跨平臺軟體,指的是一套程式碼可以到處執行,但是必須每個平臺單獨編譯一次,Java、 Go、Electron 都是這樣。現在倒好了,連編譯都省掉了,同一個程式不用修改,直接跑在手機、平板、桌面電腦上面,簡直是軟體開發者的終極夢想和福音。

所以,Windows 的這個新功能,使得手機 App 的市場一下子擴大到了桌面電腦,這尤其對於小團隊是重大利好。

我的結論就是, App 開發將從多端並存,進入全端時代。 手機 App 會吃掉其他客戶端,變得越來越重要;桌面 App 將會衰落,開發需求進一步變小。

不過,這是一個長期的過程,還有很長的路要走。根據報導,微軟這一次採用了英特爾公司的橋接技術,讓 x86 架構的 CPU 可以解釋 ARM 指令,聽上去很像是即時編譯。但是那樣的話,要是 App 用到了谷歌服務框架,應該怎麼處理呢?另一方面,谷歌的 ChromeOS 系統,早就實現了在 x86 CPU 上執行安卓 App(透過一個虛擬層),效能挺差的,體驗也不好(比如視窗無法放大,很多操作不支援滑鼠)。

但是不管怎樣,全端 App 肯定是未來的方向,上面這些問題,相信最終都可以解決,尤其對於蘋果的裝置,硬體的相容問題是不存在的。

我建議,程式設計師朋友可以多關注這個方向,手機 App 如何適配桌面大螢幕,這可能是下一個熱點領域。

小程式原理實踐課

小程式,可以說是中國軟體業的一個奇蹟。

2017年,微信發明了這個產品,立刻受到使用者的認可。短短几年中,遍地開花,各大網際網路公司(支付寶、百度、頭條......)紛紛跟進支援。事實上,小程式已經成了一個獨立的開發方向,跟 Web 和手機 App 一樣重要。

相應地,小程式開發者一直炙手可熱,市場招聘需求巨大,越來越多的前端開發者轉向小程式領域。

本質上,小程式是 Web 技術在手機 App 環境的移植。 它完全採用 Web 技術棧,只是將網頁引擎移植到了 App 容器裡面。所以,學好 Web 技術對於小程式開發者特別重要。

本週的課程資料就是小程式的底層架構教程 《瀏覽器中搭建小程式執行環境》 ,講解網頁引擎作為小程式的執行環境,如何發揮作用。課程由騰訊課堂"雙認證"機構----京程一燈提供。

它跟其他小程式課程有所不同,另闢蹊徑,透過瀏覽器搭建小程式的執行環境。一共有三節課,深入講解小程式的網頁本質和瀏覽器原理,幫助大家寫出高質量、高效能的頁面,在手機上取得更加平滑的渲染效果。內容特別適合已經有 Web 基礎、剛進入小程式領域的開發者。

課程原價98元,現在跟週刊合作,讀者只需象徵性支付 0.02元 報名費。微信掃描下面二維碼,進群后即可獲取課程, 誠信教學,保證無套路。

報名成功的讀者,還可以獲贈價值98元的專題課《前端面試防虐指南-手寫程式碼篇》。

科技動態

1、自動駕駛卡車實驗

一家美國自動駕駛公司,成功完成了重型卡車的自動駕駛實驗,14個小時開完了1500公里,人類駕駛員一般需要24小時才能完成。

重型卡車的行駛速度比普通汽車慢,需要長時間連續駕駛,而且美國有法律,卡車司機最多連續駕駛 11 小時,就必須停車休息。因此,自動駕駛對於重型卡車有非常大的實際意義,很可能先在這個領域落地。

2、如何數珍珠

有一家日本珍珠貿易公司,多年以來,都是人工清點珍珠的數量。他們將珍珠倒入一個小盤子,裡面有100個坑,如果都填滿了就是100顆珍珠。這樣計數很慢,每到收穫季節,就需要兩個員工,數上整整兩天。

現在,他們使用一個叫做 "CountThings from Photos" 的安卓應用,只要對著盤子裡面的珍珠,拍一張照片,手機就會自動計算出有多少顆珍珠,大大節省了人工,只要30分鐘就夠了。

3、指紋照片

BBC 報導,有一個英國毒品販子,多年來逍遙法外,警方一直抓不到他。後來,警方發現有一個社交媒體賬戶,懷疑背後就是他,但是沒有證據。

有一天,這個賬戶發了一張手拿乳酪的照片(下圖),警方根據照片上的指紋和掌紋,確定就是此人,從而將他抓獲,判刑13年6個月。

4、

一個荷蘭研究生想了解,罰點球時,足球運動員的大腦活動。他就讓球員帶上腦電波感應頭盔,進行罰點球。

結果發現,越不假思索的人,越容易罰中點球;腦電波活動越劇烈的人,罰中可能性越低。

5、

火星的雲是什麼樣子?

美國好奇號火星車傳回了照片,人類第一次看見了另一個星球上的雲。由於火星大氣層很薄,所以火星沒有很厚的雲,都是一些很輕很薄的雲絮。

6、

國內的創業公司宇樹科技,推出了面向消費市場的機器狗,售價1.6萬~2.0萬人民幣,10月前發貨。

這個機器狗能夠自主跟隨和避障,有強大的保持平衡能力,跌倒可以自己爬起來。負載能力約5公斤,慢速前進時續航1小時。它的價格只有國外的波士頓動力公司同類產品的十分之一。

7、

中國最大的海洋科考船"中山大學號",6月26日在上海交付使用。該船排水量6880噸,續航力15000海里,專門供中山大學海洋學院進行教學和科考使用。

8、超聲波聽力

人的耳朵只能聽到 20 Hz 到 20 000 Hz 之間的聲波。芬蘭一所大學的科學家設計了一種裝置,讓人類可以聽到 20 000 Hz 以上的超聲波。

科學家將麥克風陣列放在一個小球之中,用來捕捉超聲波,以及確定方位。這個裝置可以將超聲波轉成人耳可以聽到的頻率,再在耳機上播放,並保證方位相同。

它使得人類可以具有蝙蝠般的超聲波感應能力,某些情況下,可以快速定位聲源。

文章

1、QQ 寵物的誕生與沒落(中文)

QQ 寵物最早出現在2005年初的 QQ 賀歲版,同年6月正式上線。一年後同時線上使用者數就突破了100萬,成為了世界上最大的虛擬寵物品牌。

2、韓國的真人約會遊戲(中文)

本文介紹韓國公司新推出一款相親 RPG 遊戲,完全是真人實景拍攝,更像是一部可以玩的電視劇。比如,下圖讓玩家選擇誰是約會物件。據玩過的人說,體驗還不錯,劇情有意思。

3、靜態網站如何啟用資料庫查詢(英文)

作者演示靜態網站(比如 GitHub Pages)如何透過 SQLite 資料庫,實現查詢功能,完全不需要後臺指令碼。

這種操作的實現原理有兩個:一是 SQLite 資料庫以頁為單位儲存資料,每頁預設是 4KB,可以按頁讀取資料;二是前端可以用 sql.js 模擬一個記憶體檔案系統,從而實現按頁讀取檔案。(@joyc 投稿)

4、Telegram 創始人和他的黑暗帝國(英文)

德國《明鏡》雜誌的長篇英語報導,介紹聊天軟體 Telegram 現年36歲的創始人帕維爾·杜羅夫 (Pavel Durov) (上圖),以及 Telegram 的故事。

5、老電腦如何安裝 Windows 11(英文)

Windows 11 釋出測試版本後,很多人發現老電腦安裝不了,因為有主機板 BIOS 限制。本文介紹一種規避的方法。

6、複製次數最多的 StackOverflow 程式碼片段(英文)

有一項研究稱,程式設計師問答網站 StackOverflow 上面,有史以來複制次數最多的是一段 Java 程式碼片段,用來以人類可讀的格式列印位元組數,比如將 123,456,789 位元組轉為 123.5 MB。

這段程式碼的作者多年後寫了這篇文章,分析自己原始程式碼裡面的漏洞。

7、瀏覽器的原生代理功能示例(英文)

本文教你如何使用瀏覽器原生提供的代理功能,繞過 sci-hub 域名的訪問限制。

8、Docker Compose 快速使用指南(英文)

一篇簡短的 Docker Compose 入門教程,讓你透過動手實踐,理解 Docker Compose 怎麼搭建多容器的應用程式。

9、新的 HTTP 規範可以消除"Cookie 橫幅"(英文)

由於歐洲議會的規定,國外的網站都有一個討厭的"Cookie 橫幅",詢問使用者是否接受 Cookie。

現在有一個新的 HTTP 提案(還未透過),使用者只需設定一次,瀏覽器就可以用一個 HTTP 標頭通知網站,不必放置 Cookie 橫幅。

工具

1、NVIDIA Canvas

Nvidia 公司推出的一個人工智慧照片編輯軟體,可以免費下載。使用者只要選擇要新增的物件(比如雲彩),在對應的位置上塗抹幾筆,就能夠自動生成照片。

2、nuoshell

一款 Mac 的桌面 SSH 客戶端,集多功能於一身,簡單、免費。(@anlityli 投稿)

3、gum

一個命令列的 Git 使用者管理器,適合需要不同身份,向不同倉庫提交程式碼的情況。(@gauseen 投稿)

4、BookmarkHub

一個瀏覽器外掛,可以跨瀏覽器進行書籤同步,資料儲存在 GitHub Gist。(@weavers1f 投稿)

5、EssayKiller

一個 AI 框架,可以自動根據給出的題目(上圖),生成中文的命題作文,達到高中生作文的水平。(@dllen 投稿)

6、T-Rex Runner

Chrome 瀏覽器內建的"恐龍跳躍"小遊戲,被網友從 JavaScript 改成了 C 語言版本。

7、Rustpad

一個開源的 Web 文字編輯器,主要特點是支援多人同時編輯。

8、零寬度短網址生成器

一個非常有創意的短網址生成器,看上去生成的短網址都一樣,其實裡面插入了不同數量的零寬度空格字元。

9、Ojoy

一個網頁影像工具,可以放大圖片的同時,還保持同樣的清晰度。

資源

1、Track Awesome List

這個網站收集 GitHub 上的 awesome 專案,追蹤每個清單的更新,可以及時檢視每天新增哪些資源。(@theowenyoung 投稿)

2、史丹佛大學計算機課程

這是一個谷歌文件的電子表格,收集了史丹佛大學計算機系本科階段的所有課程,每門課都給出了課程主頁。

3、計算結構

麻省理工學院課程《計算結構》(Computation Structures)的教學材料,介紹計算機架構的基本知識,包括講義、影片、筆記等。

4、具有原始碼的商業影片遊戲

維基百科的這個頁面,列出了所有可以拿到原始碼的商業影片遊戲,包括開源的遊戲和原始碼洩露的遊戲。

圖片

1、淹沒的義大利村莊

1950年,義大利政府為了在山區建設一個人工湖,淹沒了一個叫做庫倫(Curon)的小村莊。這個村莊有一個14世紀的鐘樓,因為太高,沒有被全部淹沒,形成了"水中高塔"的奇景。

2、摩天大樓頂上的午餐

《摩天大樓頂上的午餐》是一張著名的黑白照片,拍攝於1932年紐約的一個摩天大樓工地。11個工人坐在摩天大樓頂上的大梁上吃午飯,大梁距下方街道256米,而他們沒有任何安全帶等保護設施。

拍攝者看上去也很驚險。

不過實際上,大梁底下有一個平臺,並不是看上去那麼危險。而且,照片也是擺拍的。照片發表以後,很多人也來這個地方模仿拍攝。

由於這張照片太有名,紐約市後來甚至將它做成了雕像。

文摘

1、我為什麼公開發表部落格文章?

八年來,我在個人網站上釋出了100多篇文章。有人問我,為什麼一直堅持在寫?

我想了想,寫作部落格其實對我有很多好處,所以我才會有動力。

(1)它使得我把學到的東西記錄下來了,便於回過頭查詢,重新溫習!

(2)當我寫作時,為了理清思路,我經常會有新的疑問,從而去做一些額外的研究,這意味著寫作部落格讓我在某個主題上學到了更多!

(3)認真花時間把自己的寫法寫出來,並放到網際網路上,這迫使你思考自己寫的東西是否有意義,從而發現哪些題目是真的有價值。

(4)文章釋出以後,會有很多讀者反饋,通常可以幫助我改進寫作,學習新知識。

(5)我的文章可以幫助其他人!我寫文章通常是因為遇到一個很困難的問題,經過探索終於找到了答案,我就把這個答案寫出來,其他人遇到類似情況就可以參考,這讓我感覺很好。

2、網際網路內容都是暫時的

最近,我的一位朋友刪除了自己的部落格。她在部落格裡面,記錄了自己青少年時期和二十多歲時對很多事情的看法。她現在可能覺得,這些看法很幼稚,不想再儲存下去,就刪除了自己的部落格。

我覺得很可惜。多年以後,她如果再想看看自己年輕時的想法,就再也沒機會了。

你把內容釋出到網際網路,跟寫在紙上是不一樣的。紙上的內容可以一直儲存下去,但是網際網路不行。雖然某些網上的內容可以持續存在數十年,那只是因為某些人或組織願意為託管成本付費,伺服器、電力和頻寬都要花錢。網際網路上的內容可以存在多久,完全取決於託管它的當事人的價值觀。

與紙上的內容相比,網際網路內容的存在期限都非常短。對於我們大多數人而言,你張貼到網際網路的內容,不久以後就會永遠消失。

雖然很多網上的內容毫無價值,但是有一些寫得很好,發人深省,消失了十分可惜。這令人沮喪,那些消失的內容就像一個搬走的老朋友,等到你再想起他時,再也找不到他留下的任何蹤跡了。

言論

1、

Python 是我最喜歡的語言,但它替代不了 Bash。一行 Bash 程式碼就能完成的任務,Python 要寫許多行,比如mv命令,Python 可能需要120行才能實現。

Bash 把命令列環境的複雜性都抽象掉了,如果改用 Python 實現,就不得不自己處理這些複雜性。

-- Hacker News 讀者

2、

最新的趨勢是,軟體公司希望使用者體驗足夠好,不需要使用者文件。採用的方法是,不再投入專門的人員寫使用者手冊,改為僱傭使用者體驗設計師。

-- 《軟體技術寫作是一個垂死的職業》

3、

可能永遠不會有 Python 4.0,我們被 Python 2 升級到 Python 3 搞怕了。

-- Guido van Rossum,Python 語言創始人

4、

2012年,牛津大學起訴印度德里大學的一個影印中心,影印盜版教材出售給學生。

德里高等法院裁定,牛津大學敗訴,學生使用盜版教材不違法。理由是原版教材的定價超出了印度學生的承受能力,學生永遠不會成為原告的客戶。

-- 《 Sci-Hub 會被印度法院關閉嗎?》

5、

隨著大多數產品成為聯網產品,如果你想購買未聯網的版本,不得不支付額外費用,因為廠家將不能獲取你的個人資料,也不能向你推送廣告了。

-- Hacker News 讀者

歷史上的本週

2020年(第 114 期):U 盤化生存和 Uber-job

2019年(第 62 期):日本電影《編舟記》

2018年(第 11 期):程式語言越發複雜

訂閱

這個週刊每週五發布,同步更新在阮一峰的網路日誌微信公眾號

微信搜尋"阮一峰的網路日誌"或者掃描二維碼,即可訂閱。

(完)

相關文章