见到Anders的时候,他正专注的倾听国内开发者的提问,一副远视眼镜斜歪着架在头顶,宽松的深蓝色休闲毛衫随意套在白色圆领T恤外。

如果不是他那专注的神情,以及现场见证开发者对他的狂热崇拜,很难想象这位外表并不出众、甚至非常普通的老外就是从美国专程赶来中国参加10月27日举行的微软技术大会的编程巨匠、C#之父——安德斯·海尔斯伯格。

“Fantastic!”在被问及第一次来中国的感受时,Anders带着夸张的表情这样回答CNET。

图正中为安德斯·海尔斯伯格

Anders促成微软与谷歌首次合作

Anders是一个传奇式的人物,关于他的故事很多,比如微软和谷歌这两个死敌,竟然能在某一件事情上达成合作,此事就是因Anders而起。

Anders创造了新语言TypeScript,这是兼容JavaScript的语言。今年3月,谷歌的Angular团队宣布了它与微软TypeScript团队在Angular 2上紧密合作。

“谁会想到Google用它来写Angular 2的东西呢?”Anders用反问句来表达出乎意料的感受。

实际上,如果不是因为TypeScript确实非常好用,微软确实拥有最好的技术解决方案,Google怎么会使用来自劲敌开发的语言?

喜欢挑战的Anders

了解TypeScript的人们都知道,它是为了解决JavaScript的一些问题而产生,被业内称为JavaScript的替代语言。

Anders带领团队创造了这种语言,他说:“因为我喜欢挑战。”

“我愿意努力推出好的编程语言,使每一个程序员更富有效率地工作。如果一个语言已经是让编程员非常有效率了,再进一步改进它的机会就不多了。我认为JavaScript代表了一种趋势,而且现在有很多人在用它,它以后也会变成企业级的编程语言,但它中间同时又有那么多的问题,所以我们就想一定要把这个问题解决好,让它变成一个更好的编程语言。”

“我们添加了很多的东西,使TypeScript能更好的支持大型应用的开发,我觉得这个过程非常有意思。”

和国内开发者积累多年开发经验后会选择转向管理工作不一样,Anders在过去的四十年来一直从事编程工作,因为这是他的兴趣、也是他最大的爱好。

正在改变的微软

微软有着显著的工程师文化,Anders自然是微软技术领域最核心的成员之一,来自这样地位的他向我们讲述了微软这些年在开放和开源上的变化。

“两年前我们开始支持‘开放’。开放是萨提亚的业务战略,这两年你可以看到微软有更多开放的东西,我们把Office放到了苹果上,我们有安卓的东西,包括我们的Azure平台,你可以在这个平台上放Linux、Windows操作系统。我们的开发工具对iOS、安卓、WindowsPhone可以有跨平台的支持,我们甚至做了速度更快的安卓手机模拟器。”

“开源方面,我们有很大的进展,我们开发平台的团队,包括微软最核心.NET框架已经开源了,所有的核心代码都已经放到开源社区,我们核心中间件,基础的核心的开发都在GitHub上,我们开发平台上关于开源的事情一直在往前做,但开源不是这么容易的事情,不是说今天把代码写出来放到开源社区就是开源了。今天开源社区有一定的标准和规范,所以我们要为了把.net开源就花很大的工夫,包括重写部分代码和注解,这是很多程序员都不愿意做的。我们还在逐步改进。”

“微软这些年在不断地变化,我们一点点变,尤其是现在我们有了新的掌门人,我们也在学习做一些以前没有尝试、没有做的事情。”Anders说。

结束语

来到中国的日子,Anders只要亮相就会被拉住拍照,他说:“我从来没有拍过如此多的合影。”

他并不知道开发者对他有多么崇拜!因为,他可以坚持40年从事开发工作;他在微软开源工作上起到了有史以来最大的推动作用;他创造的C#多年来一直是十大编程语言之一;他开发的TypeScript令谷歌也忍不住要用;以及他被盖茨在96年亲自以数百万美元的高薪挖到微软!

他是传奇,更是榜样。

最后,小编还有一个呼吁:

