《IT老外在中国》第11期:首次访华的编程巨匠、C#之父Anders
见到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的更多相关文章
- python 全栈开发,Day43(python全栈11期月考题)
python全栈11期月考题 1.常用字符串格式化有哪些?并说明他们的区别 2.请手写一个单例模式(面试题) 3.利用 python 打印前一天的本地时间,格式为‘2018-01-30’(面试题) 4 ...
- 《HelloGitHub月刊》第11期
<HelloGitHub>第11期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高质量 ...
- 《HelloGitHub月刊》第 11 期
<HelloGitHub>第 11 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高 ...
- Delphi/C#之父首次访华:55岁了 每天都写代码
Delphi.C#之父Anders Hejlsberg 近日首次访华,并在10月24日和27日参加了两场见面会,分享了他目前领导开发的TypeScript项目,并与国内前端开发者近距离交流.本文就为读 ...
- C++11新特性之六——元编程
C++11新特性之六——元编程
- 第11组 团队Git现场编程实战
第11组 团队Git现场编程实战 组员职责分工: 前端部分: 陈郑铧:构架的搭建,前端模块开发 陈益:前端模块开发 李镇平:前端模块开发 后端部分: 沈国煜:后端模块开发 王泽鸿:后端模块开发 林铮威 ...
- Facebook不相信所谓的员工能力等级。《长效商业英雄》(《哈佛商业评论》2016年11期),4星。
老牌管理杂志.本期我给4星.以下是书中一些信息的摘抄: 1:爱因斯坦曾说:“任何傻瓜都能让事情更复杂,只有天才能让事情变简单.”单就这一点来看,乔布斯无疑是天才中的天才.#137 2:通过让苹果聚焦于 ...
- F#周报2019年第11期
新闻 Bolero:WebAssembly中的F# 尝试WebAssembly里的F# JetBrains的fsharp-support 2019.1 ML.NET 0.11发布 Outreachy内 ...
- 【进阶1-1期】理解JavaScript 中的执行上下文和执行栈(转)
这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/tNl5B4uGdMkJ2bNdbbo82g 阅读笔记 执行上下文是当前 JavaScrip ...
随机推荐
- java翻译到mono C#实现系列(3) 获取手机设备信息(残缺,)
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; ...
- 再学C/C++ 之 指针常量 和 常量指针
(1)指针常量,将指针的指向当成常量.即指针变量的值只能在定义的时候初始化,定义后不能修改,也就是说不能改变指针变量的指向.但是不影响所指对象的访问特征.其定义形式为: 类型 * const 指针 / ...
- security和oauth2.0的整合
security和oauth2.0的整合 之前已经介绍过security的相关的介绍,现在所需要做的就是security和oauth2.0的整合,在原有的基础上我们加上一些相关的代码;代码实现如下: ...
- linux mint 19 与windows时间不同步
首先确定时间无误 sudo apt-get install ntpdate sudo ntpdate time.windows.com 2 sudo hwclock --localtime --sys ...
- 事务操作的统计,TPS的计算,隔离级别的读提交
对于事务操作的统计 因为InnoDB存储引擎是支持事务的,因此对于InnoDB存储引擎的应用,在考虑每秒请求数(Question Per Second,QPS)的同时,也许更应该关注每秒事务处理的能力 ...
- hibernate与ibatis的区别
Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05.它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前 ...
- Java责任链模式
责任链模式 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计 ...
- 如何用webgl(three.js)搭建不规则建筑模型,客流量热力图模拟
本节课主要讲解如何用webgl(three.js)搭建一个建筑模型,客流量热力图模拟 使用技术说明: 这里主要用到了three.js,echart.js以及一些其它的js 与css技术,利用webso ...
- Vue 脱坑记 - 查漏补缺(汇总下群里高频询问的xxx及给出不靠谱的解决方案)
前言 发现群里有些问题的提问重复率太高了,每次都去回答,回答的贼烦.这里做一个大体的汇总,废话不多说,直接开始给出方案,不是手把手..若是连问题和解决都看不懂的..应该去补充下基础知识 问题汇总 Q: ...
- AutoResetEvent和ManualResetEvent理解
AutoResetEvent和ManualResetEvent用于多线程之间代码执行顺序的控制,它们继承自WaitHandle,API相同,但在使用中还是有区别的. 每次使用时虽然理解了,但由于没有去 ...