脚本之家

你与百万开发者在一起

导读:很多人认为程序员应该供的神里面排名第一的应该是Linus Torvalds,因为他是Linux和Git之父。

然而我要试图反驳这个观点,因为地球上有另外一位伟大的程序员,有超过四代码农用他的开发工具吃饭。

Linus只用C编程而且不到30年,而这位神级程序员在近40年中一直创造引领潮流的开发工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg。

作者 : 金捷幡

本文经授权转载自金捷幡(ID:jin-jiefan)

01

Anders并没有大学文凭,但这丝毫不重要。当年微软Server部门负责人Bob Muglia认为,地球上只有几个人可以做出伟大的开发工具架构,Anders还是其中那个最棒的,顶尖中的顶尖。

当时,Anders在微软的竞争对手Borland工作。微软试图挖了他一年,但都被婉拒。

比尔盖茨打电话给Anders,说我可以做什么才能让你来。Anders后来回忆说,那是他人生特别尴尬的一个时刻。他已经财务自由,只想做自己热爱的事。

1996年,Anders和Borland高层有些意见分歧,微软趁机开出每年300万美元的高额待遇,更重要的是许诺他可以享有充分的协作资源,终于把这位英雄招至麾下。从后来的贡献看,也许3000万请到Anders,也不会亏。

02

Anders是1960年出生在丹麦,父亲是摩托罗拉的工程师,典型的科技家庭。Anders在上中学时就开始编程,他回忆说那时用的HP2100还是纸带编程。上大学时有个高年级学生喜欢玩Mousehole纸牌游戏,但是老输钱给Anders,觉得他很牛,就请他合伙一个小公司叫Polydata。

Anders有台Z80,这电脑只有4Mhz CPU和32K内存,上面有微软Basic。结果Anders玩了一天就玩腻了,随后开始玩汇编。大神在20岁就显露了神迹,他两三个星期就写出了Pascal编译器,并卖给了一个英国公司。然后大神就辍学了,并在多个平台包括DOS上重写了Pascal编译器。

1983年,当时Borland还是个丹麦公司,自己做编译器做得很烂,找到Anders买了他的编译器并整合成Turbo Pascal。微软CTO在一次节目中说,这应该是PC上面第一个真正的集成开发环境(IDE),但Anders很谦虚地说他不知道。

▲Turbo Pascal截图,好喜欢这个begin...end

当时Anders并未加入Borland,因为Borland后来搬到硅谷去了。Anders选择远程服务,因为当时并没有互联网也没有email,当时寄代码都是靠联邦快递。

1989年,Anders自己的公司Polydata经营不太好,加上女友很向往去美国,他就决定去美国加入Borland。

03

Borland当然喜出望外,任命Anders为首席程序员。在Turbo Pascal成功后,Borland又发布了Turbo C,从而扬名天下。中国第一代程序员好像都是用Turbo C的,包括伟大的王小波同志。

而Anders的主要任务,是秘密开发可视化环境的超级IDE:Delphi。当时微软已经推出自己的Visual Basic大获好评,但一碰到直接编译二进制EXE的Delphi立刻被秒成渣渣。

Delphi使用Object Pascal,语言设计极其优雅,完美面向对象,完美结合数据库,而且可以直接操控操作系统(硬件和网络等),应该说开发Windows原生程序堪称完美。有意思的是,Delphi上面的VCL和RTL库都是用Delphi自己开发自己的,自带的源代码可以让程序员学习真正高手是怎么编程的。

▲Delphi 2截图

当年国内大量著名程序都使用了Delphi,包括张小龙的Foxmail和雷军的WPS。

后来著名的Borland C++也被直接移植架在Delphi上,这就是C++ Builder。

这时我似乎听到盖茨在叹息,我非得此人不可。

04

Anders加入微软时,正是互联网风起云涌之时。Sun刚发布了跨平台可以到处运行的Java,微软感觉生态受到严重威胁,抓紧开发Visual J++和WFC,Anders成了主导人物。VJ++很快成为世界上最快的Java编译器,并支持ActiveX等微软生态产品。

