Delphi、C#之父 Anders Hejlsberg 近日首次访华,并在 10 月 24 日和 27 日参加了两场见面会,分享了他目前领导开发的 TypeScript项目,并与国内前端开发者近距离交流。本文为读者描述一下近距离接触大师的印象,以及 Anders 对 TypeScript 的设计理念和想法。 Anders Hejlsberg(安德斯·海尔斯伯格)于1960 年出生于丹麦,在 Borland 公司开发出 Turbo Pascal 和 Delphi 之后加入微软,主持微软下一开 发工具的研发。他为微软开发和设计出 Visual J++、.NET 平台以及 C# 语言,可以说他开发出的软件和语言影响全世界整整一代程序员。目前,他是 C# 语言的首席架构师和 TypeScript 的核心开发者与 TypeScript 开源项目的重要领导人。 Anders 印象 Anders 现年 55 岁,在软件开发的道路上已经走过 30 余年,但仍然对工作充满热情。他性格和善而风趣,同时,还是个纯粹的程序员,每天仍然有很多时间花在编程上。 虽然相处时间不长,但大家纷纷围着他舍不得分开,这是一位让人愿意亲近的长者、前辈和大师。笔者将他的印象总结为三点:终身编程、开源信徒、语言大师。 终身编程 Anders 现在每天仍然花大量的时间实际写代码,并且未来会一直写下去。他很清醒的知道自己长处:“相比起管理,我还是更擅长于编程。” 事实上,Anders 的成名之作 Turbo Pascal 通过出售软件授权就让他获得了大量财富,之后微软高薪聘请更让他衣食无忧,Anders 不仅仅是可以转管理——只要他开口,微软有很多的职位在等着他——他甚至可以什么都不用做,但他仍然坚持编程,因为这是他的兴趣和激情所在。 对于他如何能达到现在的成就,他表示,10000 小时定律和兴趣是很重要的因素,编程是一项需要时间来掌握的技能,Anders 说,他回忆一下,的确是花了这么长时间才真正掌握编程,而另一方面,兴趣也是非常重要的,如果有两个工作,一个给的多些,另一个给的少些,但是是你感兴趣的事业,Anders 建议选感兴趣的那个。 国内有不少资深程序员在工作一段时间之后都转了管理,但仍对编程难以忘怀,了解 Anders 的生平和想法,想必会有所启发。 开源信徒 Anders 对开源精神的认同和身体力行让人惊讶,他现在在 Github 上每天要提交十多次代码,很难想象他来自微软,当然,微软现在其实也在拥抱开源,并且这其中也有 Anders 的努力。
微软自 Satya Nadella(萨提亚·纳德拉)担任 CEO 后,开始融入社区,向开发者示好,其中的重要举措就是开源,Anders 是其背后的推动力量之一。不仅他之前参与的 .NET 核心引擎 CoreCLR 开源,现在的 TypeScript 也彻底是由社区主导的开源项目,微软并不干涉 TypeScript 的发展方向,所有决策都由社区得出。 在 Anders 的分享里,他总结微软现在的开源战略: 新开发项目首选开源 创立 .NET 基金会管理开源项目 开源+开放开发,使用并依赖 Github 跨平台开发工具,典型的如 Visual Studio Code Anders 认为开源是软件开发的趋势,现在如果你的软件不是开源的,开发者可能更愿意选择别的开源的解决方案。 语言大师 Anders 在语言设计、开发工具、编译器等诸多领域都有非常深厚的功底,这为他设计出 C# 语言打下了基础,C#语言被公认为设计非常优秀的语言,作为它的创造者,Anders 毫无疑问是一位语言设计的大师。在现场他分享了一些对编程语言的看法: 极简:Anders 喜欢简单(simplicity),除非必要,否则不添加语言特性,一个好的语言特性是它必须的最小集。 设计存活时间更长的语言:有些编程语言随着时间流逝不再流行,但有些语言如C语言,几十年过去了仍然被很多人使用,语言与趋势(如移动互联网、物联网)无关,语言设计者的目标是设计存活更长时间的语言。 困难即美味:记者问到 Anders 对 JavaScript 语言的看法,他认为 JavaScript 在设计上有诸多问题,但仍然有其优点,更重要的是,用户很多,并且难以被替代。至于 Anders 为何会选择修补 JavaScript,他认为这对他是一项挑战,以前没有人做过,解决这一问题对他就像美味一般。 TypeScript:大 JS 生态圈的一环 TypeScript 最近发布了 1.6 版本,它在社区里的接受度也越来越高,比如有人从 CoffeeScript 迁移到 TypeScript,也有人认为它比 Facebook 的 Flow 更好。这一切都要归功于 Anders 为 TypeScript 带来的优秀设计。 Anders 分享到,其实 TypeScript 做的并不多。它的两大特性,第一个给 JavaScript 加上可选的类型系统,Anders 表示,很多事情是只有静态类型才能做的,给 JavaScript 加上静态类型后,就能将调试从运行期提前到编码期,诸如类型检查、越界检查这样的功能才能真正发挥作用。在 Anders 现场的演示可以看到,TypeScript 的开发体验的确远远超过以往纯 JavaScript 的开发体验,无需运行程序即可修复潜在 bug。 另一个特性是支持未来的 ES 6 甚至 ES 7,最近的更新都与此有关。在 TypeScript 中,你可以直接使用 ES 6 的最新特性,在编译时它会自动编译到 ES 3 或 ES 5,这个功能和最近流行的 Babel 类似,事实上,Anders 认为 TypeScript 的竞争对手并非 Dart、CoffeeScript 这类语言,而是 Babel,不过 TypeScript 的类型系统是 Babel 无法做到的,Babel 也仅是一个编译工具,无法提供更好的开发体验。 在问到对 TypeScript 将来的规划时,Anders 显得很克制。TypeScript 不追求替代 JavaScript,没有计划直接运行在浏览器、系统里,它仅仅关注在编译到 JavaScript 之前的事情,编译之后的事情,诸如 JavaScript 性能调优等等,并不关心。 Anders 表示,TypeScript 最大的目的是让程序员更具创造性,提高生产力,它将极大的增强 JavaScript 编写[color=rgb(68, 68, 68) !important]应用的开发和调试环节,让 JavaScript 能够方便用于编写大型应用,进行多人协作。 这种定位让 TypeScript 能更轻松的被 JS 程序员所接受,除了上面提到社区的反应,最知名的还要数 Google 采用 TypeScript 来开发其 Angular 2 框架,Google 和微软甚至为此第一次联合召开发布会。在国内,也有HTML5(游戏引擎 Egret 使用 TypeScript 进行开发)。由此可见,TypeScript 已经足够可用,甚至进入大公司的生产环境。 当然,最后让人推荐 TypeScript 的原因,还有 Anders 本身,有如此大牛带领,相信这门语言会走在正确的道路上,它的未来不可限量。 小编说:Anders Hejlsberg 既是语言大师,引领开源软件发展,有微软作为大背景,在编程领域相当有权威性;曾有文章解读说35岁是程序员职业生涯的一道门槛,但Anders虽已年过50,仍然热爱编程,时刻以写代码为乐趣,清楚自己的长处并坚持此优点;同时启发我们现在的年轻人,明确自己的长处定位,把握自我发挥所长,不要总是沉迷于各项娱乐,想要生活无忧就要付出努力,每一项成功都要靠不断地坚持自我而获得!
|