【C#】微软的Roslyn 是个啥?

这篇具有很好参考价值的文章主要介绍了【C#】微软的Roslyn 是个啥?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、说明

        Roslyn 是微软重写的C#编译器并开源。

        Roslyn 是 C# 和 Visual Basic.NET 开源编译器的代号。以下是它如何在过去十年企业Microsoft的最黑暗中开始,并成为所有C#(和VB)的开源,跨平台,公共语言引擎,我将在本文的其余部分将其视为给定的)。

二、Roslyn的历史渊源

        当 在 2005 年加入 Microsoft 时,关于什么将成为 Roslyn 的第一次对话已经在进行中 — 就在 .NET 2.0 发布之前。那次谈话是关于用 C# 重写 C#。这是编程语言的正常做法;语言成熟的证明。但还有一个更实际和更重要的动机:作为 C# 的创建者,我们自己不是用 C# 编程,而是用C++编码!每天使用 C# 会让你对 C# 有不同的看法:这是“狗食”的力量。

客户将依赖于新编译器的行为方式与旧编译器完全相同。为 C# 编写新的编译器意味着尝试逐个错误地匹配旧的编译器。

        重写已经掌握在客户手中多年的编译器的挑战在于,这些客户将依赖于新编译器的行为方式与旧编译器完全相同。为 C# 编写新的编译器意味着尝试逐个错误地匹配旧的编译器。我说的不仅仅是已知的错误,还有开发人员发现并依赖的那些未知和意外的行为,通常是在不知不觉中。

        多年来,这一挑战的艰巨性使我们甚至无法开始这个项目。

        此外,虽然语言团队内部对用 C# 编写的新 C# 编译器有很多好处,但对客户的价值主张更具挑战性:新编译器将如何帮助现有客户?也许唯一关心 C# 是用 C# 编写的人是编译器团队的成员。

        在但与此同时,另一个问题越来越大:处理 C# 代码的不同工具之间的重复工作。除了编译器之外,我们的姊妹团队还在Visual Studio中构建对C#的IDE支持,他们还必须编写大量代码(当时也是C++)来理解C#语法和语义。

        除此之外,来自Microsoft和其他工具(如StyleCop,CodeRush等)的越来越多的工具都必须从平面C#源文本开始实现有意义的基于代码的工具。所有这些都会有微妙不同的错误,不同的理解水平,不同的妥协和权衡。所有这些都会花费大量的精力来达到原点:理解代码。

最后,我们的价值主张是:使世界上只需要有一个理解 C# 的代码库,每个想要在代码上构建工具的人都可以共享!

        最后,我们的价值主张是:使世界上只需要有一个理解 C# 的代码库,每个想要在代码上构建工具的人都可以共享!客户价值将来自可用工具的增加,特别是现有工具的质量。我们将把所有语言的正确性和性能要求放在一个代码库上,并花费一次精力来使其具有出色的质量和巨大的多功能性。我们将构建一个语言引擎!一个统一的、公共的 API 到 C# 代码:我们将重新定义“编译器”的含义。

        当然,一旦你为广泛的C#社区构建了一个API,它应该是一个.NET API,用C#实现,这有点麻烦。因此,在 C# 中“引导”C# 的旧梦想几乎是一个偶然的附带好处。

因此,Roslyn 诞生于一种开放的心态:共享 C# 的内部工作原理,供全世界以编程方式使用。这本身就是在仍然普遍封闭的文化中迈出的大胆一步。

        R因此,oslyn 诞生于一种开放的心态:共享 C# 语言的内部工作原理,供全世界以编程方式使用。这本身就是一个大胆的主张,在当时仍然普遍封闭的文化中Microsoft:我们会免费分享这些知识产权吗?我们会授权不是我们的工具制造商更好地与我们竞争吗?

        在这里为我们赢得胜利的论点是关于加强生态系统并成为地球上最好的工具语言。它们是关于 C# 和 .NET 的长期增长,而不是短期货币化和Microsoft资产保护。因此,即使没有提到开源,签署Roslyn项目的成本和风险对Microsoft来说也是一大而大胆的一步。

        当然,你不只是构建这样的东西。Roslyn 的愿景雄心勃勃,也充满了技术挑战,我们花了五年时间才实现它。但那是另一天的故事了。

