Delphi与C#之父:技术理想架构开发传奇

简介: Delphi与C#之父:技术理想架构开发传奇来源: 51CTO  发布时间: 2011-01-05 18:10  阅读: 60 次  原文链接   全屏阅读  [收藏]   编辑点评:盖茨给Anders Hejlsberg开出三百万以上的年薪和数万股的微软股票。

Delphi与C#之父:技术理想架构开发传奇

来源: 51CTO  发布时间: 2011-01-05 18:10  阅读: 60 次   原文链接   全屏阅读  [收藏]  
编辑点评:盖茨给Anders Hejlsberg开出三百万以上的年薪和数万股的微软股票。这是一个诱人的条件,但更重要的是,盖茨许诺他可以有充分的时间和资源投身自己感兴趣的技术方向。

  Anders Hejlsberg(安德斯-海森博格) 坐在自己的办公室,双眼直直的盯着前方。他要做一个决定,决定自己未来的命运和理想。这是1996年一个普通的下午,几个小时前,他刚与比尔-盖茨结束了一次愉快的午餐,同为软件界的精英,他们相谈甚欢,盖茨给他开出三百万以上的年薪和数万股的微软股票。这是一个诱人的条件,但更重要的是,盖茨许诺他可以有充分的时间和资源投身自己感兴趣的技术方向。

  Anders在犹豫,他是否真的要离开已经工作了十三年的Borland。从Turbo Pascal、SideKick再到Delphi,Borland是Anders辉煌的起点,他在这里成为人们敬仰的软件大师,并一手铸就了Borland传奇;在Borland,Anders有太多美好的回忆和未完成的理想。

Anders Hejlsberg
Anders Hejlsberg

  然而,随着1994年Philippe Kahn(Borland公司创始人)的离去,Anders渐渐失去了最强有力的支援;Borland的新任CEO Delbert Yocam希望加强Delphi在IDE市场的王者地位,因为Delphi才是Borland最主要的财务来源;但Anders已经看到Java和虚拟机语言的潜力,与其在已有的产品上徘徊不前,他更想专注于新产品Borland Java(后来的JBuilder)的研发;Borland的管理层的技术短视和Anders的技术追求显得如此格格不入;Anders回忆那段经历时曾说那时,我感觉自己并不是不可缺少的人。


