Anders Hejlsberg 和 Erich Gamma

大概半年前,我写了一篇名叫《有点软文》的文章,深情并茂地告诉大家,我司其实隐藏着很多牛人巨擘。有些人是身怀屠龙技,但是大家不认识;有些朋友则是声名远播,但可惜的是大家根本不知道他在微软。在看完 Connect ( Visual Studio 大会 )之后,我决定克服拖延症,来讲一讲大会上除了 Scott Gu (Asp.Net 之父)以外的两个天王巨星。

那就是 Anders Hejlsberg 和 Erich Gamma

Anders Hejlsberg

Anders 出席本次 Connect 大会,主要还是介绍他设计的 TypeScript 。那么谁是 Anders?

Anders 早年写了Compass Pascal编译器的 core,后来卖给了 Borland,也就开始为 Borland 打工。之后一直是 Turbo Pascal 的架构师。离开 Borland 之前,Anders 设计了 Delphi 语言。

96年,Anders 被 Bill Gates 亲自挖到了微软,给予了丰厚的薪水(百万美金,那还是20世纪哎我去)以及极大的权力。后果就是 Borland 和微软要死要活地打官司,控诉微软不正当拐骗,最后还真的赢了官司。之后 Anders 在微软主持开发 Visual J++,结果没几年就与 Sun 在 Java 的问题上发生了末日之战,不幸的是 Visual J++ 最终停止了开发(这哥们真是走哪儿官司打到哪儿)。随后 Anders 开始主持 .NET 的设计与开发,并且担任 C# 语言的首席架构师。

2012 年,Anders 宣布了他设计的新语言 TypeScript,这门语言是 JavaScript 的超集同时具备静态类型。TypeScript 虽然很年幼且有着浓浓的味,但是社区已经开始展现对它的兴趣,比如 Angular 2 就是用 TypeScript 写的。

简言之,如果你是微软平台上的开发者,你几乎无法和 Anders 脱离关系。而如果你是 Angular 的开发者,不久的将来,你也会感受到 Anders 的荣光。这哥们就是语言设计专业户。

Erich Gamma

我们知道 Anders 醉心于语言设计,而 Erich 就是软件开发的实践派。每每谈到软件开发,大家就不可避免地提及设计模式。而将设计模式从建筑行业引入到软件领域的,就是 Erich Gamma(当然,还有另外三个小伙伴,他们的统称十分霸气,Gang of Four,四人 帮)。Erich 91年博士毕业后就来到美国,与三个小伙伴一起布道设计模式。

注解 :经网友提醒,这里多讲点背景故事。Erich Gamma 在加入微软之前,和 Kent Beck 一起合作开发了单元测试框架 JUnit ,之后又领导了 Eclipse Java Development Tools 项目,真的是 IBM 的一个瑰宝啊。

有些工程师朋友会觉得设计模式不过是纸上谈兵,这里我们按下不表。Erich Gamma 在11年加入了 Visual Studio Team,开始在瑞士苏黎世独自带领团队(Erich 是瑞士人,我司为了大牛也真是大手笔)。加入 Visual Studio Team 之后,Erich 开始亲自操刀,用 JavaScript 实现的编辑器 Monaco。在 Visual Studio Online,Onedrive(线上),Office 365 中广泛应用。

我刚加入微软的时候,做的项目中就用了 Monaco,刚开始不知天高地厚,发现 Monaco 的 bug 后还嚷嚷着要去爆他们。有一次内部 Training,我们组也不知道怎么就请到了 Erich Gamma,他跟我们介绍如何利用 TypeScript (和 Anders 老兄产生了交集)重构 Monaco,把代码量从十万行硬是降到了两万以下。当时我都没好好听,觉得这又是一个爱忽悠的哥们。后来某次翻看设计模式的书,突然发现我天天想着要去爆的人,居然就是大名鼎鼎的 Erich。

不过凭良心讲,在没有意识到 Monaco 是 Erich 写的时候,我就已经深感 Monaco 比 Ace或者 CodeMirror 性能好的多。只不过由于只在内部使用且未开源,Monaco 并未声名远播。

直到,Erich Gamma 把 Monaco 用 Electron (跨平台包装工)包装了一下,瞬间变为多平台的编辑器 Visual Studio Code。刚发布的时候,很多朋友都以为这和 GitHub Atom 没区别,但下载使用后却发现性能比 Atom 好出很多。都是使用 Electron 实现跨平台,而编辑器本身,Monaco 暂时略甚一筹。希望切身实际地学习和领悟设计模式的最佳实践,快去看 Visual Studio Code 的源码吧!

#看到这里的朋友都是真爱,我决定透露一个我的惊人发现 从软文的角度,本文到这里其实就可以结束了。但是为了我的忠实听众们,我决定来讲一个 Google 的项目:Angular 2。

AngularJS 在经历了大火之后,Google 的朋友们发现它的缺陷过于明显(暂时不展开,同学们可以参考我以前的几篇博客),于是决定重构。而在重构的过程中,Google 的 Angular team 和微软一起合作,研究新版本 Angular 的架构的各种可行性,最终选择了使用 TypeScript 作为开发语言。而他们使用的开发工具则是 Visual Studio Code。

