這裡記錄每週值得分享的科技內容,週五發佈。
本雜誌開源,歡迎投稿。另有《誰在招人》服務,發佈程序員招聘信息。合作請郵件聯繫([email protected])。
封面圖

成都出現了花田火鍋,火鍋店開在盛開的油菜花地裡,運營期兩個月。(via)
低代碼編程,恐怕不會成功
這十幾年,一批批程序員前仆後繼,去搞低代碼編程(包括無代碼編程)。光在我身邊,就有三四批。

他們搞的低代碼編程,我理解就是通過圖形界面,拖拉各種組件,自動生成軟件 UI 的底層代碼,減少手工編碼。

這個想法很好,確實很多人需要,尤其不懂編程的人,這簡直是生成程序的唯一可用方式。
但是很奇怪,他們無一例外都失敗了,開發出來的低代碼工具,開始還有一些好奇的用戶,很快就不來了,用戶越來越少,後來即使開源了,也沒人用。
更奇怪的是,這似乎不是偶然現象,業界所有的低代碼工具好像都不成功,至少我想不出成功的例子,哪一個受歡迎的應用程序是用低代碼工具生成的。
它的背後有什麼原因嗎?是哪裡沒有做對,還是低代碼編程本身就不可行?
我一直沒有想通這個問題。雖然不看好,但是依然抱有一絲幻想,也許某一天醒來,低代碼編程就成了主流,無論手機 App 還是桌面應用,鼠標拖幾下,就可以生成。

直到上週,我讀到一篇文章《低代碼編程受困於形式》(下圖),才恍然大悟,低代碼編程有先天缺陷,恐怕不會成功。

文章說,優秀的作品都是形式(form)和功能(function)的統一。形式必須服從功能,功能決定了形式,英文叫做"form follows function"。

對於優秀的程序員,只要弄清楚了底層,UI(用戶界面)就會顯而易見。
低代碼編程的問題在於,它是先有 UI(形式),再有代碼(功能)。
用戶先拖拉生成 UI,系統再根據 UI 生成代碼。這是本末倒置,讓底層代碼適配 UI,註定了兩者都有問題:UI 是空想出來的,代碼為了適配 UI,註定冗餘和低效。
所以,優秀的軟件不可能用這種方式生成,低代碼編程不會成功。
我認為,他說的很有道理。低代碼編程解決不了這個根本缺陷,適用場景有限,大概只適合一些簡單任務,或者生成原型,不會成為主流工具。程序員應該謹慎開發這類工具,付出的勞動很可能打水漂。
寫到這裡,問題就來了:AI 算不算低代碼編程(或者無代碼編程)?如果低代碼編程不會成功,那麼 AI 編程會成功嗎?
我認為,AI 不同於低代碼編程。低代碼編程是使用者給出 UI,系統來生成代碼,而 AI 是系統同時生成 UI 和代碼,用戶只需要說出需求即可。
這種情況下,形式與功能的結合,完全取決於 AI 的能力。如果有一天,AI 視頻能夠成功,畫面美,情節好,那麼 AI 編程大概也會成功,生成形式與功能統一的應用程序。
小程序容器 FinClip
現在的手機 App 有一個技術趨勢,大家注意到了嗎?
那就是添加小程序容器,讓自家 App 能夠運行其他應用程序。
不僅國內 App 這樣做,海外的一些超級 App 也紛紛效仿,比如 YouTube、Telegram、Line。

上圖就是 Youtube 應用內置的"小遊戲",類似於微信小程序。
究其原因,大概是因為小程序這種架構很靈活,可以方便地添加和更新功能,有利於形成外部生態和變現。
今天,就向大家介紹一款國產的小程序容器 FinClip。如果你想為自己的 App 引入小程序,就用得到它。
它是一個完整的、開箱即用的小程序技術解決方案,提供現成的 SDK,將小程序運行環境嵌入宿主 App。
有了它,任何開發者都能在 iOS / Android / HarmonyOS 等平臺,構建自己的"小程序宇宙"。下圖是 FinClip 目前支持的宿主平臺。