Sun发现微软不用自己的Java虚拟机,搞出个更快的东西。他们深深忧虑被微软分裂了Java,所以果断起诉了微软。结果微软败诉,被迫在VJ++页面承认和Sun Java不兼容,导致了VJ++的最终失败。

Anders第一次碰到自己的产品不是因为性能问题而失败,他承认自己有点天真了。短暂沮丧之后立刻恢复了大神本色:我们微软要自己搞一套和Java竞争的平台。

这就是2000年发布的C#和.net平台。Anders设计的C#也是优美的面向对象速度也经常快于Java。十几年过去,C#依旧是互联网开发的主力语言之一。

▲Logo版权:微软

05

近年来开源软件风起云涌,PHP/Python/Ruby/Swift等热度高升,年轻人都不记得Anders这个大叔了。结果在大家最意想不到的地方,大神再次亮剑。

JavaScript(JS)是互联网使用最多的脚本语言,而这个原本不该是Anders的强项,因为他是搞高大上的机器码编译器而不是低级的脚本的。然而,Anders再次推出TypeScript震撼了程序圈。

TypeScript是编译输出JavaScript的工具,也是JS的超集。它不仅可以输出客户端的JS,还可以输出服务端大热的Node.js。TypeScript大大提高了程序员写JS的效率和降低了差错的概率。

更难能可贵的是,作为顶级Geek,Anders积极拥抱开源社区,推动微软从封闭走向开放。TypeScript就是微软最早的开源产品之一。纳德拉上台后,Anders更是促成Visual Studio免费的重要推手,这个开发套件了包括了C#和TypeScript。

06

在很多新兴语言变得越来越臃肿复杂的当下,程序员们怎么评价Anders的作品呢:有品味,优雅,简洁。Anders说,这是因为他对编程充满了热情。

年近60的Anders今天仍旧在写程序,他说一旦停止写代码后,就会膨胀飞起来,忘了程序员真正需要什么。我们现在还能看到他每个月在Github提交的代码。

▲github截图

我自己在90年代用过Delphi,排第一肯定有偏心的成分。特以此文致敬我心目中最伟大的程序员:Anders Hejlsberg。

更多精彩

在公众号后台对话框输入以下关键词

查看更多优质内容!

女朋友 | 大数据 | 运维 | 书单 | 算法

大数据 | JavaScript | Python | 黑客

AI | 人工智能 | 5G | 区块链

机器学习 | 数学 | 留言送书

请在留言区给出你的答案与解析,解答精彩者获得《算法详解(卷1)》一本

☟☟

●  “互联网从此没有 BAT”

●  脚本之家粉丝福利,请查看!

● 书榜 | 计算机书籍(5.27-6.02)销售排行榜

● 谈判失败:Oracle杀死Java EE

● 这些IT经典好书让你受用一生

● 入行AI,程序员为什么要学习NLP?

●  我爸的电脑中了勒索病毒

