写点什么

大数据:编程语言真的重要吗?

  • 2014-01-26
  • 本文字数:1336 字

    阅读完需:约 4 分钟

在大数据领域内,每一毫秒的性能损失都影响巨大。然而,像 Python 这样通常被认为性能不是太好的编程语言,在过去一年中却变得越来越流行了。大数据社区最近出现的一些文章和讨论,又一次点燃了用于数据科学以及大数据领域内的编程语言选择之争。

AdRoll 的首席工程师 Ville Tuulos 认为编程语言本身的性能其实并不重要。Ville 于 2013 年 9 月在旧金山将自己的调查发现发布到了一个 meetup 组中,向我们展示了 AdRoll 中使用的基于 Python 构建的后端架构,以及它们是如何在性能上超过那些业界中的巨头(例如 Amazon 的 Redshift )的。他们获得成功的关键是,整个系统是基于他们自己非常特殊的用例而构建的,因此可以针对那种用例进行优化。正如 Ville 所说:

不管通用解决方案是采用何种编程语言实现的,你都可以使用一种高级编程语言来快速地实现出一个性能比通用方案更好的,应用于特定领域的解决方案。

但这并不意味着编程语言一点都不重要。最近有不少关于哪种语言最适合数据科学和大数据领域的争论,而这一殊荣最有力的竞争者就是 Python 和 R 语言。一些人甚至把它说成是数据科学领域内的一场战争。在LinkedIn 上面也有针对这一话题的讨论,看上去大家的普遍共识是,R 语言是一种学术性语言,“对数据科学家而言,R 语言的优势在于它所提供的大量的包以及其多样性”。

但是对于海量数据处理这一块,总体说来Python 受到更多程序员的青睐,正如来自 Dish Network 的数据科学家 Tom Rampley 所说:

我经常使用 R 语言的各种包中所提供的统计功能。我还使用它在小规模的数据集上面执行各种数据操作。但是对于文本解析、大数据集上的数据操作以及编写自己的算法这些任务来说,我更加喜欢使用 Python 并结合使用它的 Numpy Scipy Pandas 这些包。

在最近几个月里,Python 似乎在各个方面都要更胜一筹,正如 Karissa McKelvey 在 2013 年 10 月所写的那样,“我的数据太大了,无法装载到 R 语言中”,还有 Matt Asay 也声称,“在数据科学的博士们中间,R 语言仍然很受欢迎,但是随着数据逐渐成为主流,Python 正在接替 R 语言的地位”。

语言自身的性能常常是我们在开发复杂架构时决定到底使用哪种语言的一个关键因素,而且这一因素常常被过度夸大。实际上真正重要的是我们如何使用一种语言,正如 Linus Torvalds 所说,“低水平的程序员总在关心代码,而高水平的程序员则关注数据结构及其关系。”

Cloudera 公司最近的一个开源项目 Impala 为例,它的目标是替代 Hive ,使查询速度提高一个数量级。他们选择使用了 C++,而其他所有的 Hadoop 架构都是基于 Java 的,这种开发语言上的转变经常被冠以某些与性能相关的原因。但实际上这里的性能提升不是简单地来自从 Java 到 C++ 的转换。Impala 甚至没有使用 MapReduce ,而是直接在内存中缓存数据,所以很显然,这里的性能改善主要源于它采用了带有不同数据结构和限制的一个完全不同的范型。这里由 Java 到 C++ 的转换只是一种锦上添花的工作,并不会对性能的改善起到雪中送炭的作用。

查看英文原文: Big Data: Do Languages Really Matter?


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2014-01-26 08:147839

评论

发布
暂无评论
发现更多内容

AIGC加速迭代,云栖大会视频云「媒体服务」专场与你共话云智深度融合

阿里云视频云

云计算 视频云 云栖大会

Mac键盘热键工具 Keyboard Maestro最新激活版

mac大玩家j

Mac软件 键盘管理工具

携程商旅发布“全球影响力计划”

携程商旅

火山引擎DataLeap背后的支持者 - 工作流编排调度系统FlowX

字节跳动数据平台

大数据 数据中台 数据安全 数据研发 企业号10月PK榜

KaiwuDB 荣获“2023 IDC 中国可持续发展先锋案例”

KaiwuDB

BDD模式的自动化测试初体验

QE_LAB

自动化测试 BDD 测试自动化工具

敏捷专题:下一代的飞机交付

DevOps和数字孪生

数字孪生 航空航天 仿真模拟

新一代云原生可观测平台之CCE服务监控篇

华为云原生团队

云计算 容器 微服务 云原生

Mac版本的Java开发工具 IntelliJ IDEA 2023+注册码

展初云

Java Mac IntelliJ IDEA

DataGrip for Mac(数据库管理工具) 2023.2.3+注册码

展初云

Mac datagrip 数据库管理

Tampermonkey for Mac(油猴Safari浏览器插件)

展初云

Mac 油猴 Tampermonkey

深度学习预训练模型的突破与发展

百度开发者中心

模型训练 大模型 深度学习‘’ LLM

厦门理工计算机与信息工程学院获“火焰杯”软件测试赛全国奖项

测试人

软件测试

个头小却很能“打”!合合信息扫描全能王推出A4便携式打印机

合合技术团队

识别 文字 图像 合合信息 扫描全能王

数字孪生:让ECU在数字环境中“栩栩如生”

DevOps和数字孪生

数字孪生 虚拟ECU 建模仿真

专业强大的CAD绘图软件 CADintosh X 最新激活版

胖墩儿不胖y

Mac软件 CAD绘图 cad工具

OmniGraffle Pro for Mac 图表绘制工具 附 注册机

彩云

OmniGraffle Pro

VMware Workstation 17安装教程之轻松构建虚拟机

小齐写代码

大模型与Prompt模板全面升级

百度开发者中心

深度学习 大模型 LLM

硬件、数据、模型优化与分布式训练的实践

百度开发者中心

大模型 LLM LLMOps

从图像生成到分类的深度学习策略

百度开发者中心

人工智能 深度学习 大模型 图像生成

开箱即用!教你如何正确使用华为云CodeArts Defect!

华为云PaaS服务小智

云计算 软件开发 华为云 缺陷管理

对话在行人|中裕能源:基于多业态特点,融合创新数智化应用场景

用友BIP

2023全球商业创新大会 对话在行人

LeetCode题解:剑指 Offer 39. 数组中出现次数超过一半的数字,摩尔投票,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

详解GuassDB数据库权限命令:GRANT和REVOKE

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

大数据:编程语言真的重要吗?_Java_Charles Menguy_InfoQ精选文章