可以看到,除了手機系統,它還支持嵌入桌面應用、車機應用、電視應用等等。
此外,它還有一些很吸引人的技術特性。
(1)跨平臺統一性。它直接兼容微信/支付寶/抖音小程序,可以一行不改,直接讓微信小程序跑在你的應用裡面,無需二次開發。
(2)敏捷開發範式。它的小程序更新無需應用商店審核,可以實現"小時級"迭代。
(3)小遊戲引擎。跟它配套的還有一個小遊戲實時內容互動引擎 RealClip,提供小遊戲運行環境。

這個引擎重點針對小遊戲的性能和兼容性,進行了優化,除了微信小遊戲,還兼容 Unity、Cocos、Laya、Egret Engine 等主流引擎和 WebView。也就是說,無論哪種引擎製作的小遊戲,都能夠直接運行在你的 App 中。
(4)配套開發工具 FinClip Studio。這個工具能將現有的小程序/小遊戲代碼,一鍵轉換成獨立 App,做成可用於 iOS、Android 和鴻蒙的安裝包。
總之,如果你的 App 想引入小程序,或者你現有的小程序需要運行在其他應用(手機或桌面),那麼就可以嘗試 FinClip。
歡迎訪問 Finclip 官網詳細瞭解,免費註冊試用。任何問題都可以加入官方社群交流(下圖)。

[活動] AI 創意挑戰賽,開始投票了
上週五,週刊發佈了消息。首屆全國 AI 編程大賽的"創意賽道",可以提交作品了,不管你會不會編程,只要有 AI 創意,都可以參賽。
消息發佈後,大家反響熱烈。我從組委會同學那裡得知,已經有幾百個創意提交了。

從今天(3月14日)開始,大賽進入了投票階段,歡迎大家投票,評出最能打動你的創意。也許你還可以從中得到靈感,拿來自己實現。
所有投票用戶均可抽獎,獎品有小夜燈、工卡套、手持風扇等等。因為投票是當天有效,第二天可以再次投票,所以每個人有多次抽獎機會。
當然,如果你還有創意沒有提交,現在依然可以提交參賽。
已經參賽的同學,不要忘了為自己拉票,發佈到社交平臺上(公眾號/b站/小紅書/微信朋友圈/技術社群),分享比賽,爭取大賽獲獎。
大賽詳情和作品投票,可以點擊這裡,或者掃描上方海報。
科技動態
1、人工心臟
一個澳大利亞男子,植入了一顆人工心臟(下圖),已經活了100天,並且成功出院,創造了世界紀錄。

這相當於在胸腔植入一個血液泵,一天24小時推動血液循環。
他是目前世界唯一一個帶有人工心臟的人,也是世界第六例人工心臟植入。前五例的人工心臟都只是過渡,病人後來又移植了其他人的心臟。
如果機器心臟以後技術成熟了,人類的壽命可望大幅延長。
2、手機改路由器
舊手機有什麼用?
一家比利時公司取出手機主板,加上網線口、USB 口,將其改成了路由器。

上圖左側是手機主板,右側是將手機主板安裝在擴展板上,從而形成路由器主板。
手機的 CPU、調製解調器、內存等,都是可複用的,因此改裝費用很低。而且,手機的硬件配置很高,性能比高端路由器強得多。
3、靜音圖標
蘋果上週發佈的 MacBook Air M4,悄然改掉了一個26年之久的設計。
它把筆記本的靜音圖標(F10 按鈕上的圖標),在喇叭上加了一道刪除線。
下圖是以前的圖標。

下圖是現在的圖標。

這麼簡單的一個圖標,蘋果用了26年才改掉。
4、汽車的物理按鈕
德國大眾汽車宣佈,未來它的所有車型,都會同時配備觸摸屏和物理按鈕。

上圖是大眾 ID.3 車型的控制台,上方是觸摸屏,下方都是按鈕。
該公司表示,汽車不是手機,不能都靠觸摸屏,重要的功能必須有固定的位置和真實的觸感。
5、其他
(1)一家英國生物公司,研發了轉基因香蕉。這種香蕉可以長期保持新鮮和黃色,不會變褐變黑。

