写点什么

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

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

公众号推荐:

AGI 概念引发热议。那么 AGI 究竟是什么?技术架构来看又包括哪些?AI Agent 如何助力人工智能走向 AGI 时代?现阶段营销、金融、教育、零售、企服等行业场景下,AGI应用程度如何?有哪些典型应用案例了吗?以上问题的回答尽在《中国AGI市场发展研究报告 2024》,欢迎大家扫码关注「AI前线」公众号,回复「AGI」领取。

2014-01-26 08:147870

评论

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

为什么说代码注释是程序员必备的技能?

小齐写代码

IDEA工具第一篇:细节使用-习惯设置 | 京东云技术团队

京东科技开发者

Mac windows IDEA 企业号10月PK榜

Tongsuo 8.4.0-pre3 发布!

铜锁开源密码库

开源 算法 安全 同态加密 密码学

从内核世界透视 mmap 内存映射的本质(源码实现篇)

bin的技术小屋

Linux 操作系统 内存管理 Linux Kenel mmap内存映射

简洁的Markdown文本编辑器 Typora中文版

mac大玩家j

文本编辑器 Mac软件 markdown编辑

秒懂算法 | 字符串匹配算法实例分析之潜伏者、最低三元字符串

TiAmo

算法 字符串匹配

直播预约丨《实时湖仓实践五讲》第二讲:实时湖仓功能架构设计与落地实战

袋鼠云数栈

大数据 数据中台 湖仓一体 实时湖仓 直播课程

QCA9880 (WiFi 5) and QCN9074/QCN9024 (WiFi 6) Move towards the future of industrial wireless networking

wifi6-yiyi

QCA9880 QCN9024 WiFi 5 WiFi 6

代码理解技术应用实践介绍

百度Geek说

数据库 百度 企业号10月PK榜 代码理解

Databend 开源周报第 114 期

Databend

建立可观测性宏观认知-从概念到过去10年的实践发展

刘绍

运维 软件工程 可观测性 基础架构

秒验:可以自定义UI的一键登录服务

MobTech袤博科技

大数据 智能推送

可以替代Mac访达的文件管理工具Path Finder

展初云

Mac软件 文件管理工具

愤怒的小鸟Angry Birds Reloaded mac(休闲益智类游戏)v2.4中文激活版

mac

windows 游戏 苹果mac 愤怒的小鸟 Angry Birds

鞍钢集团财务共享平台部长高歌:与用友共建财务共享领先实践

用友BIP

2023全球商业创新大会

开放原子开源基金会九月新增捐赠人

开放原子开源基金会

模型UV纹理设置工具

3D建模设计

材质 纹理 贴图

GLTF纹理贴图工具让模型更逼真

3D建模设计

材质 纹理 贴图

什么是 API 以及电子商务网站为何使用它们

Noah

电商 数据api API 安全

聊聊技术之外的面试问题-下

老张

面试 职场成长

Java 21新特性-虚拟线程

越长大越悲伤

Java

Java基础面试题【六】线程(2)

派大星

Java 面试题

聚合电商API接口平台:让数据成为生产力!

Noah

数据api API 安全 电商api接口

我在前端写Java SpringBoot项目 | 京东云技术团队

京东科技开发者

MySQL Node Nest.js 企业号10月PK榜 Sequelize

国内首档大模型技术直播专栏重磅推出!

飞桨PaddlePaddle

开发者说 文心大模型

全球采购,打造企业韧性供应链

用友BIP

全球采购

视频回放编辑软件Mitti最新免激活版

胖墩儿不胖y

Mac软件 音频编辑 音频处理工具

简单好用的Mac清理工具 BuhoCleaner

展初云

Mac软件 清理软件

Apache Kyuubi & Celeborn,助力 Spark 拥抱云原生

阿里云大数据AI技术

云原生

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