当前位置:首页 > 短网址资讯 > 正文内容

是否有一种完美语言来终结“编程语言之争”?

www.ft12.com7年前 (2017-08-28)短网址资讯2517
策划|Tina
编辑|InfoQ 编辑部
针对目前流行的语言,InfoQ 组织的“编程语言”专题中,给您精选了如下文章!

大家都可能听过“PHP 是最好的语言”段子。

编程语言很多,既然存在,就有每个存在的理由。其实没必要评论哪个语言好,哪个语言不好。因为每个编程语言本身都不难,只要学会了一种语言,其他的都是相通的。难的,好坏之分,是理解,记忆,熟悉,和流畅的使用那些每个语言提供的基础库和扩展库,也就是 LIBs,或是 APIs,或是 SDK,或是 Frameworks。

编程语言本身,就最简单的集合来说,就是一堆保留的关键词和一堆的语法,这个大家稍微看看就都会明白,还有其设计思想。就和学一门外语一样,一些词汇加上一些词汇能组合的语法。这些通常包括的编程语言特性有:语句组成,变量定义,算术运算,循环语句,函数定义和调用,面向对象,指针操作,垃圾回收,输入输出等等。基础的东西,大家如果学过或是使用过一种语言,其他的新的语言,花个一两分钟就能写出一个 hello world 的入门程序,花个一两个小时就能基本理解。

那么,好坏之分,难的部分,实际上是那些基础库和各种扩展库。这些库,必须在实践中一步一步熟悉和掌握。如果不经常使用,还特别容易忘记,尽管现代的编程环境有各种智能辅助。会不会,熟不熟一门语言,很大程度上是对他们的持续使用和理解。这也是为什么,没有多个项目,或是几年的实践,很难说是一个语言的高手。

比如同样对于网络的操作,有的语言的库包装的简单高级易用全面,有的语言就基础原始。那么对于那些有高级包装库的语言,大家就会觉得好,语言好用,开发效率高,想要什么都有,socket、tcp/ip、http、async/sync、select、event,甚至是 sever、client、crawler 等等。而对那些比较底层的包装的语言,大家就学觉得开发效率低,难用,比如只有 select 和 socket。是不是大概如此?

学习完了编程语言基础,大家一般要花很多的时间去了解和学习基础库和扩展库,这个才是真正的痛处和难点,学了不用还容易忘记,用到的时候还得想到有这个函数库。那么,如果有一套对各种语言都适用的 API 或是库函数定义,那么,大家学习和使用一门新的语言的效率会大幅度提高。这时,哪个语言最好,也就不再是什么问题了。

Protobuf、Thrift、COM、RPC 等等都已经在做这方面尝试,如果有一天,大家不管用什么编程语言,只要记住一套接口函数,那就太美好了。这时,估计没有人会再争论,PHP 是否是最好的语言了。

《架构师特刊:编程语言》序言,作者:陈利人

今日头条 Go 建千亿级微服务的实践

Go 是 Google 开发的一种并发型,具有垃圾回收功能的编程语言。Go 语言最初由 Robert Griesemer, Rob Pike 和 Ken Thompson 在 2007 年末共同设计和实现,2009 年 11 月份正式发布并开源,当它全部开源出来后,获得了当年的年度语言。

Go 语言相对其它语言具有几点天然的优势:

  1. 语法简单,上手快。

  2. 性能高,编译快,开发效率也不低。

  3. 原生支持并发,协程模型是非常优秀的服务端模型,同时也适合网络调用。

  4. 部署方便,编译包小,几乎无依赖。

Go 适合用来做:1. 服务器编程,通常以前是使用 C 或者 C++,用 Go 来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。2. 分布式系统,数据库代理器等。3. 网络编程。4. 内存数据库。5. 云平台。

Go 语言在中国发展也非常不错,今日头条当前后端服务超过 80% 的流量是跑在 Go 构建的服务上。微服务数量超过 100 个,高峰 QPS 超过 700 万,日处理请求量超过 3000 亿,是业内最大规模的 Go 应用。

在 2015 年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模型受到了巨大的挑战。