你们想想,一群 Google 的天才,有 Anders 设计的 TypeScript 和 Erich Gamma 开发的 VS Code 保证代码质量和开发效率,Angular 2 要好成什么样你说!

https://rebornix.com/snippets/2015/11/20/minisoft-anders-erich/

Anders Hejlsberg 和 Erich Gamma的更多相关文章

  1. Anders Hejlsberg 技术理想架构开发传奇

    Anders Hejlsberg(安德斯-海森博格) 坐在自己的办公室,双眼直直的盯着前方.他要做一个决定,决定自己未来的命运和理想.这是1996年一个普通的下午,几个小时前,他刚与比尔-盖茨结束了 ...

  2. (视频)Erich Gamma 与 Visual Studio Online 的一点野史

    大家对Erich Gamma的熟悉应该都集中在<设计模式>, Eclipse以及最近微软所发布的Visual Studio Code跨平台代码编辑器.其实在Erich加入微软的头几年里,他 ...

  3. C#之父 Anders Hejlsberg

             Anders Hejlsberg (born December 1960)[2] is a prominent Danish software engineer who co-des ...

  4. 编程语言的发展趋势by Anders Hejlsberg

    这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲. 编程语言的发展非常缓慢,期间也当然出现了一些东西,例如面向对象等等,你可能会想,那么我么这么多年的努力都到哪里去 ...

  5. Erich Gamma

    Erich Gamma是IBM的杰出工程师.他是Jazz项目的领头人之一,曾担任Eclipse的Java开发环境JDT项目的领导,目前是Eclipse的项目管理委员会成员.Erich也是经典书籍< ...

  6. .NET之父 - Anders Hejlsberg

    简介 安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父! 安德斯·海尔斯伯格曾在丹麦技术大学学习工 ...

  7. Eclipse之父、《设计模式》作者、Junit作者之Erich Gamma

    Erich Gamma拥有多重权威身份.他是Jazz项目的主要领导人:是Eclipse的项目管理委员会成员,被业界称为“Eclipse之父”: 是经典书<设计模式>的作者四人帮之一,199 ...

  8. 【历史】- .NET之父 - Anders Hejlsberg

    简介 安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父! 安德斯·海尔斯伯格曾在丹麦技术大学学习工 ...

  9. 引领开发工具近40年的程序员Anders Hejlsberg

    有位神级程序员在近40年中一直创造引领潮流的开发工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg. 一. Anders并没有大学文凭, ...

随机推荐

  1. AD域导入导出命令

    AD域 批量组织机构.用户导入导出 参考网站 https://technet.microsoft.com/zh-cn/library/cc753447(v=ws.11).aspx 导入所有命令 均cm ...

  2. AIX系统谨慎使用reboot命令

    在客户一次停机维护中,发现了这个问题. 环境是ORACLE 10G RAC for AIX6,使用了HACMP管理共享磁盘. 在停机维护时间段内需要重启主机,当关闭了数据库和CLUSTER后,节点1使 ...

  3. 紫书 习题 10-6 UVa 1210(前缀和)

    素数筛然后前缀和 看代码 #include<cstdio> #include<vector> #include<cstring> #include<map&g ...

  4. 今日SGU 5.30

    SGU 190 题意:给你个n*n的矩形,然后上面有几个点不能放东西,然后问你能不能用1*2的矩形,把能放 东西的地方放满 收获:一开始想的是,dfs,然后感觉这样的话,代码很长,而且很容易超时, 看 ...

  5. 洛谷 P2104 二进制

    P2104 二进制 题目描述 小Z最近学会了二进制数,他觉得太小的二进制数太没意思,于是他想对一个巨大二进制数做以下 4 种基础运算: 运算 1:将整个二进制数加 1 运算 2:将整个二进制数减 1 ...

  6. 15 hbase 学习(十五)缓存机制以及可以利用SSD作为存储的BucketCache

    下面介绍Hbase的缓存机制:  a.HBase在读取时,会以Block为单位进行cache,用来提升读的性能 b.Block可以分类为DataBlock(默认大小64K,存储KV).BloomBlo ...

  7. Android异步载入全解析之开篇瞎扯淡

    Android异步载入 概述 Android异步载入在Android中使用的很广泛,除了是由于避免在主线程中做网络操作.更是为了避免在显示时由于时间太长而造成ANR,添加显示的流畅性,特别是像List ...

  8. xml里面product的值在哪里设置的?

    转载请注明出处:http://blog.csdn.net/droyon/article/details/39890469 在进行Android应用程序开发时,善于运用xml中的product配置,能够 ...

  9. h5语音播放(移动端)

    <!--语音导航 start--> <div style="border:0px solid red;width:100%;height:72px;position:rel ...

  10. legend---四、菜鸟教程css3里面有教你炫酷的按钮怎么做

    legend---四.菜鸟教程css3里面有教你炫酷的按钮怎么做 一.总结 一句话总结:想学,总是有很多资料的 1. 自动居中是 margin:100px 0px;么? 自动居中是margin:100 ...