自从该项目在2009年认真启动以来,我们就有使我们的编译器开源的愿景,但Microsoft还没有准备好。

        F或者大多数时候我们在构建初始版本,Roslyn 仍然是一个闭源项目。自从该项目在2009年认真启动以来,我们就有使我们的编译器开源的愿景,但Microsoft还没有准备好。私下开发和围绕原始代码申请专利的文化代表了Microsoft自 1970 年代以来的工作方式——虽然变化正在酝酿之中,但它的发生速度比我们团队希望的要慢。

        事实上,有一段时间感觉公司正朝着完全相反的方向发展。

        Windows 8项目几乎接管了整个公司。凭借其新的编程模型,它的触角深入到开发人员工具和语言团队中,一切都被极端保密,不仅对外部,甚至在公司内部。举个例子,我们当时开发的异步功能是与 Windows 8 编程模型协调和纠缠在一起的,我甚至不敢在内部发布它的设计笔记,生怕不小心泄露了有关 Windows 8 的信息,给自己惹上麻烦!这为创新创造了一个可怕的气候,对于我们开源C#编译器的希望来说,这当然不是好兆头。

        E然而,在Windows 8运行完之后,该公司开始转型并找到了新的方向,走向新的领导层和截然不同的核心理念;我们今天所知道Microsoft。开源运动现在迅速开始在Microsoft内部扎根。

        F# 已于 2010 年发布,具有开源许可证和自己的基金会 - F# 软件基金会。围绕它成长的充满活力的社区很快成为我们所有人羡慕的对象。我们的团队大力推动 Roslyn 获得开源生产许可证,最终出现了全公司范围的基础设施,使之成为现实。

        到2012年,Microsoft创建了Microsoft开放技术;一个专注于开源项目的组织。Roslyn 转到Microsoft开放技术公司,并正式成为开源。它是一个很好的候选者:开发资源都是内部的和众所周知的,项目本身是独立的,没有很多可能造成许可冲突的依赖关系。

三、Roslyn横空问世

        2014 年 3 月,在旧金山举行的 Microsoft “Build”开发者活动中,Anders Hejlsberg 展示了 Roslyn 作为一个开源项目,Roslyn 于 2 月 0 日通过 CodePlex(Microsoft 年退役的开源托管平台)在 Apache <>.<> 许可下发布。

【C#】微软的Roslyn 是个啥?,C#栏目,c#,开发语言

        Project Roslyn in CodePlex under Microsoft Open Tech

        与此同时,.NET Foundation被宣布为包括Roslyn在内的.NET项目的所在地。

        在户外呼吸着新鲜空气!即使我们开始从 CodePlex 的开放性中获益,Microsoft剩下的程序开源障碍也得到了理顺,今天开源是我们在许多团队中工作方式中直接且不可或缺的一部分。

我们不再将 GitHub 视为发布场所——它只是我们工作的地方。

        在其他方面,公司也意识到我们不需要控制一切。很明显,CodePlex 没有充分的理由出现在世界上,Roslyn 加入了其他项目,从 CodePlex 迁移到 GitHub,当时GitHub 实际上是开源项目的大本营。不仅源代码,而且构建它的过程都在 GitHub 中:我们不把它当作一个发布场所——它只是我们工作的地方。

【C#】微软的Roslyn 是个啥?,C#栏目,c#,开发语言

        罗斯林今天在 GitHub 上

        C# 语言设计和编译器实现现在是完全开放的流程,有很多非Microsoft参与,包括由外部贡献者构建的整个语言功能。C# 的价值在于屋顶,不仅通过贡献功能和错误修复来扩展工作量,还通过开源提供的即时每日反馈循环获得的洞察力和课程更正。

        这是一段漫长而狂野的旅程,对我来说,这象征着Microsoft在过去十年中经历的巨大变化。Roslyn的掘金始于黑暗,在开放的想法上成长,并通过开源的力量在今天爆发出一百万种不同的用途。文章来源地址https://www.toymoban.com/news/detail-606531.html

