深入探討 AI 如何將基於 Python 的終端機特效庫一次性轉換為 Rust,並將效能提升超過 9 倍的案例。
想像一下,如果那原本只有黑底白字的刻板終端機,突然像電影《駭客任務》般傾瀉而下綠色的程式代碼,或是呈現燃燒的火焰效果,會是什麼樣的情景?有一個名為「終端機文字特效(TerminalTextEffects,以下簡稱 TTE)」的工具,能讓開發者的專屬領域變得更加有趣且華麗。最近傳出消息,該工具在 AI 的協助下,實現了驚人的效能改進。
為什麼這很重要?
我們日常使用的大多數軟體,其實都在進行一場與「速度」的戰爭。如果程式能反應得快 0.1 秒,使用者就會感到更加舒適。TTE 原本是使用 Python(一種易學且廣泛使用的程式語言)編寫的,但在執行速度方面存在一些限制。
這個案例展示了 AI 不僅僅是會寫文章,還能將現有軟體完全重寫為更強大的語言——Rust(一種以記憶體安全與高速著稱的程式語言),從而顯著提升效能。這預示了一個新未來:開發者可以在減輕維護負擔的同時,享受最佳效能。
簡而言之:從 Python 到 Rust 的「跳槽」
舉個比喻:如果說 Python 是一輛舒適的「腳踏車」,那麼 Rust 就如同性能卓越的「跑車」。腳踏車在鄰近地區代步(撰寫簡易腳本)時表現絕佳,但若要馳騁高速公路(執行複雜且繁重的任務),就有其侷限性。
TTE 引擎原本騎著名為 Python 的腳踏車。但為了產生更多效果並跑得更快,必須將引擎完全更換為名為 Rust 的跑車。這時,AI 工具「Fable」登場了。Fable 就像是一位技術精湛的維修師,將腳踏車拆解後,完美地將其結構轉移到跑車的設計藍圖中;它分析了現有的 Python 代碼,並透過一次性(One-shot)嘗試,就將其完美轉換為 Rust 代碼 Source 1 Source 12。
轉換後的程式成為了一個 3MB 的單一檔案,即使沒有安裝 Python 也能在任何地方立即執行,連帶也解決了依賴項(執行程式前需預先安裝的輔助軟體)的煩惱 Source 12。
目前進度:到底快了多少?
結果已由數據證明。原有的 Python 版本 TTE 啟動需要 87ms(毫秒,千分之一秒),而 AI 重寫後的 Rust 版本僅需 2ms 即可啟動。渲染速度(在螢幕上繪製效果的速度)也比之前快了 9.6 倍 Source 1 Source 12。
當然,TTE 本身就是一個無需第三方模組、僅靠 Python 就能運作良好的出色工具 Source 2 Source 8。但這次的 Rust 版本,意味著它能在終端機環境中提供更輕量、更快速且更即時的華麗視覺效果。TTE 提供了超過 70 種視覺特效(如雨水、駭客任務、火焰等),讓使用者即使在文字基礎的終端機中也能擁有豐富的體驗 Source 5 Source 6 Source 7。
未來展望
此案例是一個象徵性事件,展示了利用 AI 進行「代碼遷移(Code Migration,將現有代碼移至不同語言或環境的工作)」的可能性。開發者只需將現有的複雜 Python 代碼丟給 AI,並說「幫我用 Rust 優化」,就能解決效能提升這個艱鉅的課題。
這正是我們使用的應用程式與工具變得越來越輕巧快速的秘訣。未來,這些讓人類開發者感到繁瑣且耗時的工作,很有可能透過 AI 逐漸自動化。這不只是單純的代碼轉換,而是 AI 正在改變軟體的本質。
參考資料
- DHH Shares Fable RustRewriteofPythonLibrary · Digg, https://digg.com/tech/5jmfukm3
- TerminalTextEffects(TTE) is a terminal visual effects engine., https://pypi.org/project/terminaltexteffects/
-
Want Dynamic Effects for Terminal Text? X-CMD terminaltexteffects, https://www.x-cmd.com/install/terminaltexteffects - Making the command line fun -terminaltexteffects- Dom Corriveau, https://blog.ctms.me/posts/2024-05-30-cli-tool-terminaltexteffects/
- terminaltexteffects- Inline Visual Effects in the… - Terminal Trove, https://terminaltrove.com/terminaltexteffects/
- GitHub - ChrisBuilds/terminaltexteffects: TerminalTextEffects (TTE) is a terminal visual effects engine, application, and Python library. · GitHub, https://github.com/ChrisBuilds/terminaltexteffects
- DHH on X: “Fable one-shotted a Rust rewrite of the TerminalTextEffects Python library in 11M tokens. Startup time went from 87ms to 2ms and rendering speed is up by 9.6x. Now zero dependencies and a 3mb single exec 🤯 https://t.co/3cTEQAqYdO” / X, https://x.com/dhh/status/2086590006898958752
- 庫的大小增加
- 執行速度提升,並成為 3MB 的單一可執行檔
- 必須額外安裝 Python 模組
- 網頁瀏覽器圖形引擎
- 在終端機中生成雨水、火焰、駭客任務等視覺特效
- 資料庫自動備份
- Fable
- RewriteLM
- Gemma