草庐IT

微软再定语言策略:VB明升暗降,C#当先!

壹舟 2023-03-28 原文
作者 | Tim Anderson 

策划 | 壹舟

微软终于更新.NET编程语言策略了。这是自2017年以来首次更新!最显著的变化是Visual Basic(VB)的地位进一步削弱,尽管该公司承诺将继续“致力于Visual Basic”。

2月6日,首席项目经理凯瑟琳·多拉德(Kathleen Dollard)的帖子几乎没有透露任何信息,她表示“你不会发现大的变化”,并参考了其他文件细节。

1、C# :继续创新特别承诺向后兼容,但开发者有话说

在三种.NET语言中,C#是目前最流行的语言,也是编写大多数框架和库的语言。微软承诺继续创新,同时特别承诺向后兼容性,一位开发人员表示,“有必要限制向后兼容的水平。例如,不必继续支持非通用集合。”

微软项目经理伊莫·兰德沃斯(Immo Landwerth)很快做出了回应,表示“我们永远不会做出如此有影响力的突破性改变”,并对Windows 8实验添加了一个有趣的视角。他说:“我们试图从Windows 8时代的.NET重新开始,但事实证明它完全行不通。”。

2、金融界流行的F# :  与C#协同工作

F#是第二种语言,一种在金融界很流行的函数语言。微软的战略是“发展F#,使其与C#协同工作,并利用新的.NET运行时和库来改进。”还有人提到需要“依靠社区提供重要的库、开发人员工具和工作负载支持。”

3、尴尬的VB:尽一切必要努力使其成为.NET生态系统的一流公民

对于微软来说,尴尬的是第三个,Visual Basic。2017年,C#首席设计师Mads Torgersen的一篇博客文章阐述了当时的.NET语言策略,这篇文章比前文Dollard的新文章写得更为详细、更有见解。

Torgersen表示,大多数VB开发人员“正在使用WinForms在Windows中构建业务应用程序,少数人正在构建网站,同时主要使用ASP.NET Web窗体。”WinForms和Web窗体都是旧框架,这表明VB程序员对最新技术的兴趣不如C#或F#开发人员。

Torgersen还引用了一项2017年的Stack Overflow调查,该调查显示VB是开发人员必须使用的“最可怕”的语言,尽管正如他所补充的,目前还不清楚这主要是VB.NET还是旧的VB。但无论如何,VB仍然是Microsoft Office的宏语言。

题外话:五年后,在2022年StackOverflow的调查中,对VB的唯一提及是“VBA”,这是一种宏语言,它仅排在倒数第三位,表的底部被MATLAB占据。C排名第十,F排名第17。

微软的VB策略似乎有点改变。2017年,Torgersen承诺该团队将“尽一切必要努力,使其成为.NET生态系统的一流公民”。新策略将VB描述为一种“倾向于清晰而非简洁”的语言,并表示,当C#或.NET运行时获得新功能时,VB将采用“consumption-only”的方法,并且“我们不打算将Visual Basic扩展到新的工作负载”

多年来的事实是:对于那些想要从.NET中获得最佳效果的人来说,VB并不是最好的语言。这一点早在本世纪初.NET首次推出时,就板上钉钉了。相较而言,C#是.NET的新语言;而VB却是为.NET而重新设计的,它总是很难让使用者满意,甚至不能满足当时的VB铁杆粉丝(虽然他们中的许多人都发誓要继续使用VB6)。

微软很乐于宣传公民开发者的重要性,毕竟VB的简单英语语法似乎很适合用来做到这一点。遗憾的是,微软未能以一种能够使其对商业开发者,更具吸引力的方式对VB进行改进。

4、写在最后

.NET作为一个面向未来的高度集成的技术平台,凝结了无数微软人的心血,当然移动时代的兴起,更多的开发者从迈向更适合移动端的语言。但这并不妨碍微软的后发优势。

此次语言策略的变更,可以看出,微软正在重新赋予VB的语言地位,致力于让其成为一种大众开发者的语言。而C#、F#正在成为持续创新的重心。

原文链接:https://devclass.com/2023/02/07/microsoft-updates-its-net-language-strategy-keeps-visual-basic-alive-but-near-frozen/

有关微软再定语言策略:VB明升暗降,C#当先!的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  4. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  5. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  6. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  7. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  8. ruby - 如何保持我不常用的编程语言技能 - 2

    关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭11年前。Improvethisquestion我不经常使用ruby​​-通常它加起来相当于每两个月或更长时间编写一次脚本。我的大部分编程都是使用C++进行的,这与ruby​​有很大不同。由于我与ruby​​之间的差距如此之大,我总是忘记语言的基本方面(比如解析文本文件和其他简单的东西)。我想每天练习一些基本的东西,我想知道是否有一些我可以订阅的网站,并且会向我发送当天的Ruby问题或类似的东西。有人知道这样的站点/Internet服务吗?

  9. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

  10. ruby-on-rails - 如何通过 URL 更改语言环境? - 2

    在我的双语Rails4应用程序中,我有一个像这样的LocalesController:classLocalesController用户可以通过此表单更改其语言环境:deflocale_switcherform_tagurl_for(:controller=>'locales',:action=>'change_locale'),:method=>'get',:id=>'locale_switcher'doselect_tag'set_locale',options_for_select(LANGUAGES,I18n.locale.to_s)end这有效。但是,目前用户无法通过URL更改

随机推荐