到了这里,关于【C#】微软的Roslyn 是个啥?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • socket 到底是个啥

      哈喽大家好,我是咸鱼   我相信大家在面试过程中或多或少都会被问到这样一个问题: 你能解释一下什么是 socket 吗   我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通信连接,socket 的表现方式由四元组(ip地址:端口)组成   那么今

    2023年04月13日
    浏览(34)
  • OCP3.0是个啥?

    1、OCP NIC 3.0规范是OCP Mezz 2.0 设计规范的升级。 2、OCP NIC 3.0规范支持两种基本卡尺寸:小尺寸Small Form Factor(SFF)和大尺寸Large Form Factor(LFF)。 3、SFF最多支持16 lane PCIe ,而LFF最多支持32 lane PCIe。 与OCP Mezz 2.0设计规范相比,更新的OCP网卡3.0规范为网卡和系统供应商提供更广阔的解决

    2024年02月05日
    浏览(37)
  • Web3到底是个啥?

    Web3是近两年来科技领域最火热的概念之一,但是目前对于Web3的定义却仍然没有形成标准答案,相当多对于Web3的理解,都是建立在虚拟货币行业(即俗称的“币圈”)的逻辑基础之上的。 区块链服务网络(BSN)的核心理念,是在互联网上推动建立一个新的公共层,服务于各行

    2024年02月14日
    浏览(38)
  • ​Web3到底是个啥?

    Web3到底是个啥? Web3是近两年来科技领域最火热的概念之一,但是目前对于Web3的定义却仍然没有形成标准答案,相当多对于Web3的理解,都是建立在虚拟货币行业(即俗称的“币圈”)的逻辑基础之上的。 区块链服务网络(BSN)的核心理念,是在互联网上推动建立一个新的公

    2024年02月14日
    浏览(41)
  • 了解 Langchain️是个啥?:第 1 部分

            在日常生活中,我们主要致力于构建端到端的应用程序。我们可以使用许多自动 ML 平台和 CI/CD 管道来自动化 ml 管道。我们还有像Roboflow和Andrew N.G.的登陆AI这样的工具来自动化或创建端到端的计算机视觉应用程序。         如果我们想在OpenAI或拥抱脸的帮助下

    2024年02月13日
    浏览(54)
  • 液体神经网络:LNN是个啥概念?

            在在人工智能领域,神经网络已被证明是解决复杂问题的非常强大的工具。多年来,研究人员不断寻求创新方法来提高其性能并扩展其能力。其中一种方法是液体神经网络(LNN)的概念,这是一个利用动态计算功能的迷人框架。在本文中,我们将深入研究 LNN 的世

    2024年02月13日
    浏览(57)
  • ChatGPT到底是个啥 - 它甚至会和狗说话

    写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二

    2024年02月03日
    浏览(48)
  • AIGC到底是个啥? AI和AIGC的区别有哪些

      说来说去,到底什么是AIGC呢?AIGC是人工智能生成内容的缩写,是一种基于生成对抗网络(GAN)、大型预训练模型等人工智能技术的方法,通过对已有数据进行学习和模式识别,以适当的泛化能力生成相关内容的技术,AIGC的应用领域有很多例如,AIGC可以用于自动生成新闻、

    2024年02月08日
    浏览(44)
  • 越来越火的Serverless(无服务器计算),到底是个啥?

    今天这篇文章,我们来聊一个云计算领域的热门概念——Serverless。 到底什么是Serverless? 英语好的童鞋,可能一眼就看出来了,Serverless是由Server和less两个词根组成的词。从字面上理解,就是“无服务器”。 行业通常所说的Serverless,主要是指 “无服务器计算(Serverless Comp

    2024年02月03日
    浏览(46)
  • 云原生到底是个啥玩意?从云端降临的超级技术:云原生

    目录 福利:文末分享云原生相关全套资料哦 一、云计算?云原生? 二、云原生带来什么好处 7个字:隔离、弹性、自动化。 三、云原生的基础知识 四、云原生中最重要的概念 1、虚机 2、容器 3、容器编排 4、VPC 5、微服务(Microservices) 6、服务网格(Service Mesh) 7、无服务器

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包