C#Designer Torgersen:为什么编程语言仍然如此流行

2020-10-27 18:45:28

自2000年创建以来,C#在为开发环境设置技术基准方面发挥了重要作用。首席设计师Mads Torgersen与TechRepublic分享了其成功的秘诀。

在创建20年后,C#仍然是世界上最流行和使用最广泛的编程语言之一。这种编程语言因其多功能性和易于阅读的语法而受到数百万人的青睐,它迅速成为网络和移动应用程序、游戏开发、商业应用程序等的首选。

虽然它与Java有着密切的传统-最初被设计为Sun Microsystems(现在的Oracle)在1996年开发的编程语言的竞争对手-但自2001年开始以来,C#基本上沿着自己的道路发展,这主要归功于微软的广泛支持。

C#&39;之所以受欢迎,很大程度上是因为它倾向于快速接受新特性。微软项目经理兼C#首席设计师Mads Torgersen说,正是这种前瞻性的设计让这种编程语言在其20年的历史中积累了如此庞大的用户基础。

托格森告诉TechRepublic,强烈致力于创新一直是C#与众不同的地方之一。

我认为它达到了一个相当务实的平衡,我们所做的事情集中在真正的程序员发现自己所处的场景中。我们非常热衷于创新是由实用性驱动的,而不是由美观驱动的。同时,我们真的很努力地保持语言的连贯性,并且有一个统一的领域。

托格森在过去的15年里一直是C#&39;设计的首席协调人。托格森在2005年离开学术界投身产业界之前,曾在丹麦奥胡斯大学(Aarhus University)担任四年副教授,现在领导着微软的一个团队,该团队的职责是协调C#的未来方向。

与Torgersen不同的是,C#设计团队中的大多数人都参与了编程语言的构建和实现,并且倾向于在微软的相邻领域工作。同时,托格森的工作是实际运行C#语言设计过程,并维护该语言的规范。

他解释说,我们相当频繁地聚在一起,大约每周两次,持续两个小时,围绕着我们应该如何在下一个版本的C#中做事情来做出决定,并推动创造性的工作。

我在某种程度上是这个项目的策划者,也是为该项目带来创意和制定细节等方面做了大量基础工作的人之一。

虽然C#一直以微软为重心,但C#是一种开源编程语言,因此遵循开源设计过程。虽然这主要是由微软推动的,但想法经常从C#社区流传下来。

托格森说:我们确实有一个GitHub网站致力于C#的设计,还有一个网站致力于C#的实现。

在设计网站上,我们与那些不是日常使用C#但通常是C#用户的人有很多互动,他们为讨论贡献了想法。C#中的一些特性就是通过这个渠道实现的。

那么,托格森和他的团队是如何从多个角度提出想法的,他们是如何筛选出什么是重要的呢?

他承认,这是一个挑战,因为有很多收入。就用法而言,它是一种大型编程语言--有数百万C#开发人员,因此有相当多的投入。

这就是好的老式民主派上用场的地方。为了帮助这一过程,Torgersen和他的C#设计师同事采用了一种拥护机制,团队中的每个成员都将评估通过GitHub产生的想法,并倡导他们认为值得带到谈判桌上的任何想法。

托格森解释说,决策不仅基于每个想法吸引的兴趣数量,而且还取决于它是否符合语言计划的发展道路,以及对其他语言中类似想法的吸收。

拥有这样的设计团队是管理这类流程并做出正确决策的关键。你需要随时在房间里有很多视角,但对他们来说,也需要一个过程,而不仅仅是四面八方的交谈。

我们绕了很多圈,以确保我们已经涵盖了所有的基础,但我们也有办法达成一致,并说,好的-这就是我们正在做的事情。这是一种平衡,既要有大量的投入,又要做很多事情,但要对所有这些都有很强的管理能力,这样才能让人感觉出来的东西是从整体上设计出来的。

