AI 竟能將 Python 代碼一次轉換為 Rust?終端機外觀的驚人蛻變

顯示炫麗終端機特效的黑色代碼終端機影像
AI Summary

深入探討 AI 如何將基於 Python 的終端機特效庫一次性轉換為 Rust,並將效能提升超過 9 倍的案例。

想像一下,如果那原本只有黑底白字的刻板終端機,突然像電影《駭客任務》般傾瀉而下綠色的程式代碼,或是呈現燃燒的火焰效果,會是什麼樣的情景?有一個名為「終端機文字特效(TerminalTextEffects,以下簡稱 TTE)」的工具,能讓開發者的專屬領域變得更加有趣且華麗。最近傳出消息,該工具在 AI 的協助下,實現了驚人的效能改進。

為什麼這很重要?

我們日常使用的大多數軟體,其實都在進行一場與「速度」的戰爭。如果程式能反應得快 0.1 秒,使用者就會感到更加舒適。TTE 原本是使用 Python(一種易學且廣泛使用的程式語言)編寫的,但在執行速度方面存在一些限制。

這個案例展示了 AI 不僅僅是會寫文章,還能將現有軟體完全重寫為更強大的語言——Rust(一種以記憶體安全與高速著稱的程式語言),從而顯著提升效能。這預示了一個新未來:開發者可以在減輕維護負擔的同時,享受最佳效能。

簡而言之:從 Python 到 Rust 的「跳槽」

舉個比喻:如果說 Python 是一輛舒適的「腳踏車」,那麼 Rust 就如同性能卓越的「跑車」。腳踏車在鄰近地區代步(撰寫簡易腳本)時表現絕佳,但若要馳騁高速公路(執行複雜且繁重的任務),就有其侷限性。

AD

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 正在改變軟體的本質。

參考資料

  1. DHH Shares Fable RustRewriteofPythonLibrary · Digg, https://digg.com/tech/5jmfukm3
  2. TerminalTextEffects(TTE) is a terminal visual effects engine., https://pypi.org/project/terminaltexteffects/
  3. Want Dynamic Effects for Terminal Text? X-CMD terminaltexteffects, https://www.x-cmd.com/install/terminaltexteffects
  4. Making the command line fun -terminaltexteffects- Dom Corriveau, https://blog.ctms.me/posts/2024-05-30-cli-tool-terminaltexteffects/
  5. terminaltexteffects- Inline Visual Effects in the… - Terminal Trove, https://terminaltrove.com/terminaltexteffects/
  6. GitHub - ChrisBuilds/terminaltexteffects: TerminalTextEffects (TTE) is a terminal visual effects engine, application, and Python library. · GitHub, https://github.com/ChrisBuilds/terminaltexteffects
  7. 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
AD
測試你的理解
Q1. 此次 Rust 重寫後獲得的最大變化是什麼?
  • 庫的大小增加
  • 執行速度提升,並成為 3MB 的單一可執行檔
  • 必須額外安裝 Python 模組
透過 Rust 重寫,啟動時間從 87ms 縮短至 2ms,渲染速度快了 9.6 倍,並成為無依賴項的 3MB 單一可執行檔。
Q2. TerminalTextEffects (TTE) 主要執行什麼功能?
  • 網頁瀏覽器圖形引擎
  • 在終端機中生成雨水、火焰、駭客任務等視覺特效
  • 資料庫自動備份
TTE 是一個基於 Python 的終端機視覺特效引擎,可在終端機中實現超過 70 種不同的效果。
Q3. 此專案中使用的 AI 工具名稱為何?
  • Fable
  • RewriteLM
  • Gemma
名為 Fable 的 AI 工具使用了 1,100 萬個 Token,將整個 Python 庫一次性重寫為 Rust。