【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

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

  • 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 )关注我们,并与我们的编辑和其他读者朋友交流。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2014-01-26 08:147824

评论

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

NFTScan 与 Decert 达成合作伙伴,双方在 NFT 数据方面展开合作

NFT Research

Web3 Daily NFT\

华为云Astro低代码三侠「踢馆」 学员:也带带我! ——低代码设计师混入极客挑战赛

华为云PaaS服务小智

云计算 低代码 华为云 华为开发者大会2023

Sentieon | 每周文献-Population Sequencing-第一期

INSVAST

基因数据分析 生信服务 群体基因

苹果iOS App Store上架操作流程详解:从开发者账号到应用发布

雪奈椰子

2023算网融合产业峰会,网心科技边缘计算+AI创新实践获权威认可

网心科技

边缘计算 边缘云 AIGC

解读 6 月 NFT 行业:市场停滞,Azuki 崩跌

Footprint Analytics

区块链游戏 NFT NFT链游

入门开发教程之网站品质教程

雪奈椰子

版本更新|OpenTiny Vue 发布了 v3.9.0 🎉。

OpenTiny社区

开源 前端 UI组件库

共筑开源新长城 龙蜥社区走进开放原子校源行-清华大学站

OpenAnolis小助手

操作系统 容器云 开放原子开源基金会 龙蜥社区 清华大学

平衡业务合作,推动企业全面预算管理取得成功

智达方通

数据分析 全面预算管理 业务合作

CQ 社区版 2.2.0 发布 | 配置要求降为 4 核 16G!!!

BinTools图尔兹

数据库 数据安全 数据库管控工具 数据库管控

入门开发教程之Web 品质 - 标准

雪奈椰子

财务共享,驱动企业持续升级的动力引擎

用友BIP

财务共享

大型企业全面预算管理数智化转型路径

用友BIP

全面预算

免费试用商业智能工具,帮助您轻松选择BI工具

夜雨微澜

软件测试/测试开发丨Selenium如何复用已打开浏览器

测试人

Python 程序员 浏览器 软件测试 selenium

一文看懂SBD(一种基于存储的扩展防护服务)

统信软件

储存

英特尔Lisa Spelman浅谈未来计算:驱动AI创新 释放至强力量

E科讯

用友BIP时间轴——回溯历史 预置未来

用友BIP

人力资源

面试上海某小厂Java岗,全程一小时问的全是细节

程序员小毕

数据库 程序员 后端 java面试 八股文

龙蜥白皮书精选:面向 HTTP 3.0 时代的高性能网络协议栈

OpenAnolis小助手

开源 HTTP 标准化 QUIC 龙蜥白皮书

亮相亚太 CDN 峰会,火山引擎 CDN 与加速助力数字化业务加速发展

火山引擎边缘云

CDN 火山引擎 全球加速 火山引擎边缘云

小红书Java后端一面,被问麻了

程序员小毕

程序员 高并发 架构师 java面试 计算机底层

AP controller-centralized management-support-IPQ6010-IPQ5018-IPQ4019 motherboard

wifi6-yiyi

wifi6

Java面试为什么会越来越难?

程序员小毕

程序员 后端 架构师 java面试 八股文

用友:数智技术核心驱动  服务企业数智化与商业创新

用友BIP

国产替代

Flask快速开发Web应用:入门到精通必备知识

互联网工科生

Python flask

10个不容错过的VSCode插件

互联网工科生

Visual Studio Code

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