目录

5种最有前途的编程语言

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( )的形式出现,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( ),它是一个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 应用程序的开发。

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