【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Delphi、C#之父 Anders Hejlsberg 首次访华 推广 TypeScript

  • 2015-11-03
  • 本文字数:2508 字

    阅读完需:约 8 分钟

Delphi、C#之父 Anders Hejlsberg 近日首次访华,并在 10 月 24 日和 27 日参加了两场见面会,分享了他目前领导开发的 TypeScript 项目,并与国内前端开发者近距离交流。InfoQ 记者全程参与了两场见面会以及会后的采访,本文就为读者描述一下近距离接触大师的印象,以及 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 本身,有如此大牛带领,相信这门语言正走在正确的道路上,它的未来不可限量。

2015-11-03 03:258550
用户头像

发布了 164 篇内容, 共 103.6 次阅读, 收获喜欢 391 次。

关注

评论

发布
暂无评论
发现更多内容

到底怎么理解分布式事务

做梦都在改BUG

苏宁基于 AI 和图技术的智能监控体系的建设

NebulaGraph

运维 图数据库

企业真的有必要用低代码平台吗?

这我可不懂

软件开发 低代码 低代码平台

热点面试题:JS 中 call, apply, bind 概念、用法、区别及实现?

控心つcrazy

JavaScript call apply bind 前端面试题

体验AI乐趣:基于AI Gallery二分类猫狗图片分类小数据集自动学习

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

为什么面试 SaaS 产品经理一定要问权限管理?

产品海豚湾

产品经理 SaaS 权限管理 B端 产品面试

MQTT保留消息是什么?如何使用?

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 保留消息

架构训练营-模块五作业

Sam

架构实战营

墨天轮发布数据库行业报告,亚信科技AntDB“超融合+流式实时数仓”开启新纪元

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库 企业号 2 月 PK 榜

飞书与钉钉的真正竞争在这

B Impact

企业微信的聊天机器人来了!免费下载,Python自动化办公

程序员晚枫

Python 聊天机器人 企业微信

立即执行函数在前端国际化方案中的应用

xiaoxi666

Matic链矩阵公排智能合约挖矿dapp系统开发详情(案例演示)

开发微hkkf5566

软件测试/测试开发 | app测试中常用的Android模拟器

测试人

android 软件测试 自动化测试 测试开发

MQTT QoS 0,1,2介绍

EMQ映云科技

物联网 IoT mqtt QoS 企业号 2 月 PK 榜

软件测试/测试开发 | 想做App测试就一定要了解的App结构

测试人

软件测试 自动化测试 测试开发 app测试

app上架需要准备什么以及上架流程

雪奈椰子

TestRai、Testlink、Jira、PingCode等6款测试用例管理工具对比

PingCode

管理工具 测试用例管理工具

春种一粒粟:企业如何修炼好云原生内功?

脑极体

云原生

2023-02-20:小A认为如果在数组中有一个数出现了至少k次, 且这个数是该数组的众数,即出现次数最多的数之一, 那么这个数组被该数所支配, 显然当k比较大的时候,有些数组不被任何数所支配。 现在

福大大架构师每日一题

算法 rust 福大大

LeetCode:240. 搜索二维矩阵 II,二分查找,详细注释

Lee Chen

JavaScript 算法 LeetCode

火山引擎DataTester:在广告投放场景下的A/B实验实践

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

ChatGPT:将一个「营销小助手」请回家

FinFish

AI AIGC ChatGPT

架构实战 7 - 王者荣耀商城异地多活设计

架构实战营 「架构实战营」

一图读懂 | 2023年中国企业数字化技术应用十大趋势

易观分析

数字化 数字经济

LeetCode题解:2347. 最好的扑克手牌,哈希表,详细注释

Lee Chen

JavaScript 算法 LeetCode 哈希表

京东力荐!深入理解高并发编程手册,GitHub上线3小时飙升榜首

做梦都在改BUG

Java 并发编程 高并发

微服务-常见配置中心工作原理

做梦都在改BUG

Java 微服务 配置中心

华为云API Arts:用“1+1+5”的模式,为你带来API-First体验

华为云开发者联盟

云计算 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

修改ctags让fzf.vim插件显示C,C++方法声明的标签

alps2006

ctags fzf.vim

借力英特尔® Smart Edge,灵雀云 ACP 5G 专网解决方案获得多维度优化加速

York

云原生 5G 系统架构 边缘计算 英特尔

Delphi、C#之父Anders Hejlsberg首次访华 推广TypeScript_JavaScript_徐川_InfoQ精选文章