风靡一时的Turbo Pascal

  Borland的内部矛盾很快引起了微软的注意,Anders在开发界的名头和对技术的理解使微软急不可耐,甚至对Borland使用了最直接的攻击。微软人力部门派遣加长型的大轿车到Borland大门口找Anders吃饭,并开出了年薪百万美元以上的条件;在苦等无应、按捺不住之下,很快就再次联系Anders,这次给出的条件是两百万美元,但依然没能打动Anders。微软开始思索金钱以外的东西。第三次,比尔-盖茨亲自出马,除了开出三百万的价码,还给Anders完成技术理想的许诺。  经过短暂的犹豫,Anders完成了自己的决定,这个决定足以像Turbo Pascal和Delphi那样再次振动整个开发界;因为这个决定,促成了VJ++、C#和微软.NET战略的诞生。

  1996年,Anders正式加盟微软,成为Visual J++和WFC(Windows基础类库)的架构师。他的第一个项目与其在Borland的技术理想相当接近,在微软知名的Visual Studio平台上打造一个基于虚拟机的语言和像Delphi一样彻底解放程序员生产力的IDE。这就是J++语言和VJ++开发工具。我们知道,编程语言和IDE的开发相当考验一个架构师的功力,作为用汇编打造Turbo Pascal和亲手开发Delphi的软件大师(自Anders离开Borland后,Delphi的底层架构在三年内一直无人可以修改),Anders不负众望,微软很快在新版Visual Studio 6.0版本中引入了J++;微软平台的程序员找到了击败Java阵营的工具。

  在相当一段时间里,J++成为微软抗衡Java的最有力武器;同时,由于Anders对Java的一些想法,改进后的J++甚至吸引了一大批Java程序员。后来由于微软在Java开发工具授权问题上和Sun公司的纠纷以及Borland公司对微软大张旗鼓的挖角的报复,迫使微软停止了Visual J++的后续开发。在Borland对微软和Anders个人的起诉书上写有这样一句话:Anders正在帮助微软开发Delphi for Java。
  作为Anders在微软的第一个产品,J++曾一度取得成功;但最后的纠纷使Anders意识到,商业环境的变化已经无法再像当年做Pascal那样随意,想要完成自己的梦想,必须帮助微软打造自己的技术平台和编程语言,而这门语言不是C++,因为他不想受C++标准委员会的限制;这门语言也不是Java,因为他看到Java不完美的地方和商业纷争;Anders要的,是运行在独立平台上的一门完美语言 。   

  .NET与C#   

  VJ++之后,Anders作为.NET概念的发起人之一,被任命为微软.NET的首席架构师主持开发工作。众所周知,.NET框架最初是个模糊的概念,即使是推出.NET战略一年之后,开发者依然无法看清.NET的技术愿景。其实,Anders也在不断的思考,从Turbo Pascal到Delphi再到现在的.NET,所有这一切都是致力于对开发者生产力的解放;但在微软,他要做的是平衡技术理想和商业价值的关系;还好,比尔盖茨履行了他当年的诺言,Anders可以按照他的想法打造.NET;程序员出身的盖茨相信,好的技术必然会带来好的商业价值。

  在经过不断的反思和讨论之后,Anders确定了.NET未来的走向:一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。.NET将是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。它应该包含许多有助于互联网和内部网应用迅捷开发的技术。

  这就是我们现在所看到的.NET,更重要的是,为了实现这一平台,Anders需要一门新的编程语言,它既要像Java一样通过虚拟机实现平台的跨越,还要避免一些开发者普遍抱怨的Java语言存在的缺点;同时,这门语言的革新将使得程序员可以同时进行Windows应用软件和网络应用软件以及组件和服务的开发。这门语言就是C#。

.NET架构图 
.NET已成为微软的基础技术架构

  Anders曾笑称自己把上世纪末和本世纪初的全部献给了C#。作为C#的架构师,Anders对其倾注了自己的全部精力。2003年,在Channle 9的一次访谈中,《Java编程思想》的作者Bruce Eckel向Anders证实一段传闻:我听说C#是一个工程师小组在一个屋子里设计出来的? ,Anders苦笑作答:是的。4年来,我们一直呆在这个屋子里。现在,每周一、三、五,我们仍然在这里会面。

  我们可以想象Anders为使C#只允许单一继承,同时保证一个类可以实现多个接口功能的苦苦思索;也可以想象他为C#支持完整反射的反复论证;这一切都是为了他的技术理想,而这个理想自大学时代开发Turbo Pascal时就未曾变过。  现在,我们已经看到了.NET和C#的成功,这不仅体现在每期的编程语言排行榜上,在Windows平台和众多.NET开发的网站上,.NET和C#现在已经无处不在。在Delphi的辉煌过后,Anders正在用自己的理想续写新的技术传奇。

相关文章
|
14天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
11天前
|
存储 分布式计算 关系型数据库
架构/技术框架调研
本文介绍了微服务间事务处理、调用、大数据处理、分库分表、大文本存储及数据缓存的最优解决方案。重点讨论了Seata、Dubbo、Hadoop生态系统、MyCat、ShardingSphere、对象存储服务和Redis等技术,提供了详细的原理、应用场景和优缺点分析。
|
11天前
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
58 4
|
12天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
13天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
28 3
|
13天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
12天前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
28 1
|
13天前
|
缓存 C# 开发者
C# 一分钟浅谈:Blazor Server 端开发
本文介绍了 Blazor Server,一种基于 .NET 的 Web 开发模型,允许使用 C# 和 Razor 语法构建交互式 Web 应用。文章从基础概念、创建应用、常见问题及解决方案、易错点及避免方法等方面详细讲解,帮助开发者快速上手并提高开发效率。
36 2
|
11天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
22天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
30 3
下一篇
无影云桌面