把程序显示在最前面 delphi_地球程序员之神:没上过大学,曾拒盖茨的Offer,4代码农靠他吃饭...相关推荐

  1. 做一个程序员可以改变自己的人生吗?比尔盖茨:真的可以

    大部分牛的程序员都改变了一身.比如,马斯克,扎克伯格,比尔盖茨这些. 其实程序员吃香很大一部分原因是在旁人眼里看来,工资高,办公环境舒适,福利待遇好,特别是进了大厂就是给自己镀金了. 人生很大,何为改 ...

  2. 程序员编程必备的6大装备,比尔盖茨居然也用三个屏幕编程!

    一套好的装备可以显著地提高程序员的身心健康和工作效率. 0.好的座椅 很多程序员调侃需要一本<颈椎康复指南>. 如果程序员颈椎出现问题,一般是座椅不符合人体工学的,好一点的座椅一般是不会这 ...

  3. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...

    看了很多帖子,但是效果都不是很好.还是找微信小程序官方文档,自己写比较方便.自己动手丰衣足食!话不多说,上代码! 先来个效果图 html {{item.text}} 查看更多 收起 wxss .box ...

  4. 微信小程序显示loading效果,微信小程序节流效果,微信小程序生命周期,微信小程序组件的创建与使用

    一.显示loading效果 文档地址:wx.showLoading(Object object) | 微信开放文档 请求前 显示loading 效果,请求结束后隐藏loading // 在请求模块中 ...

  5. 程序员修神之路--分布式缓存的一条明路(附代码)

    菜菜呀,由于公司业务不断扩大,线上分布式缓存服务器扛不住了呀 程序员主力 Y总 如果加硬件能解决的问题,那就不需要修改程序 菜菜 我是想加服务器来解决这个问题,但是有个问题呀 程序员主力 Y总 ??? ...

  6. 盖茨来了:比起去火星,地球有些事更紧迫

    2023年6月14日晚,比尔·盖茨在微博更新了一条消息,他写道:我刚降落在北京,这是我2019年以来的首次访问.盖茨基金会与中国伙伴合作应对全球健康和发展挑战已经超过15年.我非常高兴能与中国的伙伴们 ...

  7. 程序员修神之路--高并发优雅的做限流(有福利)

    点击上方蓝色字体,关注我们 菜菜哥,有时间吗? YY妹,什么事? 我最近的任务是做个小的秒杀活动,我怕把后端接口压垮,X总说这可关系到公司的存亡 简单呀,你就做个限流呗 这个没做过呀,菜菜哥,帮妹子写 ...

  8. android 自动打开第三方应用程序,Android如何做到应用程序图标隐藏,由第三方程序显示启动...

    Android如何做到应用程序图标隐藏,由第三方程序显示启动 发布时间:2020-07-13 03:25:02 来源:51CTO 阅读:11353 作者:ord1nary 在AndroidManife ...

  9. Java 技术篇-利用exe4j工具生成exe文件实例演示,IntelliJ IDEA将项目转化为jar包方法,运行生成后的程序弹出exe4j提示处理,生成的程序显示控制台设置方法

    Java 项目转化为 exe 可执行文件 第一章:IntelliJ IDEA 将项目转化为 jar 包 ① 设置 Artifacts ② 设置是否集成外部 jar 包 ③ 将 java 项目转化为 j ...

最新文章

  1. 鸟哥的Linux私房菜(服务器)- 第四章、连上 Internet
  2. Java技巧: 根据网址查询DNS/IP地址
  3. scala apply方法 笔记
  4. 分布式事务模型--Saga
  5. 【机器学习-西瓜书】八、集成学习:Boosting
  6. 李飞飞重返祖国执掌Google AI中国团队:不忘初心,中国已觉醒
  7. HDOJ 5091 Beam Cannon 扫描线
  8. 动物之美计算机教案,清华大学版六年级上册信息技术教案第三课 动物之美——图像分类管理.pdf...
  9. 常用自动化测试工具介绍(支持B/S、C/S)
  10. WinCC 在线变量绘制趋势图(自定义内部变量-随机数据)
  11. 咆哮教主网络走红 龅牙哥出台说真相 画皮收视率破新高
  12. NEFU 262 贪吃的九头龙(树形背包,4级)
  13. Chrome内核浏览器显示【您的时钟快了,您计算机的日期和时间不正确】解决办法
  14. JS自写带描述标签云
  15. matlab异步电机仿真,基于MATLAB的异步电机仿真系统
  16. 5G NR学习理解系列——时频结构及相关概念
  17. java实现飞机大战小游戏——————【附素材、源码、逐行注释讲解】
  18. Exp4 恶意代码分析 20164321 王君陶
  19. 实现视频边下边播(视频MOOV信息前置)
  20. python打印字符金字塔_打印字母金字塔(python实现)

热门文章

  1. JQUERY的parent()
  2. unknown directive导致的nginx无法启动
  3. python判断成语_python正则表达式抓取成语网站
  4. mysql server uuids_master and slave have equal MySQL server UUIDs 解决方法
  5. 【UEditor】介绍
  6. 用Location对象和history对象修改页面url
  7. 用计算机弹没那种命,成熟小女人QQ个性网名 没那种命就别犯那种病
  8. mimo 鲁棒控制 matlab,项目调度问题的一些matlab开发的工具箱
  9. php中extends是什么意思,在php中extends与implements的区别
  10. yii2设置session时间_关于 Swoft 2.0 版本用 Redis 存储 session 时配置问题