近日,Reddit 上有一篇帖子:您对无代码数据科学有何见解?发帖者称,本身曾花了不少时间反对“无代码”,可是最近他在考虑:“若是不能击败它们(无代码),请加入它们”。不少开发者也在帖子下说出了本身的见解,并给出理由。程序员
最近 GPT-3 的出现,展现了其强大的、对包括代码在内的语言的处理能力;MIT 联合英特尔等推出代码类似性平台等事件,也再次将“无代码”话题推到开发者面前。今天借 Reddit 这篇帖子,整理支持和反对的主要观点,借以呈现开发界对无代码开发的见解。算法
什么是无代码数据科学
无代码数据科学,直白来讲,就是不用经过编写代码来完成一些数据科学工做。编程
数据科学的定义并无达成固定共识,比较流行的一个说法是它是跨学科领域的概念,通常包括机器学习、数据挖掘、大数据相关理论和应用。具体可能同时涉及计算机科学、数学、统计、信息可视化、图形设计、以及业务层面的操做。如机器学习领域开发者,会为数据科学研究数据分析的方法,并建立算法。机器学习
所以,以往作数据科学工做须要比较高的进入门槛。贝尔实验室在上世纪80年代左右,专门开发了一门语言来作这些开发——R 语言就是为作数据探索,统计分析、计算、做图等专门开发的。模块化
就像发帖者最开始说的:(数据科学)分析人员的主要语言是 R 和 Python。但许多“无代码”工具,已经扩展到了“数据科学”的研究领域。工具
能作到无代码数据科学分析的工具备不少,包括机器学习工具,如 BigML、scikit-learn;数据分析工具,如 Alteryx 和 KNIME;数据可视化工具 Power BI 和 Tableau 等等。oop
机器学习类工具主要经过内置的模型,算法,参数分析数据。BigML 支持原始数据加载,内部也有免费的数据集和模型可以使用。scikit-learn 是由数据科学家 David Cournapeau 在2007 年发起的一个开源项目,用语数据挖掘和数据分析,基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预处理。这类工具相较还有必定的使用难度。性能
一些专门的数据分析工具和平台,更关注使用者能够一站解决业务问题。德国康斯坦茨大学2004年开发开源分析工具 KNIME 时,目标是建立一个模块化,高度可扩展和开放的数据处理平台,从而轻松集成不一样的数据加载,处理,转换,分析和可视化探索模块,而没必要关注任何特定的应用领域。KNIME 容许用户直观地建立数据流(或管道),有选择地执行一些或全部分析步骤,而后检查结果,模型和交互式视图。2011年注册成立的 Alteryx 公司,其数据分析平台 Alteryx 的使用更简单——拖拽式操做。Alteryx 称可让每一个人经过其自动化工做完成数据科学的工做。学习
此外还有主要解决可视化的“无代码”工具。 Tableau 一样支持拖拽式操做,即把数据拖放到数字“画布”上,就能建立各类图表,快速分析、可视化数据信息。开发工具
上述虽对这些工做作了分类,但实际上它们的功能很大部分是重合的,只是各有侧重。好比 BigML 也有可视化工具,Alteryx 内部也包含数据分析的模型算法,一些可视化工具也支持数据抓取等等。这些软件为想要跳过写代码,直接分析数据的公司和人员提供了多个选择。与之相似的新工具、新平台也在不断出现。
专业分析者早前很看好无代码数据科学。Gartner 2017年预测,2020年前,公民数据学者(citizen data scientist)所完成的高级分析将在数量上和价值上超越数据科学家。很不幸,这个结果彷佛还没到来。可是,无代码开发工具也在不断发展,它已经使得许多开发者改变了本身的态度,好比开头提到的 Reddit 发帖者。
反对的声音
几乎全部的开发者都有理由反对无代码开发。“做为具备良好计算机科学背景的工程师,我一直将这些工具视为行业中的不良影响者”,这是发帖者反对的出发点之一。靠写代码为生的工程师们,为什么要去接受无代码工具?
更况且对一些开发者来讲,无代码工具还没有成熟,并不十分好用——这也是它最为诟病的一点。好比没法适当扩展、没法维护、若是想要自定义一些功能,仍然须要写代码或是其余额外操纵等等。好比说 scikit-learn 不支持深度学习和强化学习;有些商业化分析软件须要屡次购买。
另外一个技术担心是,机器学习的模型是否存在偏见与不足,进而影响结果。这也是人工智能领域自己的问题,即便用人工建立的训练的数据的 AI 系统,老是会受到人类错误假设的限制,最好的证据的是各类人脸识别、AI 分类分析系统带有歧视性。为了使 AI 达到真正的超人类性能,必须容许 AI 进行本身的实验,并将其结论置于高于人类结论之上。包括 GPT 系统,是基于人类眼中,经过数学定义认为好的文章,进行优化、猜想等活动。
那么这些工具可能会成为:容许人们作错事的工具。
只有一小部分数据科学家使用无代码工具进行操做,而这些数据科学家每每对他们正在构建和维护的内容没有深入了解。
更现实的考虑是,“无代码”工具会限制招聘池,形成公司与技术人员的绑定。
我喜欢我目前的工做,可是最近咱们将被迫在项目开发中使用 Alteryx,这可能会成为我开始找新工做的主要缘由之一。
许多开发者认为,当然如一些无代码或是低代码的自动化工具更容易上手操做,可是这也会致使对编程、使用更高级的工具,作更复杂开发的熟练程度下降,换工做的选择就会更小。就比如开手动挡的人能够开自动挡,但最初就开自动挡想换去开手动挡就须要时间。
前文还提到,数据科学的概念并无固定。所以有人提出,无代码解决方案的“分析师”角色,并不能替代数据科学家。分析是将问题拆解成更小的部分,以帮助快速了解总体或系统的某些发展方向,有时仅仅是专家对文档的审查和对事实的阐述。分析师可能完成前80%的工做。可是实际公司须要的数据科学家,要比分析师更成熟,他们能够提供更多的参考系和更新颖的东西,完成某项任务最后的20%。这个理由,就比如人们对许多机器学习的吐槽:产品(经理)都不知道产品的需求在哪,机器能知道?
支持的理由
首先,随着时间的流逝,无代码工具正愈来愈强大。虽然有人吐槽这些工具的性能,但事实是不少公司和我的已经用这些工具作了不少:
2008年,在 Hadoop 中使用 MapReduce 计算中位数很困难,须要专业程序员。今天,即便是 ML 也能够经过拖放操做完成。
出节省开支的目的,公司可能也会选择使用自动化工具来完成一些数据工做,毕竟一位精通 R/Paython 的工程师薪水不低:
我能够教别人使用 PowerBI,并在45分钟的课程结束后产生商业价值。通过一周的培训,他们将在提供价值(包括须要 ML 的项目)方面击败初级数据科学家。无代码开发工具能够减轻数据分析师的工做,快速提取价值,即使无代码开发不是最便于维护的方案。但理想状况下,它使得数据科学“民主化”,牺牲了一些可维护性以实现价值。教某人使用 PowerBI 比教某人有效使用 R 或 Python 要容易。
就像 Gartner 预测中所说的,公民数据学者能够经过这些工具,完成数据科学家的一些工做。尤为是在这些工具不断完善的状况下。
另外,选择和“无代码”工具和解,有时也是必须作的选择,好比在公司领导肯定在公司推广某个“无代码”工具的时候。
和解前的问题
支持的理由虽然看上去简单,但随着使用者愈来愈多,“无代码”成为的许多人绕不过去的一个选择。发帖者在考虑与之和解,但在完全和解前他也提出了问题:
- 你在工做中使用无代码开发工具吗?你喜欢这些工具吗?这与 R/Python 相比有什么好处?无代码工具普及是件好事仍是坏事?
- 若是你选择站在无代码开发工具的一边,你如何看待其余正大力推进基于代码的数据科学的工程师和科学家?
须要考虑的问题能够总结为两个大方向:一个是技术自己,另外一个是人际关系处理。后者包括如何与领导层沟通,如何在公司创建良好的系统,抗拒者与拥趸者如何“和平共处”之类的问题。
有开发者的出发点可能仅仅是出于对后者的考虑,这也致使有调侃说无代码开发是“面向领导编程”。
上述大可能是关于“无代码数据科学”的讨论,不过讨论背后的观点、价值观一样也能够放到更普遍的“无代码”应用中去讨论。
那么,在“无代码”工具愈来愈强的当下,你是选择加入完善它,仍是反对它们?