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