BT

你的观点很重要! 快来参与InfoQ调研吧!

我不是来约架,我只是请他们说几句实话——QCon上海2015编程语言专题前瞻

| 作者 项征 关注 0 他的粉丝 发布于 2015年8月27日. 估计阅读时间: 9 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

“语言设计在此刻复兴,而设计新语言的最大理由是,现有的主流语言不能解决人们想要解决的问题。”——Go语言共同设计师罗布·派克

近两年,新语言Golang和Swift红极一时,Scala、Colujre等语言也在稳步发展,业内期待很久的 Rust 终于发布了 1.0 。而长久以来举足轻重的主流开发语言 PHP 和 C++,也都在这个时期发布了新的版本。这些新语言或新的版本,与上一代的流行技术相比,普遍提高了在并发模型、类型确定性、类型推导、类型安全、工程支持等方面的工程效率。

这些进步和发展,并非凭空而来。它们的发展和变化,有迹可循。为此,QCon上海2015设置了《新语言与新发展》专题,希望邀请业界专家分享一些编程语言方面的经验,供大家参考。本专题非常荣幸邀请到了云游道CTO刘鑫担任出品人。

刘鑫,互联网旅游行业的创业者。是 Python Tutorial 多个版本的译者。两届 PostgreSQL 中国用户大会的演讲嘉宾。目前定居珠海,是云游道(http://tratao.com)CTO。目前专注于建设智能的在线旅游平台。团队在使用且不限于 PostgreSQL 、 Golang、Swift、Rust 等工具,并且开源了包括 parsec for golang/swift/rust 等项目。积极地学习和运用新技术,使得我们拥有更好的生产效率,可以为用户提供更优质的服务。

下面我们就来看看本主题都设置了哪些话题,并请刘鑫分享一下他对几种新语言的看法。

1.《为什么我们仍然需要Lisp(Clojure)》

演讲嘉宾:何婧誉Loretta) Swiftkey软件/自然语言工程师 

Lisp已然到了年近半百的年纪,与如今世界上的大多主流语言相比是近乎爷爷辈的。在这个技术越发日新月异的年代,为什么我们中的一些人对Lisp这门古老的艺术仍旧情有独钟?

当今大数据是技术领域中最为时髦的名词之一,我们中越来越多的技术人员开始接触数据(流)处理,进而发现程序中副作用的麻烦之处。而这也催生了很多新兴的函数语言,这其中就包括Lisp家族的最新成员之一Clojure。

本次演讲将包括:

  • 为什么用Lisp?
  • 为什么用JVM?
  • Clojure的三简主义--简洁,简便,简单
  • core.async - clojure式并行
  • 什么是transducers?
  • 现实世界中的应用

出品人有话说:

Java本身是最流行的语言之一,其影响力毋庸置疑。如果仅仅是关于Java或JVM的介绍,那么有关讨论已经太多太多了。所以我这次组织语言话题的时候,希望能有一些关于Java平台上的“非主流”语言,或者JVM/Java语言本身的新特性的讲座。Clojure可以说是在语法上跟Java非常互补的一门编程语言,又因为都运行在Java平台上,有非常好的融合性。在我看来这是一个非常值得推荐给Java工程师的好东西。

Loretta老师虽然年轻,但是她用Clojure做过一些非常厉害的工作,包括高盛这样的金融机构的在线交易系统。她现在就职于Swiftkey这样的在Android领域非常有特色的企业。想了解更多Clojure就来QCon和Lo姐讨论吧。

2.《Haskell中的函数与类型系统》

演讲嘉宾:张淞 《Haskell函数式编程入门》作者

Haskell中的主要概念其实都是围绕类型展开的,类型系统主要是为我们管理程序的抽象与保证程序的正确性而引入的。为了更好的复用代码,于是有了多态类型。某些类型有着共同的属性于是Haskell引入了类型类来管理它们。有一些类型是需要接受一个或者多个类型参数的,为了保证这一环节不会出错于是Haskell又引入了kind这一概念,同样出于复用代码的原因,Haskell又引入了kind多态。总之,抽象在一步一步加深,每加深一步就总结出更多公共的代码,为我们自动完成更多的事情,带来的问题就是会让人更加难以理解。所以了解Haskell的类型系统对于我们理解代码的复用、抽象非常有帮助。所以本次的演讲主要包括:

  • Haskell中的值
  • Haskell中的类型
  • Haskell中的类型类
  • Haskell中的类型的kind
  • 以上特性之应用

