来源 硬件世界
海尔斯博客 还有 大卫卡特勒 微软的编程大神
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编写应用的开发和调试环节,让JavaScript可以方便用于编写大型应用,进行多人协做。
这种定位让TypeScript能更轻松的被JS程序员所接受,除了上面提到社区的反应,最知名的还要数Google采用TypeScript来开发其Angular 2框架,Google和微软甚至为此第一次联合召开发布会。在国内,也有HTML5游戏引擎Egret使用TypeScript进行开发。因而可知,TypeScript已经足够可用,甚至进入大公司的生产环境。
固然,最后让人推荐TypeScript的缘由,还有Anders自己,有如此大牛带领,相信这门语言正走在正确的道路上,它的将来不可限量。