近日,Reddit 上有網(wǎng)友放出了一張疑似 Google 翻譯添加了能讓編程語(yǔ)言間互相轉(zhuǎn)換的圖片,立即引發(fā)數(shù)千名程序員網(wǎng)友的跟帖熱議。圖片顯示,Google 翻譯中添加了編程語(yǔ)言進(jìn)行“互譯”,輸入Python 語(yǔ)言【print("Hello")】就可翻譯成 Java 語(yǔ)言【 System.out.println("Hello");】。
“Java 語(yǔ)言對(duì)于大型編程項(xiàng)目來(lái)說(shuō)實(shí)在是復(fù)雜且冗長(zhǎng)了,天哪,急需這樣一款工具。”消息一出,網(wǎng)友們興奮極了。
讓程序員們?nèi)呵榧ぐ旱脑旒賵D
這當(dāng)然是假的。不過(guò)圖片實(shí)在太真實(shí)了,乍一看,難分真假,很多人都被騙了,在評(píng)論里嗷嗷尖叫,以為 Google 終于又來(lái)拯救他們了,很多人都可能興沖沖跑到 Google 翻譯去試了一遍。如果你在 Google 翻譯里輸入了 Python 語(yǔ)句,你得到的還是那個(gè)相同的輸出語(yǔ)句。
能騙過(guò)很多程序員,說(shuō)明“造假者”的造假功力不淺。很多人問(wèn),為什么不用截圖騙人,而是放一張看上去像是用相機(jī)拍的照片,這不多此一舉嗎?
你知道,如果用的是截圖,一般了解套路的程序員很快就能發(fā)現(xiàn)圖片是假的,因?yàn)楹苋菀讘岩蛇@張圖是通過(guò)開(kāi)發(fā)工具編輯 HTML 而成。但這位“造假者”顯然沒(méi)有這么做,實(shí)際上,“像素級(jí)”的模糊照片增加了真實(shí)性,而這恰恰是他的高明之處。
網(wǎng)友@schludy評(píng)論說(shuō),“真正的神級(jí)程序員都太聰明以至于都不會(huì)使用截圖......”,當(dāng)然,也不會(huì)麻煩到使用 P 圖軟件。
這幅圖正是編輯 HTML 后的截圖
不過(guò),程序員的狂熱期待,也說(shuō)明一款優(yōu)秀的編程語(yǔ)言轉(zhuǎn)譯工具(transpiler,是以某種編程語(yǔ)言的程序源代碼作為輸入,生成以另一種編程語(yǔ)言構(gòu)成的等效源代碼的轉(zhuǎn)譯器。)對(duì)他們來(lái)說(shuō)確實(shí)是迫切需求。
那到底有沒(méi)有實(shí)用的轉(zhuǎn)譯工具?
目前還沒(méi)有成熟的轉(zhuǎn)譯器供程序員們使用,很多都還在初級(jí)開(kāi)發(fā)階段,比如這款叫 voc 的轉(zhuǎn)譯工具(https://github.com/pybee/voc),能將 Python 字節(jié)碼(bytecode)轉(zhuǎn)換為 Java 字節(jié)碼,然后在 Java 虛擬機(jī)上運(yùn)行。(鏈接:https://pybee.org/project/projects/bridges/voc/)
voc 工具提供兩個(gè)重要功能:
將 Python 3.4+ 源文件編譯為 Java 類文件,使你能夠在 JVM(包括 Android 的VM)上運(yùn)行 Python 代碼。
提供一個(gè) API 讓你以編程方式創(chuàng)建 Java 類文件。
不過(guò)官網(wǎng)指出,voc 工具還不能完全兼容 Python 3.4,并且只有一個(gè)簡(jiǎn)單的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn),目前仍然需要實(shí)現(xiàn)一些語(yǔ)言特性(比如非本地函數(shù)和一些內(nèi)置函數(shù))。但是,voc 工具可以轉(zhuǎn)換簡(jiǎn)單的 Python 程序,甚至可以編寫(xiě)簡(jiǎn)單的 Android 應(yīng)用。
根據(jù)程序員的使用體驗(yàn)來(lái)看,“時(shí)好時(shí)壞”,這個(gè)轉(zhuǎn)譯工具目前的狀況有點(diǎn)像 Google 翻譯。
編程語(yǔ)言轉(zhuǎn)換器可行嗎?
在程序員群體中,一款好的編程語(yǔ)言轉(zhuǎn)譯器意味著有更好的生產(chǎn)工具,但像這樣有著強(qiáng)需求的工具為什么到現(xiàn)在都沒(méi)出現(xiàn)?
顯然,編程語(yǔ)言轉(zhuǎn)譯器不是那么好做,可能需要花費(fèi)大量的時(shí)間和精力,要不然像 Google 這樣的企業(yè)可能早做出來(lái)了。
Reddit 上的程序員網(wǎng)友也對(duì)編程語(yǔ)言轉(zhuǎn)譯工具建言獻(xiàn)策:
網(wǎng)友@merc08 指出應(yīng)該根據(jù) Google 翻譯常規(guī)語(yǔ)言的做法來(lái)做:可以用語(yǔ)言來(lái)做轉(zhuǎn)譯,而每個(gè)單詞有多種不同的含義。編程語(yǔ)言對(duì)每個(gè)命令都有固定的含義,所以它可能會(huì)是一個(gè)非常簡(jiǎn)單的查找表,只要它僅限于一種命令,做起來(lái)就不會(huì)那么難。
這位網(wǎng)友的想法簡(jiǎn)單來(lái)說(shuō)就是,人們會(huì)接受 Google 翻譯在常規(guī)語(yǔ)言翻譯中出現(xiàn)的一些錯(cuò)誤,這可能并不妨礙溝通,而在編程語(yǔ)言轉(zhuǎn)譯工具中,也會(huì)讓你通過(guò)適當(dāng)關(guān)鍵字來(lái)進(jìn)行匹配搜索正確的轉(zhuǎn)譯格式。
有人反駁,編程語(yǔ)法不僅僅由查找表中的關(guān)鍵字組成,可能要比這復(fù)雜得多。比如面臨如何設(shè)計(jì)簡(jiǎn)單的算法來(lái)進(jìn)行轉(zhuǎn)譯、內(nèi)存管理這些問(wèn)題。
還有人提到,理論上講,任何兩種圖靈完備語(yǔ)言都是可行的,只需將一種語(yǔ)言程序通過(guò)圖靈機(jī)(Turing Machine)就可以翻譯成另一種語(yǔ)言程序,當(dāng)然還需要考慮更難的跨范式(cross-paradigm)翻譯,如 prologinto轉(zhuǎn)譯成 basic 或 javascriptinto 轉(zhuǎn)譯成 Haskell。
但考慮到 Google 翻譯目前對(duì)常規(guī)語(yǔ)言的翻譯都不是那么準(zhǔn)確,而對(duì)準(zhǔn)確性要求更高的編程語(yǔ)言來(lái)說(shuō),現(xiàn)在編程語(yǔ)言轉(zhuǎn)譯工具的實(shí)用性可能更雞肋,很多網(wǎng)友表達(dá)了悲觀態(tài)度。
總的來(lái)說(shuō),這幅“造假”圖片能引起程序員群情亢奮,說(shuō)明了對(duì)這一工具需求的迫切性——當(dāng)然,排除那些對(duì)各種編程語(yǔ)言非常熟練的“大神級(jí)”程序員,他們可能對(duì)轉(zhuǎn)譯工具不屑一顧。科技改變生活,為了更快的改變大眾生活,就應(yīng)該先提升程序員們手中的生產(chǎn)工具。
期待有一款好用的轉(zhuǎn)譯工具來(lái)拯救程序員。大聲告訴這個(gè)世界,你需要它!
-
Google
+關(guān)注
關(guān)注
5文章
1789瀏覽量
59047 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1956瀏覽量
36662 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30414
原文標(biāo)題:Python一鍵轉(zhuǎn)Java?“Google翻譯”你別鬧
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
harmony-utils之TempUtil,溫度轉(zhuǎn)換工具類
數(shù)據(jù)驅(qū)動(dòng)AI工具好用嗎
阿里云升級(jí)通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充

UCD3138A64/UCD3138128程序員手冊(cè)

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

評(píng)論