java html转图片_Python一键转Java?“Google翻译”你别闹
作者 | 若名
出品 | AI科技大本营(ID:rgznai100)
近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热议。图片显示,Google 翻译中添加了编程语言进行“互译”,输入Python 语言【print("Hello")】就可翻译成 Java 语言【 System.out.println("Hello");】。
“Java 语言对于大型编程项目来说实在是复杂且冗长了,天哪,急需这样一款工具。”消息一出,网友们兴奋极了。
让程序员们群情激昂的造假图
这当然是假的。不过图片实在太真实了,乍一看,难分真假,很多人都被骗了,在评论里嗷嗷尖叫,以为 Google 终于又来拯救他们了,很多人都可能兴冲冲跑到 Google 翻译去试了一遍。如果你在 Google 翻译里输入了 Python 语句,你得到的还是那个相同的输出语句。
能骗过很多程序员,说明“造假者”的造假功力不浅。很多人问,为什么不用截图骗人,而是放一张看上去像是用相机拍的照片,这不多此一举吗?
你知道,如果用的是截图,一般了解套路的程序员很快就能发现图片是假的,因为很容易怀疑这张图是通过开发工具编辑 HTML 而成。但这位“造假者”显然没有这么做,实际上,“像素级”的模糊照片增加了真实性,而这恰恰是他的高明之处。
网友@schludy评论说,“真正的神级程序员都太聪明以至于都不会使用截图......”,当然,也不会麻烦到使用 P 图软件。
这幅图正是编辑 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 或 javascriptinto 转译成 Haskell。
但考虑到 Google 翻译目前对常规语言的翻译都不是那么准确,而对准确性要求更高的编程语言来说,现在编程语言转译工具的实用性可能更鸡肋,很多网友表达了悲观态度。
总的来说,这幅“造假”图片能引起程序员群情亢奋,说明了对这一工具需求的迫切性——当然,排除那些对各种编程语言非常熟练的“大神级”程序员,他们可能对转译工具不屑一顾。科技改变生活,为了更快的改变大众生活,就应该先提升程序员们手中的生产工具。
期待有一款好用的转译工具来拯救程序员。大声告诉这个世界,你需要它!
(本文为 AI科技大本营原创文章,转载请微信联系 1092722531)
公开课预告
◆
今晚8点直播
◆
如何用AI技术为黑白老照片上色?本次公开课中,百度高级研发工程师李超将讲述对抗生成网络相关,学术界的研究现状和应用场景,以及GAN在百度视觉+百度PR+新华社合作的焕彩项目中的应用。
推荐阅读
熬夜写代码,不如换女装入GitHub获上千Star?
春节停车难?用Python找空车位
Python告诉你:为何年终奖多发一元,到手却少两千多?
送你一份春节看片攻略~
加班的程序员:996 没有未来
滴滴回应顺风车重新上线;苹果推 iPhone 新政策;便利蜂“高数裁员”引争议? | 极客头条
微服务架构下静态数据通用缓存机制
打破区块链不可能三角!2 华人专家论文将登 NSDI 2019 计算机顶会
女程序员:我敲代码养家,老公负责貌美如花!
java html转图片_Python一键转Java?“Google翻译”你别闹相关推荐
- Python一键转Java?“Google翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...
- Python 一键转 Java?“Google 翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID: rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖 ...
- 怎么在java中引用图片_如何使用Java(读/写)读取复制和粘贴图片?
在Java语言编程中,如何使用Java(读/写)读取复制和粘贴图片? 注意:需要访问网址:http://book2s.com/java/jar/o/opencv/download-opencv-3.2 ...
- python语法与java语法的区别_Python语言与java语法的异同之处
本文主要向大家介绍了Python语言与java语法的异同之处,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.变量 java中定义变量,int a=0;而python中为 a= ...
- java对话框背景图片插入_关于java编程窗体加背景图片的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给一个登录界面加背景图片,一直加不上,同学给了一套代码,加上去也不行,彻底跪了,求大神指点一下.ps:窗体的大小和图片大小一样.只把有用的部分代码贴了出来 ...
- java点击图片发出声音_[Java教程]点击放大图片
[Java教程]点击放大图片 0 2017-11-18 22:00:06 body{ text-align:center} div{ margin:50px auto} function clik(t ...
- java 微信开发图片发送,微信开发?Java上传Base64图片
class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...
- java 浏览器访问图片不显示_[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题...
[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题 0 2016-05-27 07:00:50 做项目的时候遇到一个问题: 上传文件以后,相同的地址,第一次加载没有问题,当你操作次数过快, ...
- java muti实现图片上传_MutiFileUpload.java 多文件上传
package app.other.commons.file; import java.io.UnsupportedEncodingException; ..... / ^v^ ** * @vers ...
最新文章
- 翻译:AKKA笔记 - Actor消息 -1(二)
- Win32 控件篇(3)
- VC++程序中用PlaySound函数加入自定义声音
- mqtt 一对多_MQTT协议简要分析
- Maya mayapy.exe 安装 Cython,编译 pyd
- 解析 react、vue等路由参数的库 path-to-regexp
- 微信小程序定义全局变量_微信小程序第二天学习内容分享
- (ヒトコト)一个挺有趣的东西!作为一个动漫宅,游戏宅来说还是一个挺有趣的接口!banner上面就是...
- 21岁还可以学php开发吗,PHP已经21岁了!
- delete指针的含义
- python项目代码总结
- java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
- Json.Net学习笔记(十) 保持对象引用
- 文件分片_文件分片上传原理解析
- Centos:更换为网易镜像源
- WPF应用无法使用Snoop分析的解决办法
- react 控制台 Maximum call stack size exceeded 如何解决
- 蓝牙耳机音质变差或许该注意这些问题,学生党什么牌子蓝牙耳机性价比高?
- Ubuntu 安装sogo 输入法
- 《缠中说禅108课》49:利润率最大的操作模式