代码都智能自动生成了,还要程序员干嘛?-程序员宅基地

前端干着干着,就把自己干没了......

640?wx_fmt=jpeg

作者 | 郭芮

出品 | CSDN资讯

要说开源精神,阿里估计在国内能够排在最前列。

近几年,阿里接二连三“搞事情”。根据阿里近期发布的《2018 年度代码报告》显示,目前阿里巴巴就已经有 400 多个开源项目,涉及中间件、框架、组件、数据库、存储等,包括滴滴、网易、Netflix、Uber 在内的互联网公司都是阿里开源项目的使用者。

最近阿里也没闲着,又发布了大家喜闻乐见的代码自动生成工具 imgcook。


代码是如何自动智能生成的?


imgcook 中文译为“图像大厨”,顾名思义,它是一款专注于各种图像(Sketch、PSD、静态图片)处理的工具,通过智能化手段将各种图像一键生成可维护的 UI 视图代码。

虽说目前还只是社区体验版,但其也是经过淘宝前端团队内部近 2 年的打磨才推出的全新产品。按照阿里官方的说法,这个打着“高度还原各种图像,释放 UI 开发生产力”口号的 imgcook 未来足以成为一位 P5 级别的重构工程师,实现 100% 的还原、100% 的兼容、以及一键上线!

也就是说,设计师再也不用还原走查了,测试再也不用适配样式了,开发再也不用切图写样式了,喜大普奔有没有......

640?wx_fmt=gif

https://imgcook.taobao.org/


自动代码生成惹争议:究竟是痛点还是伪需求?


对此,众多吃瓜网友们立即兴冲冲地围观吐槽之。

有表示高度认可的:

@刘子健_且行且歌:个人体验了一下,感觉还是不错的,总体而言瑕不掩瑜。 之前在 Github 也关注过类似的项目,但都是一些论文和实验的数据,而这个作为实实在在可用的系统,至少是一个可用的工具了,能帮我们减少一部分的页面开发工作量。 如果真的要做到电影里那种 AI 的效果,估计那时候大家就都都等着失业了。

@小猪快跑lele:今天在D2听到了甄子的分享,以及现场体验了一下,确实挺棒的,识别率也很高,个人感觉还是很有用的。但是这对设计人员有了要求,即设计稿要极其符合设计规范才能保证成功率和后期改动的成本。

@大明爷:太棒了,希望赶紧应用于各种复杂场景,终于不用写 CSS HTML 这破玩意儿了。

@Quetzalcoatlus1:后端菜鸡翘首以盼,写 CSS 是我最痛苦的时候。

也有随即联想到其他或昙花一现、或艰难求存的代码生成器:

@mountainguan:pix2code…响了一下没了下文,最后一个commit都一年前了。

robert_:很早以前 DreamViewer 也有,但是当时的基础设施不完善,现在才逐渐有了模块标准,有了丰富的组件。

更多的是存疑,并且对前端表示深深的担忧:

@披荆走天涯:不是,我就想问下,这有啥用?生成的代码如果我要写交互的话,还得再看半天。

@fancy-pants:感觉都是听上去酷炫,用上去很烂的东西。

@阔诺潇二狗哒:前端更轻松了还是失业警告?

@Andself:前端互相抢饭碗可真的激烈啊!

@Ahkari卡狸:前端干着干着,就把自己干没了。

微博博主@Easy 对于前端“革命”的这一命题就表示,了解了语法和结构、主要函数,再补一下 Swoole 和框架等,基本上就是一个现代 PHP 程序员了。

640?wx_fmt=png

事实上,此前也曾出现过大量的代码自动生成器,但似乎并没有掀起太大的波澜。那么对于程序员来说,所谓的代码生成、自动编程真的有实际价值吗?


自动编程有实际价值吗?


有很多广为人知的自动代码生成工具都曾引起过公众的关注,比如微软的 Robust Fill、上面提到的 pix2code、DreamViewer 等等,此前微软发布的 Visual Studio 还支持智能辅助编程。但是喧嚣之下,更多的却是跟风模仿,鲜少有人会真正在编程中应用,其生产价值也无从考究。

对于这一点,王垠在个人博客《我为什么不在乎人工智能》中就老早发表过自己的看法:

我现在可以很简单的告诉你,(自动编程系统)是不可能实现的。

要机器做事,人必须至少告诉机器自己“想要什么”,然而表达这个“想要什么”的难度,其实跟编程几乎是一样的。

好的编程工具可以让程序员工作更加舒心和高效,但任何试图取代程序员工作、节省编程劳力开销、克扣程序员待遇、试图把他们变成“可替换原件”的做法最终都会倒戈,使得雇主收到适得其反的后果。

所以别妄想自动编程了。

——这样看来,大家“追崇”的自动编程似乎颇有乌托邦之感。

但也有很多人表示,“瑕不掩瑜,其实它们至少是一个可用的工具”、虽然效果有点堪忧,但是可以假装代码实际上是雇了一个月薪 3k 的实习生写的,心里就很能接受了”......而且随着人工智能技术的深度应用,总体来看也是持续优化的趋势,不是吗?

再看回来 imgcook 这一工具,作为“淘宝前端团队内部近 2 年的打磨才推出的全新产品”,在代码生成的合理性、可维护性上也是下了一番功夫,对于二次开发显得比较友好。此外,imgcook 还会“对还原后的 UI 在代码层面上生成使用比较广泛的 Flexbox 布局”、“在一些自定义的命名上(比如样式命名)根据开发者的习惯生成更加人性化的命名”等人性化、智能化设计。

所以,这个不算鸡肋的工具,或许也是值得一试的。

参考链接:

  • https://www.xttblog.com/?p=3684

  • https://imgcook.taobao.org/

  • https://www.oschina.net/news/84215/talk-about-ai

(*本文为 AI科技大本营转载文章,转载请联系原作者)


公开课预告

全双工语音



本期课程中,微软小冰全球首席架构师及研发总监周力博士将介绍微软小冰在全双工语音对话方面的最新成果,及其在智能硬件上的应用和未来将面临的更多技术产品挑战。


640?wx_fmt=jpeg


推荐阅读

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/86486235

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签