立即访问http://market.azure.cn

《IT老外在中国》第11期:首次访华的编程巨匠、C#之父Anders的更多相关文章

  1. python 全栈开发,Day43(python全栈11期月考题)

    python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...

  2. 《HelloGitHub月刊》第11期

    <HelloGitHub>第11期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高质量 ...

  3. 《HelloGitHub月刊》第 11 期

    <HelloGitHub>第 11 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高 ...

  4. Delphi/C#之父首次访华:55岁了 每天都写代码

    Delphi.C#之父Anders Hejlsberg 近日首次访华,并在10月24日和27日参加了两场见面会,分享了他目前领导开发的TypeScript项目,并与国内前端开发者近距离交流.本文就为读 ...

  5. C++11新特性之六——元编程

    C++11新特性之六——元编程

  6. 第11组 团队Git现场编程实战

    第11组 团队Git现场编程实战 组员职责分工: 前端部分: 陈郑铧:构架的搭建,前端模块开发 陈益:前端模块开发 李镇平:前端模块开发 后端部分: 沈国煜:后端模块开发 王泽鸿:后端模块开发 林铮威 ...

  7. Facebook不相信所谓的员工能力等级。《长效商业英雄》(《哈佛商业评论》2016年11期),4星。

    老牌管理杂志.本期我给4星.以下是书中一些信息的摘抄: 1:爱因斯坦曾说:“任何傻瓜都能让事情更复杂,只有天才能让事情变简单.”单就这一点来看,乔布斯无疑是天才中的天才.#137 2:通过让苹果聚焦于 ...

  8. F#周报2019年第11期

    新闻 Bolero:WebAssembly中的F# 尝试WebAssembly里的F# JetBrains的fsharp-support 2019.1 ML.NET 0.11发布 Outreachy内 ...

  9. 【进阶1-1期】理解JavaScript 中的执行上下文和执行栈(转)

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/tNl5B4uGdMkJ2bNdbbo82g 阅读笔记 执行上下文是当前 JavaScrip ...

随机推荐

  1. (转)mysql、innodb和加锁分析

    mysql.innodb和加锁分析 原文:https://liuzhengyang.github.io/2016/09/25/mysqlinnodb/ 介绍 本文主要介绍MySQL和InnoDB存储引 ...

  2. 《Effective C++(第三版)》 的55条建议

    1. 让自己习惯C++(Accustoming yourself to C++) 条款01: 视C++ 为一个语言联邦(View C++ as a federation of languages) 条 ...

  3. 深度学习(六)keras常用函数学习

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9769301.html Keras是什么? Keras:基于Theano和TensorFlow的 ...

  4. canvas猜数游戏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 3-0 js基础 语言特性及性能优化

    1.语言特性: 内存泄露:内存没有释放,越堆越多. 垃圾回收(生命周期): 1.局部 很短 在局部中当函数完成时.已经释放了.全局变量在页面关闭的时候才被回收. 2.全局 很长 3.闭包.可长可短,只 ...

  6. *2.2.3 加入objection机制

    在上一节中,虽然输出了“main_phase is called”,但是“data is drived”并没有输出.而main_phase是一个完整的任务,没有理由只执行第一句,而后面的代码不执行.看 ...

  7. [作业] Python入门基础--猜年龄

    age = 20 while True: try: guess_age = int(input('guess age:')) if guess_age > age: print('Is bigg ...

  8. R语言函数

    函数是一个组织在一起的一组以执行特定任务的语句.R语言有大量的内置函数,用户也可以创建自己的函数. 在R语言中的函数是一个对象,所以R语言解释器为能够通过控制到该函数,带有参数可能是函数必要完成的操作 ...

  9. 用Ajax爬取今日头条图片集

    Ajax原理   在用requests抓取页面时,得到的结果可能和浏览器中看到的不一样:在浏览器中可以正常显示的页面数据,但用requests得到的结果并没有.这是因为requests获取的都是原始 ...

  10. 如何创建一个基于Node的HTTP服务器

    首先创建一个HTTP服务器. var http = require('http'); function serve(request,response) { console.log(request.me ...