2015 年 6 月,今日头条开始使用 Go 语言重构后端的 Feed 流服务,2016 年 6 月,Feed 流后端服务几乎全部迁移到 Go。

点击下图即可阅读全文

Java 老矣,尚能饭否?

从 1995 年第一个版本发布到现在,Java 语言已经在跌宕起伏中走过了 22 年,最新的 Java 版本也已经迭代到 Java 9。当年 Java 语言的跨平台优势如今看来也只不过是家常小菜,Go、Rust 等语言横空出世,进一步拓宽了编程语言的边界。当年发明 Java 语言的 Sun 公司早已被 Oracle 收购,Oracle 现在也正处于水深火热的云计算浪潮当中,甚至连 Java 之父 James Gosling 也加入了当今世界最大的云计算公司 AWS。

Java 语言发展的这 20 年也正是全球互联网迅猛发展的 20 年,Java 语言同时也见证了电商浪潮、移动互联网浪潮、大数据浪潮、云计算浪潮,所以在现今各大互联网公司身上都能看到 Java 的身影。

TIOBE 的语言排行榜显示,自 2016 年初 Java 语言就出现了明显的下颓趋势,开发者社区也出现了一些唱衰 Java 语言的论调,编者心中也有些许疑问:Java 老矣,尚能『饭』否?基于这样的背景,InfoQ 邀请到了 Java 资深专家张建锋来为大家解读 Java 语言的发展现状以及未来。

点击下图即可阅读全文

Python 向来以慢著称,为啥 Instagram 却唯独钟爱它?

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)。1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,于是 Python 就诞生了。

尽管 Python 有时被粗略地分类为“脚本语言”(script language),但是它具有最丰富和强大的类库,以及良好的扩展性,于是在工业和科研上获得广泛的使用。

PyCon 是全世界最大的以 Python 编程语言 为主题的技术大会,大会由 Python 社区组织,每年举办一次。在 Python 2017 上,Instagram 的工程师们带来了一个有关 Python 在 Instagram 的主题演讲,同时还分享了 Instagram 如何将整个项目运行环境升级到 Python 3 的故事。

Instagram 的总注册用户达到 30 亿,月活用户超过 7 亿 (作为对比,微信最新披露的月活跃用户为 9.38 亿)。而令人吃惊的是,这么高的访问量背后,竟完全是由以速度慢著称的 Python + Django 支撑。Python 虽然运行很慢,不过,这对于 Instagram 不是问题,因为他们认为:『Instagram 的最大瓶颈在于开发效率,而不是代码的执行效率』。上面是 Instagram 这种业务上不依赖高强度运算的实例。对于计算强度高的业务,如果强调性能,可以使用 Cython(https://en.wikipedia.org/wiki/Cython)。或者如 Numpy\numba\NUFFT 之类专门优化过的计算库。

点击下图即可阅读全文

我们为什么要选择小众语言 Rust 来实现 TiKV?

Rust 是由 Mozilla 研究室主导开发的一门现代系统编程语言,自 2015 年 5 月发布 1.0 之后,一直以每 6 周一个小版本的开发进度稳定向前推进。语言设计上跟 C++ 一样强调零开销抽象和 RAII。拥有极小的运行时和高效的 C 绑定,使其运行效率与 C/C++ 一个级别,非常适合对性能要求较高的系统编程领域。

Rust 作为一种新锐的语言,具备其独有的优越性,虽然对于国内大多数开发者来说会显得比较陌生,但是并不妨碍 Rust 已经在世界范围内作为公认的 C/C++ 的有希望的挑战者。目前在全球落地的项目中比较知名的比如,Dropbox 的后端分布式存储系统(闭源),Firefox 的新的内核 Servo,操作系统 Redox,还包括 PingCAP 的分布式数据库 TiDB 的存储层 TiKV。TiKV 作为其中的一员,自上线以来非常引人注目,在 GitHub Rust 语言的全球排名项目中,基本上一直徘徊在前几名的状态。

点击下图即可阅读全文

最终,JavaScript 成为了一流语言

JavaScript 因为互联网而生,紧随着浏览器的出现而问世。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox、Safari、Opera)支持。

除了样式效果外,JavaScript 也被越来越多地应用于软件开发,例如后端任务、Web 服务器以及数据处理。JavaScript 成型很快,起初只关注一个很小的目标,后来市场的力量改造了这门语言。

对 JavaScript 有正面影响的统计数据:

  1. 在 Github 上 JavaScript 开源项目的数量最多(比 Java 多出 50%)。

  2. NodeJS 被评为 StackOverflow 2017 年开发者调查中最受欢迎的框架。

  3. JavaScript 是 Stack Overflow 中最流行的编程语言。

JavaScript 已经达到以下这些成为一流编程语言的标准:

  1. 被创业公司和大型私营公司用作后端服务框架(NodeJS)。

  2. 有一个蓬勃发展的开源社区(在 Github 上最活跃)。

  3. 作为一门专业技能,有大量的招聘需求要求掌握 JavaScript 知识(Indee.com)。


点击下图即可阅读全文


Clojure 太灵活,我们能如何驾驭它?

Clojure 是一套现代的 Lisp 语言的动态语言版,函数式多用途的语言。目前其开发进程是社区主导的,在作者 Rich Hickey 以一个“终身的仁慈独裁者”的身份监督下进行。Clojure 是 JVM 之上的语言,继承了 lisp 的优美,也保留了 Java 的实效。本文整理自 QCon 演讲,讲师是 Morgan Stanley VP 何婧誉 (Loretta),专业使用 Clojure 5 年多,主要用 Clojure 做数据流处理。

扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_445.html

分享给朋友:

相关文章

如何拿下80亿美金的阿拉伯市场?|物流篇

【FT12短网址资讯】拥有3.39亿人口、网络零售商场规模约为80亿美元的阿拉伯国家,尚处于跨境电商的“蓝海”商场,而物流这一关键环节则抬高了壁垒。据亿邦动力研究院Victor从阿拉伯国家调研的成果,出口电商接下来将对阿拉伯商场从发现商机、...

淘宝&支付宝:连续一段时间未登录将销号

淘宝&支付宝:连续一段时间未登录将销号

日前阿里巴巴对旗下淘宝、支付宝平台的服务协议进行了修改,对于用户的权利和义务进行了更细致的界定,同时规定在淘宝、支付宝平台的非活跃用户在一定时间之后将会进行销号处理。淘宝平台方面,此次新增加规定,用户不得以任何方式转让,否则淘宝平台有权追究...

余额宝为何把钱“拒之门外” ?

最近一段时刻,我国的金融商场可谓是风云突变,8月11日晚间,阿里巴巴旗下闻名的榜首基金企业天弘基金宣告,将个人买卖账户持有限额的上限由25万元调整为10万元,此音讯一出金融商场一片哗然。要知道早在3个月前,余额宝的限额仍是100万的高位,而...

曾估值30亿美金,如今公司只剩180人

也许很多人都不知道:凡客还活着。凡客这家公司从前多么张狂?最高估值达到过30亿美金!那时一天就会有500人入职。那是2010年,凡客具有超越1.3万名职工,曾具有30多条商品线,商品触及服装、家电、数码、百货等全领域,当年卖出了3000多万...

短网址服务的便利性介绍

引言这个短网址服务之前就听过,一直没有去了解。那它到底是什么呢?短网址就是最近才出现的这么一个工具PostCSS。短网址的目标是通过对长网址进行缩短,生成短链接,以便达到美观便利的作用。短网址夫妇说到底有两部分组成,一个是长网址的缩短,第二...

记一次go程序优化实践,获得了3倍性能的提升以及学会了on-cpu/off-cpu火焰图的使用

记一次go程序优化实践,获得了3倍性能的提升以及学会了on-cpu/off-cpu火焰图的使用

先把结论列在前面:1.Golang的性能可以做到非常好,但是一些native包的性能很可能会拖后腿,比如regexp和encoding/json。如果在性能要求较高的场合使用,要根据实际情况做相应优化。2.on-cpu/off-cpu火焰图...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。