即使剝開後12小時,香蕉皮也不變色,這樣有利於香蕉銷售。
(2)Android 15 將有一個原生的終端程序,提供一個基於 Debian 的 Linux 發行版供用戶使用。

這個功能的底層是虛擬機機制,它將大大方便程序員,將安卓手機當作 Linux 桌面電腦使用。

文章
1、AI 大模型2024年的進展(英文)

著名程序員 Simon Willison 3月7日的演講稿,通俗地介紹了 AI 在過去一年的巨大飛躍,很好的綜述。
2、如何用 Claude Code 反編譯代碼(英文)

作者演示了一個驚人的例子,使用 Anthropic 發佈的 Claude Code,將 Webpack 編譯出來的文件反編譯,還原成源代碼。
3、CSS 跨文檔視圖轉換(英文)
本文介紹一個示例,通過 CSS 新的跨文檔視圖轉換功能,使得多頁面應用的跳轉,也像單頁面應用(SPA)一樣流暢順滑。
4、Cursor 上傳 .env 文件(英文)

Cursor 是現在非常流行的一個 AI 代碼編輯器,它的用戶論壇爆出一個帖子,有人發現它會上傳用戶的 .env 文件,由於裡面都是環境參數,會帶來安全隱患。
5、JSON 與 JavaScript 的對象成員順序(中文)

JSON 與 JavaScript 的對象,裡面的成員順序有沒有規定?本文探討這個問題。
6、Go 語言錯誤處理機制的優點(英文)

Go 語言的錯誤處理很特別,沒有 try...catch 機制,錯誤是一個值,作者解釋這樣設計的好處。
工具
微軟使用 Go 語言重寫了 TypeScript 編譯器 tsc,據說速度可以提高10倍,參看介紹文章。

目前,TypeScript 的版本是5.8,等到這個工具穩定了,將發佈為 TypeScript 7。

一個網頁應用,可以定製二維碼的顏色、斑點、徽標。

一個開源的網頁應用,用來掃描局域網的 IP 分配,可以發送主機上線和掉線的通知。
4、XPipe

一個跨平臺的桌面應用,通過圖形界面,將所有的服務器連接在一個地方管理。

一個開源的翻譯 API 代理服務,可以接入各種大模型,對外提供翻譯服務,試用 Demo。(@fruitbars 投稿)

開源的 Python 腳本,用來下載抖音短視頻。(@jiji262 投稿)

免費分析 java thread 的網站,上傳 jstack 導出的線程快照文件,分析線程池內線程狀態。(@HbOrea 投稿)
8、Mono

製作內容分享卡片的免費網站。(@RiverTwilight 投稿)

開源的 Telegram 文件下載器,支持多頻道、多賬戶同時下載。(@jarvis2f 投稿)
一個開源的 Obsidian 插件,將筆記自動同步到多種雲盤服務。(@ai-bytedance 投稿)
AI 相關
上週,Mistral AI 發佈了號稱史上最強的 OCR 識別工具,具有公式和表格的識別能力,參見介紹文章。


著名程序員 Simon Willison 開源了一個 Python 腳本,演示了怎樣調用 Mistral 的 API 進行文字識別,參考他的文章。
2、Free QWQ

免費、無限制的算力平臺,為開發者提供 QwQ 32B 大語言模型 API。(@nexmoe 投稿)

使用大模型對 GitLab 項目進行 Code review 的工具。(@mimo-x 投稿)
4、人話翻譯器
一個 Chrome 插件,通過 AI 將難懂的中文翻譯成好懂的中文。(@DemoJ 投稿)
資源
1、辰宇落雁體

一個開源的中文手寫字體。

一款合成字體,解決 JetBrains Mono 沒有中文字形的痛點,全部等寬無襯線,中英文 2:1 寬對齊。(@SpaceTimee 投稿)

