Python 一鍵轉 Java?「Google 翻譯」你別鬧

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

Python 一鍵轉 Java?“Google 翻譯”你別鬧

作者 | 若名

出品 | AI科技大本營(ID: rgznai100)

最近,Reddit 上有網友放出了一張疑似 Google 翻譯添加了能讓編程語言間互相轉換的圖片,立即引發數千名工程師網友的跟帖熱議。圖片顯示,Google 翻譯中添加了編程語言進行「互譯」,輸入Python 語言【print(“Hello”)】就可翻譯成 Java 語言【 System.out.println(“Hello”);】。

Python 一鍵轉 Java?“Google 翻譯”你別鬧

「Java 語言對於大型編程項目來說實在是複雜且冗長了,天哪,急需這樣一款工具。」消息一出,網友們興奮極了。

讓工程師們群情激昂的造假圖

這當然是假的。不過圖片實在太真實了,乍一看,難分真假,很多人都被騙了,在評論里嗷嗷尖叫,以為 Google 終於又來拯救他們了,很多人都可能興沖沖跑到 Google 翻譯去試了一遍。如果你在 Google 翻譯里輸入了 Python 語句,你得到的還是那個相同的輸出語句。

能騙過很多工程師,說明「造假者」的造假功力不淺。很多人問,為什麼不用截圖騙人,而是放一張看上去像是用相機拍的照片,這不多此一舉嗎?

你知道,如果用的是截圖,一般了解套路的工程師很快就能發現圖片是假的,因為很容易懷疑這張圖是通過開發工具編輯 HTML 而成。但這位「造假者」顯然沒有這麼做,實際上,「像素級」的模糊照片增加了真實性,而這恰恰是他的高明之處。

網友@schludy評論說,「真正的神級工程師都太聰明以至於都不會使用截圖……」,當然,也不會麻煩到使用 P 圖軟件。

Python 一鍵轉 Java?“Google 翻譯”你別鬧

這幅圖正是編輯 HTML 後的截圖

不過,工程師的狂熱期待,也說明一款優秀的編程語言轉譯工具(transpiler,是以某種編程語言的程序源代碼作為輸入,生成以另一種編程語言構成的等效源代碼的轉譯器。)對他們來說確實是迫切需求。

那到底有沒有實用的轉譯工具?

目前還沒有成熟的轉譯器供工程師們使用,很多都還在初級開發階段,比如這款叫 voc 的轉譯工具(https://github.com/pybee/voc),能將 Python 字節碼(bytecode)轉換為 Java 字節碼,然後在 Java 虛擬機上運行。(鏈接:https://pybee.org/project/projects/bridges/voc/)

voc 工具提供兩個重要功能:

  • 將 Python 3.4+ 源文件編譯為 Java 類文件,使你能夠在 JVM(包括 Android 的VM)上運行 Python 代碼。
  • 提供一個 API 讓你以編程方式創建 Java 類文件。

    不過官網指出,voc 工具還不能完全兼容 Python 3.4,並且只有一個簡單的標準庫做到,目前仍然需要做到一些語言特性(比如非本地函數和一些內置函數)。但是,voc 工具可以轉換簡單的 Python 程序,甚至可以編寫簡單的 Android 應用。

    根據工程師的使用體驗來看,「時好時壞」,這個轉譯工具目前的狀況有點像 Google 翻譯。

    編程語言轉換器可行嗎?

    在工程師群體中,一款好的編程語言轉譯器意味著有更好的生產工具,但像這樣有著強需求的工具為什麼到現在都沒出現?

    顯然,編程語言轉譯器不是那麼好做,可能需要花費大量的時間和精力,要不然像 Google 這樣的企業可能早做出來了。

    Reddit 上的工程師網友也對編程語言轉譯工具建言獻策:

    網友@merc08 指出應該根據 Google 翻譯常規語言的做法來做:可以用語言來做轉譯,而每個單詞有多種不同的含義。編程語言對每個命令都有固定的含義,所以它可能會是一個非常簡單的查找表,只要它僅限於一種命令,做起來就不會那麼難。

    這位網友的想法簡單來說就是,人們會接受 Google 翻譯在常規語言翻譯中出現的一些錯誤,這可能並不妨礙溝通,而在編程語言轉譯工具中,也會讓你通過適當關鍵字來進行匹配搜尋正確的轉譯格式。

    有人反駁,編程語法不僅僅由查找表中的關鍵字組成,可能要比這複雜得多。比如面臨如何設計簡單的算法來進行轉譯、內存管理這些問題。

    還有人提到,理論上講,任何兩種圖靈完備語言都是可行的,只需將一種語言程序通過圖靈機(Turing Machine)就可以翻譯成另一種語言程序,當然還需要考慮更難的跨范式(cross-paradigm)翻譯,如 prologinto 轉譯成 basic 或 javainto 轉譯成 Haskell。

    但考慮到 Google 翻譯目前對常規語言的翻譯都不是那麼準確,而對準確性要求更高的編程語言來說,現在編程語言轉譯工具的實用性可能更雞肋,很多網友表達了悲觀態度。

    總的來說,這幅「造假」圖片能引起工程師群情亢奮,說明了對這一工具需求的迫切性——當然,排除那些對各種編程語言非常熟練的「大神級」工程師,他們可能對轉譯工具不屑一顧。科技改變生活,為了更快的改變大眾生活,就應該先提升工程師們手中的生產工具。

    期待有一款好用的轉譯工具來拯救工程師。大聲告訴這個世界,你需要它!

    (本文為 AI科技大本營原創文章,轉載請微信聯繫 1092722531

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!