Haskell不仅仅是一门学术型的语言,而是一门非常适用于编写应用软件的工程型语言,其实相当多的思想是可以迁移到非函数式语言上的。

出品人有话说:

这里我主要想谈谈Haskell在三个方面对生产力的提升帮助。

首先是对人的训练,这个是我亲身的体会。Haskell在学术性的语言中属于整个体系比较严格,比较理想化的技术,在学习Haskell的过程中,我从一个与既往非常不同的角度去审视编程的方法和解决问题的方式,找到了很多简化问题,抽象出通用工具的路子。

第二个是Haskell中一些强有力的工具,移植到其他语言后,也可以发挥非常大的作用。例如我创业以来,将Haskell的parsec库移植到了我们团队使用的各种编程语言中,当我们处理一些文本和消息序列的解析功能时,可能用正则表达式已经显得比较繁琐,但是用传统的编译器构建工具来实现一个解释器,对于我们小团队是比较难承受的挑战,用parsec就非常合适。

再例如Haskell本身,在一些高端的软件工程领域,就是非常高的工具,最近Facebook就开始用Haskell构建他们新一代的反垃圾邮件系统,还有华尔街有金融企业用Haskell编写交易系统。在这些强调工程可靠性,强调对信息处理规则的构建的场合,就显得雇佣一些高价的Haskell专家也很值得了。

3.《C++11核心特性简析》

演讲嘉宾:林喆 芒果TV系统工程师

作为系统层程序设计中重要语言之一的C++在新千年里的第二个十年里终于发布了C++11标准,其中许多对旧标准的改革和全新的特性也全面被各路编译器实现,等待工程师们来使用,本次演讲将围绕以下内容来重点介绍一些特性和库:

  • 右值引用和转移语义
  • lambda与std::function
  • 泛型函数的返回值推导
  • 多线程

选取以上这些内容的依据是,它们全部在redis-cerberus项目中实际用到,避免空谈新特性,使得演讲变成枯燥的授课。项目当时使用C++11是因为那是C++11是比较新但是足够成熟,C++14尚未有编译器实现。

出品人有话说:

C++这个语言本身非常重要,在产业界的影响力已经不需要我去宣传了,我是觉得在一个介绍编程语言的专题里,这样重要的一种技术不应该缺席。

我自己也曾经是专职的C++程序员,C++在产业界的应用中有一个问题是,很多企业不敢更新版本,十年十几年用一个“稳定版”,导致一些本来可以使用新版语言和编译器解决问题、提升生产力的机会就错过了。所以我希望有成功经验的专家出来介绍一下新特性的好处。

4.《探索Python 3.5中async/await特性的实现》

演讲嘉宾:赖勇浩 广州齐昌网络科技有限公司总经理

在与陈儒先生合作把他广获赞誉的佳作《Python源码剖析》迁移到Python 3的过程中,Python 3.5发布了它的第一个beta版本,而async/await搭上最后的这班车,也让3.5版本备显豪华。这个特性使得Python具备语法级别的协程支持,也让它有了更容易理解和交流的异步编程模型。那么,这个特性在虚拟机里是如何实现的呢?是否用了什么很特别的机制?跟之前的yield/yield from有何异同?我觉得有必要在书中加入这一章节,更期望在该书新版上市之前跟大家分享。

出品人有话说:

Python传统上是一个比较“简单”的语言,这次Python3.5引入了async/await关键字,可以说是史无前例的一步。在过去,异步通常是要通过第三方库来实现。内置异步模型,并且在语法上提供支持,这在以前是从来没有出现过的。在我看来,这表现除了社区对技术发展的关注,是一种进步。

另外,七牛云存储CEO许式伟还将分享Go语言的新特性与最佳实践,微软亚洲研究院的施凡(@装配脑袋)也将带来精彩分享。更多精彩,尽在现场。


感谢臧秀涛对本文的审校。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT