成为多语言程序员

  • Stéphane Wojewoda
  • 刘嘉洋

2017 年 5 月 9 日

话题:语言 & 开发

年轻的 IT 开发人员在学校的几年中会学习几门编程语言,时间久了不用,甚至会忘记几门(Fortran、汇编等等)。Martin Thompson 认为到他们上班的时候,学习的这些编程语言早已抛到脑后。

Zaiste 的理念与 Martin Thompson 的恰好相反。他每年都会尝试学习一门新的语言,并将其用于项目中。他认为这样做非常重要,因此他举办了有关IT 多语言主题的会议:PolyConf。PolyConf 大会将于 7 月 7 日至 7 月 9 日在 La Géode 举行。InfoQ 将以新闻、问答和文章的形式报道这次会议。

InfoQ FR 采访了 Zaiste,询问了他有关用不同语言编程的体验,不时换换编程语言的动机,不同语言模式之间的差别,他热爱的语言,以及今年 PolyConf 大会的主要内容。

InfoQ Fr能否请你首先介绍一下自己?

Zaiste:嗨,我是 Zaiste。我在巴黎经营一家软件公司,我热爱在世界各地举办技术活动,其中 PolyConf 大会是规模最大的一个。大约 12 年前,我在银行业开启了编程的职业生涯,那时候我使用 Struts 1 和 Spring 工具以及 Java 编程语言。在这之前,我的工作比较偏学术方面,并且主要使用 Python 语言。2005 年我开始使用 Ruby 和 Rails,两年之后,我召开了有关 Ruby 和 Python 的会议,叫 RuPy。现在我尤其喜欢用 JavaScript 语言写代码,特别是它的新版本,我自己也感到非常惊讶。我非常喜欢 Clojure,也非常高兴看到 OCaml 和 Reason 社区能有时间深入探究。

InfoQ Fr: 你召开了有关多语言编程的 PolyConf 大会。为什么你认为 IT 多语言如此重要呢?

Zaiste:多语言编程不是指同时或在一个项目中使用不同的编程语言。而是指一种软件开发艺术的全方位手段。程序员应该更加深入地、综合地了解编程概念,而不仅仅只是精通一门编程语言。他们应该不断寻求如何改进他们的实践,以及最终如何推广和提升。我一直将米开朗基罗和达芬奇视为楷模,他们不仅仅是发明家、建筑师、设计师,还是画家和雕塑家。热衷于软件工艺的人不应该仅仅了解一两门编程语言。

人才市场需要人们提供多年相关经验来证明他们的技术才能。了解 Angular 通常不适合做 React 相关工作,但是这两者都是 JavaScript 解决方案,可以处理相同的问题。公司喜欢争取在某一方面受过良好训练的员工,他们在这一方面的特别技能会受到企业的青睐。然而,我建议企业去挑选知识全面的工程师,即使他们的简历中不会有太多关键词和吹嘘之词,但是公司更应该考虑雇佣更加这样的人才。

InfoQ Fr: 你是如何将多语言编程实践到日常工作中去的?

Zaiste:PolyConf 大会对我来说是个理想的学习场所,能够帮助我加深对使用工具的理解,也帮助我从不同角度来看待问题并寻找解决方案。我能看到一些老旧的、不受欢迎的想法是如何重新流行起来的,一些被遗忘的点子又是怎样回到人们的视线中的。《多语言方法》一书让我对编程有了更加全面的看法。通过比较多种技术,我可以快速了解它们的优缺点和应用环境。

InfoQ Fr: 你最期待学习使用的新语言是哪些?

Zaiste:我最近非常喜爱 Rust 和 OCaml,它们都各具特色。Rust 是非常快的系统编程语言,而 OCaml 是多范式语言,在类似 ML 这样的系统下统一了功能化、命令行化和面向对象编程。

InfoQ Fr: 有许多多语言编程相关的会议。PolyConf 大会更侧重于什么?

Zaiste:有好多个有关多语言编程的会议,我也非常期待新的会议的出现。我举办 PolyConf 大会的目的是促进不同编程语言和社区之间的交流。我们期望成为实现最终目标的助力之一。

InfoQ Fr: 作为 PolyConf 2017 大会的与会者之一,我将在这次会议上看到什么?

Zaiste:今年会更加偏重于虚拟机内容。Chris Seaton将会介绍Graal:目标实现高性能 Java 动态编译器和 Ruby 环境下的解释器的一款Oracle项目。Maxime Chevalier-Boisvert将会介绍她正在搭建的动态语言平台。Jack Moffitt 将向我们展示Servo:Rust 语言编写的 Web 浏览器引擎原型,而Etiene Dalcol将和我们探讨 Lua 和 LuaJIT。这只是整个大会的一小部分内容,要想获得更多内容,请持续关注。

查看英文原文Being a Polyglot Programmer


感谢冬雨对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

语言 & 开发