5种最有前途的编程语言

在编程领域保持流行就像《爱丽丝镜中奇遇记》中的红棋王后所说,“如果保持在原地用尽了你所有的速度,那么到达另一处最起码需要两倍于此的速度”。

也许你精通Ruby on Rails,很好,但用于数据分析的R语言呢?

想在Google工作吗?那么忘掉Python,开始学习Go语言吧。

R

如果你知道R语言1994年就被发明了,或许会感到惊讶。R语言是由奥克兰大学的Ross Ihaka和Robert Gentleman在贝尔实验室的S语言基础上发明的,这种统计分析工具的春天发生于2014年,在Dice的薪酬调查报告中,一路飙升成为位居首位的高薪技术。也是在这一年,大数据成为主流业务,而R语言显然是处理大数据的最佳工具。

R语言最初深受数据科学家的青睐,后来也被证明在商业应用领域拥有巨大的潜力,例如美国银行的大型财务报告、Facebook用于分析其5亿用户的社会图谱。如今,许多公司例如微软,也正利用R语言作为服务器平台来进一步研究预测建模与机器学习。许多这样的公司正使用R取代SQL,R进行高级分析时具有更加资源密集型的优势。

R语言最近的崛起有以下三个原因:

  • R语言支持使用缺省值作为核心数据值,因而可以很容易地处理不完整的数据源,而不完整的数据源才是现实中最常见的。
  • 流形R语言的数据可视化软件包ggplot2将数据与绘图分离,实现图层叠加,现在以成为使用最广泛的R语言拓展包。
  • R语言的顶层语言外壳是可定制的,程序员利用这个功能搭建了集成开发环境比如RStudio,这使得R语言更易于学习,更广泛地应用于商业案例。

关键数据

在2016 Redmonk编程语言排行榜(基于GitHub和Stack Overflow中的语言热度)中,R语言排名13。

Go

这里所提的一些语言正经历一场新生,而Go语言(又名Golang),则是刚刚崭露头角。在给世人第一次见识这门实验性语言的3年后,Google于2012发布了开源正式的Go V1.0。Google着眼于未来,说道,“使用Go 1编写程序的人们可以自信的说,我的程序的许多年以后,仍然可以在不同的环境中毫无阻碍地编译运行。同样,写Go 1相关书籍的作者也可以自豪地宣称,书中的例子和解释不仅对今天的读者有用,对未来的读者同样有用。”

GO语言是为需要处理大量(可达百万级)并发请求的web服务定制的。流行的app搭建语言例如Python无法应付移动端这种强度的并行请求。也因此,Go是一种出色的HTTP处理工具。与C++相似,Go是编写可精确控制的web服务的理想语言,而无C++在面向对象部分的陡峭学习曲线。Go也毫不逊色于Algol。

大家对有Google背景的Go语言期望很高,而Go语言也不负众望,已被应用于多个大型项目,比如Docker(注:一个开源的应用容器引擎)的大型分布式项目。Go语言地位的上升正以Revel(http://www.gorevel.cn/)的形式出现,Revel是使用Go语言创建的一个高效率、全堆栈的web框架。Revel能够处理路由、缓存、参数分析、模板等等web参数。

Go强大的并发请求处理能力得益于goroutines和channels特性。goroutine是一个并发执行单元,而channel就是goroutine之间的通信端口。

下面的示例展示了channel是如何工作的:

func Run() {
  s := &http.Server()
  sig := make(chan os.Signal, 1)
  signal.Notify(sig, os.Interrupt)
  go func() {
    <-sig
    time.Sleep(30 * time.Second)
    os.Exit(0)
  }()
  s.ListenAndServe()
}

关键数据

在2016 Redmonk编程语言排行榜中,Go语言排名15.

Hack

Hack原是Facebook的内部项目,与2014年发布并开源。作为PHP的替代产品,Hack结合了动态语言开发周期短的优势和一些静态语言的核心特点,还借用了一些新语言的特性,比如注释类型和泛型,以便设置类和方法的参数,同时也添加了一些现代编程语言的常见功能。

Facebook称使用PHP处理一些常见任务会存在问题,例如偶尔用空对象调用一个方法可能产生一个错误,这个错误直到程序运行时才能被捕捉到。另一个问题是复杂的API,一个普通的方法名称都需要开发人员在文档中查找。这些可能仅仅有些恼人,除非你工作在一天可能发布两次代码的Facebook。幸运的是,Hack正取代Facebook的全部PHP代码。

尽管所有使用PHP的网站都可以使用Hack,Hack还没有被广泛接受。一个创造性使用Hack的例子是Vindinium(http://vindinium.org/),它是一个AI测试平台。

Hack的GitHub主页提供了许多有用的代码示例,例如安装管理依赖关系的Composer:

cd hack-example-site

sudo apt-get install curl

curl -sS https://getcomposer.org/installer | php

php composer.phar install

关键数据

维基百科即运行在由Hack支持的HipHop虚拟机上。

Rust

Mozilla的Rust已经发展多年,但第一个稳定版——Rust 1.0,直到2015年才发布,Mozilla基金会的David Herman详细地介绍了为什么Rust很有价值,“Rust拥有一些之前编程语言从未出现过的特质,安全程度也是C/C++难以企及的…系统编程的可怕在Rust出现后将消失无踪。”具体说来,他指的是C++的安全漏洞。

Rust通过大量编译时检查给予了程序员完全控制权。例如,利用C++的浏览器(导致Firefox不稳定的元凶)在Rust下就会产生许多编译时错误,因此可以及时发现存在的漏洞。Dropbox是迄今为止Rust最高调的支持者,它从亚马逊的web服务中抽身转向了Rust。

2016 Rust调查报告称有1/5的Rust使用者将其用于商业目的。

下面是一个Rust代码示例:

fn main() {
    for num in 1..101 { // Range notation!
        match (num%3, num%5) { // Pattern Matching FTW!
            (0, 0) => println!("fizzbuzz"),
            (0, _) => println!("fizz"),
            (_, 0) => println!("buzz"),
                 _ => println!("{}", num)

关键数据

在2016 Stack Overflow开发者调查中Rust荣获最受欢迎编程语言称号。

Swift

苹果公司现在又新增了了许多硬件平台,例如Apple Watch、Apple TV,Swift就是为它们而生的。2014年出现之初,Swift是用来代替Objective-C的,它使得创建iOS原生应用变得更加容易,也可创建运行于OSX, watchOS, tvOS和Linux的app。

去年末Swift正式开源,许多有JavaScript开发经验的程序员称Swift比Ruby和Python更易于开发app。Lyft使用Swift重写了它们的代码,并非因为之前的代码存在问题,而是因为Swift让他们更容易改善之前匆忙发布的代码。

几个最大的iOS应用程序开发商已经在使用Swift,包括:

  • Airbnb
  • CNN
  • Eventbrite
  • Imgur
  • KAYAK
  • LinkedIn
  • Medium
  • Pandora
  • Tumblr
  • The Weather Channel

下面是一段来自一个Swift app的代码示例:

import Foundation class TipCalculatorModel {
    var total: Double var taxPct: Double var subtotal: Double
    { 
      get
        { return total / (taxPct + 1)
        }
    } 
    init(total: Double, taxPct: Double)
    { 
      self.total = total self.taxPct = taxPct
    } 
    func calcTipWithTipPct(tipPct: Double) -> Double
    { 
      return subtotal * tipPct
    } 
      func returnPossibleTips() -> [Int: Double]
    { 
      let possibleTipsInferred = [0.15, 0.18, 0.20] var retval = [Int: Double]() for possibleTip in possibleTipsInferred
        { 
          let intPct = Int(possibleTip*100) retval[intPct] = calcTipWithTipPct(possibleTip)
        } 
      return retval
}

关键数据

2016 Redmonk编程语言排行榜中Swift跃升到第17位。

总结

如果想快速了解这些语言的用途,参看下面的提示:

  • R比SQL更适合进行统计分析与大数据处理。
  • Go比Python更适合开发需要处理大量并行请求的app。
  • Hack是PHP的进阶版,可缩短开发周期。
  • 相比C++,Rust是进行基础web开发的更容易、更安全的语言。
  • Swift将取代Objective-C用于原生iOS应用程序的开发。

转载请参看关于博客页面相关要求。

关于 “5种最有前途的编程语言” 的 1 个意见

发表评论

电子邮件地址不会被公开。