一個兒童睡前故事網站,收集了全球經典的兒童睡前故事。(@yimiqidage 投稿)
4、IP 偵探

免費的在線 IP 歸屬地查詢。(@Oliverwqcwrw 投稿)
另有一個 Chrome 插件 IP Location Finder,選中 IP 地址,顯示歸屬地。(@Yanel85 投稿)

圖片
1、紅綠色盲
紅綠色盲的患者,看不到紅色和綠色。在他們眼裡,這兩種顏色都會變成黃色。
下面是一半紅、一半綠的樹葉。

紅綠色盲患者看到的卻是一張黃色樹葉。

大概每20個人裡面,就有一個人有色盲或色弱問題。所以,設計界面的時候,使用紅色或綠色必須非常謹慎,因為紅綠色盲患者分不清。
下面的日曆使用綠色和粉紅色,表示特殊的日期。

但是,紅綠色盲患者看到的是下面這樣,根本分不清。

因此,用戶界面輕易不要使用紅色和綠色。
文摘
我最近常常想一個問題:如果 AI 強大到所有方面都超過人類,它和機器人接管一切,人類要幹什麼呢?
凱文·凱利認為,隨著工作都交給機器人,人類可以從事越來越多有趣的工作,就像工業革命後一樣。
這種說法在短期內有一定道理,但是有一個前提,就是人類能做計算機做不到的事情。
我認為,沒有理由認為這個前提會永遠成立。
除非政府強制規定,計算機不得從事某些工作,只有人類可以做。但是那樣的話,那些工作很可能就會停滯發展了。停滯發展的行業沒有前景,收入也不會增長,從業者難以感到滿意。
讓我們假設一種極端的情況,如果機器完全超越人類,每件事都比人類做得好,大部分人無法為社會做出貢獻時,一切會怎樣?
如果一個人無法為社會做出貢獻,也就失去了他的經濟價值,就算他能靠政府的補助繼續活著,那麼對於他來說,個人價值是什麼呢,就是活一天算一天?
目前來看,這個問題還比較遙遠,就算那一天到來,也是很久以後的事情了。眼下比較現實的問題是,AI 正在大量減少高薪工作。隨著機器的能力越來越強,很多白領工作的價值迅速變小,大多數人越來越難找到報酬豐厚、令人滿意的工作。
這就是現在發生的問題,高薪的工作崗位不斷減少,難以獲得。
言論
1、
以前的球票、音樂會票、景點票、電影票都是紙質的,現在全改成數字的。
我們的過去都保存在手機裡,再也沒有紀念物了。
-- 彭博社
2、
越來越多的應用程序轉移到互聯網上,操作系統的軟件差異變得越來越不重要。這就是為什麼 M1 芯片對 Mac 的未來如此重要。
蘋果應當利用這一波 AI,發揮其硬件優勢,鼓勵開發者在本地運行 AI 模型。
-- 《蘋果 AI 的潛力》,本文指出蘋果芯片可以本地運行 AI 模型,不需要 Nvidia 顯卡,蘋果應該利用這一點,擴大銷售
3、
自從有了 AI,我發現自己不再擔心項目對我來說太大、太複雜,或者項目使用了我不瞭解的技術或編程語言,一切都變得容易得多。
我正在重新審視一些我曾認為太複雜或超出我能力範圍的業餘項目,只要有時間,我就會去嘗試。這是一個令人興奮的時代。
4、
我認為,數學本質上已經沒有什麼好問題了。讓大量數學家感興趣的問題數量每年都在減少,而且幾乎所剩無幾。
現代數學研究越來越侷限於少數人對某個特定主題的研究,即使是研究生也常常被現代數學問題的極端專業性和深奧性所困擾。
未來的研究生不應再需要證明一些全新的東西,相反地,他們的主要目標可能是簡化過去的研究結果。
-- 《數學已經沒有問題了》
往年回顧
崖門海戰的感想(#294)
大數據已死(#244)
悲觀者正確,樂觀者成功(#194)
提高收入的根本途徑(#144)
(完)