虽然就受欢迎程度而言,C#可能不是最受欢迎的(这一荣誉授予C或JavaScript,这取决于您查看的索引),但它在2000年代中期转向异步编程,为开发环境带来了重大的技术变化,这在很大程度上是由微软的Torgersen和他的团队所做的核心设计更改所带头的。

对于许多开发人员来说,拥有对异步编程的编程语言支持突然从一个边缘愿望变成了一个关键方面,为行业设定了新的标准,并导致其他几种主要编程语言(包括JavaScript)随后也采用了这种模型。

托格森说,这是一个巨大的转折点,因为它帮助我们解决了开发环境中的一个重大变化,即转向云计算和移动。

突然之间,程序更需要跨不同的设备进行通信,无论是云中的服务器,还是移动设备和服务器之间的通信,等等。我们非常成功地解决了这个问题,从那时起,整个行业都开始关注我们的做法。这是我非常自豪的事情。

当然,自从Torgersen从创建者Anders Hejlsberg手中接过C#的掌舵以来的15年里发生了很多事情。最近,无代码、低代码平台的崛起-特别是在新冠肺炎大流行期间-已经开始公平竞争,允许几乎没有编码能力的人开发功能应用。

考虑到目前全球开发人员短缺的情况,这些平台足够简单,即使是非程序员也可以开发功能齐全的业务工作流应用程序,这些应用程序可以集成到更广泛的IT基础设施中。

托格森说:我知道很多程序员有点鄙视这种观点,我们也意识到它只能带你走到这一步,但同时我真的很欣赏它能让更多的人在电脑上发挥创造力。

它使它不那么深奥、神秘或类似阴谋,整个编码变得不那么神秘,更容易理解。

托格森还乐观地认为,低代码、无代码的平台和传统编程可以和平共处,尽管他承认,在边界上发生了什么,这是一个挑战。

他说,这一直是低代码方法的挑战,甚至在我们这样称呼它们之前就是如此,也就是说,低代码、无代码的设置本身就会给你带来一些限制--至少对于我们今天拥有的技术来说--对你能做的事情有一些限制。

在过去,这一直是一种令人不安的领域,以至于我认为这是导致一些没有代码的方法失败的原因之一,这些方法在需要变得更聪明的时候没有增长的故事。这是我们需要不断努力解决的挑战。

与所有现代编程语言一样,C#也在继续发展。随着C#9.0即将在11月面世,下一次更新将专注于支持数据形状的简洁和不可变(即不可更改)表示。

托格森说,C#9.0正试图为C#采取一些后续步骤,使其更容易处理通过网络传输的数据,并为数据表达正确的语义(如果您愿意的话),这源于我们最初所称的面向对象的范型,";Torgersen说,";C#9.0正在努力使C#更容易地处理来自网络的数据,并为数据表达正确的语义(如果您愿意的话)。

托格森说,C#9.0在这个方向上迈出了下一步,推出了一个名为“记录”的功能。它们是一种引用类型,允许整个对象是不可变的,并使其行为类似于一个值。

托格森解释说,很长一段时间以来,我们发现自己一直在借鉴函数式编程的思想来补充面向对象的编程,这对面向云编程和数据操作都有真正的帮助。

不过,在C#9.0之外,事情变得更加理论性了。托格森坚持认为,编程语言没有具体的终局--或者至少在它最终到达某个未知的到期日之前不会。

这总有一天会发生的!";他补充道。我认为一些有趣的事情,现在是时候再看一遍了,与软件组合有关-使不同的软件在事后组合变得更容易。

大多数编程语言都擅长一定程度的适配,但它们还不够好,我想带头推出更强大的适配功能,这样你就可以更好地发挥现有软件组件的相互作用。

托格森说,在C10中,我们能期待这一点吗?这是一种长期项目,我们也在努力,尽管我们正在做更多短期有用的功能。

";这将是普遍的。这对任何从事软件开发的人都有帮助,尤其是当你把几个框架放在一起并试图让它们合作的时候。

从最热门的编程语言到薪水最高的工作,获取您需要了解的开发人员新闻和提示。每周

今天报名