【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

VB.NET 路在何方?

  • 2009-06-24
  • 本文字数:1583 字

    阅读完需:约 5 分钟

很多人想知道微软为何重视 C#而轻视 VB.NET,为何 VB.NET 开发者和 C#开发者同工不同酬,VB.NET 开发者的未来在哪里。.NET 管理语言组的项目经理 Lisa Feigenbaum 在播客上向VB.NET 社区保证——VB 的未来依旧是光明灿烂的。

Lisa 解释了为何大家对 VB.NET 和 C#有不同的理解:首先这是由微软的策略所决定的。微软可不仅仅想在 CLR 上面运行两套语法完全不同的语言,公司希望这两种语言能够各司其职,因此在.NET 的世界中,这两种语言的发展路线是截然不同的。微软发布的大多数文档都包含了丰富的 C#示例,与此相反,VB.NET 的示例数量就大打折扣了,因此大家都觉得 VB.NET 并不受宠,有些穷途末路了。

根据 Lisa 所述,一开始微软想在这两种语言中分别加入不同的特性以便让他们各取所长,但 VB.NET 用户一次又一次地要求微软向 VB.NET 中加入 C#特性,同时 C#用户也想在 C#中加入 VB.NET 特性,这么做的直接后果就是微软决定同步发展这两种语言。同时 VB.NET 开发者的数量要比 C#开发者多一些,因此微软并不会扼杀 VB.NET,这也不是公司的意愿。当 18 个月前 VB.NET 与 C#设计团队合并在一起以共同推进语言的发展时,微软的这项承诺也终于付诸实践了。

C#的首席架构师 Anders Hejlsberg 检视了这两个语言的发展历程得出这样一个结论:两种语言都在不断发展。每当 Anders 决定两种语言要实现的某个新特性后,VB.NET 与 C#开发团队就分别钻进了各自的房间讨论如何根据相应语言的语法和整体设计原则来实现这个新特性。这么做会导致两种后果:其一,两种语言增加同样的特性集,其二,每种语言都保持自己的个性而不管另一种语言到底是怎么做的。这就确保了 VB.NET 并不会被 C#所蚕食。这两种语言的同化性越来越明显了。到目前为止,C#能做而 VB.NET 不能做的东西就剩下 XNA 游戏了,因为 VB.NET 没有对应的项目模板。然而微软希望填平语言间的鸿沟,因此这两种语言最终将走向大同世界。

我们将在下个版本的 Visual Studio 中看到两个语言设计小组合并后的努力成果。VS 最初是用 C 和 C++ 开发的,但 VS 2010 的编辑器和编译器将包含更多的托管代码,力度也是史上最强的,这意味着将使用更多的 C#和 VB.NET 代码。VS 和 Office 并不会一夜间都变成托管代码,因为还有不少遗留代码尚存,但新写的大部分都是托管代码。

一些调查机构表示 VB.NET 与 C#开发者同工不同酬,前者薪酬要比后者少 10-15%,我们认为这是由于大家对 VB.NET 的认识偏差造成的,这种观念已经根深蒂固了,因此还需加以时日才能让大家看到这两种语言其实是一样的,他们都是微软的亲生骨肉。


以下精彩点评来自 InfoQ 英文站

1. Michael Hedgpeth 说到:我有个朋友过去从事 VB 开发,现在转到了 C#上。他跟我说:你知道 VB 和 C#程序员的价码差多少吗?整整 $10,000 大洋。我认为只要这种情况一直持续下去,没人不去选择 C#。这不光是语言问题,而是钱啊。

2. Al Tenhundfeld 说到:我知道不同的语言有不同的特性,不仅是框架本身,对社区来说这也是好事。然而还有其他一些因素值得我们深思。两种语言对工具和 RAD 的支持力度一样么?微软真的做到不偏不倚了么?举个例子吧,两种语言都有同样的 GUI 向导么,两种语言对 SharePoint 开发的支持一样么,凡此种种。当然,我并不是强调哪种语言适合做上面这些事,我仅仅想说语言特性只是成功语言的一部分,而不是全部,尤其在微软的世界里更是如此。

我由衷希望这两种语言能够长久共存,他们分别适合不同的开发者。VB.NET 适合于从 VB6 和 MS Office 编程,如 Access 或 Excel 中的 VBA 脚本编程转过来的人。C#适合于从 Java 阵营转过来的人,同样也适合于那些没有学过.NET 而了解其他语言的人。我自己就是从 VB 转到了.NET 阵营的,但从 2.0 开始,特别是 3.5,我发现 C#的表述性更强,语法更加整洁。与此相比,VB.NET 就有些相形见绌了。

查看英文原文: Is There a Future for VB.NET?

2009-06-24 01:242034
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

西柚子

架构实战营-模块三作业

🐢先生

架构实战营

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

威廉META

Java 数据类型(全网最全)

kcodez

Java 后端

IO:阻塞和非阻塞、同步和异步

小小怪下士

Java 程序员 io 异步 阻塞

仅一小时点赞破万!GitHub爆赞的Spring Boot最佳实践

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

EasyRecovery16操作简单的电脑数据恢复软件

茶色酒

EasyRecovery16

EasyRecovery Photo16最新版本有哪些新功能?

茶色酒

EasyRecovery Photo16

速来~与 Werner Vogels 博士一起探索敏捷性与创新速度一起提升的秘方

亚马逊云科技 (Amazon Web Services)

新时代的技术领导力

agnostic

领导力

for循环中声明变量的一个问题回顾

老王同学

c++

PHP Windows 下 XAMPP 的 xdebug 配置

HoneyMoose

CorelDRAW2023序列号及安装下载教程

茶色酒

CorelDraw2023

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

鳄鱼视界

数字孪生在智慧物流中的应用价值

申扬科技

智慧物流 数字孪生

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

EOSdreamer111

Python 数学练习题(一)

漫步桔田

阿里巴巴内网Java面试2000题解析(2023最新版)

架构师之道

编程 java面试

Python 基础练习题(四)

漫步桔田

极客时间架构训练营模块八作业-消息队列存储消息数据的 MySQL 表格

张Dave

引领下一代操作系统技术方向 第一届OpenHarmony技术峰会成功召开

Geek_2d6073

2023-02-25:请用go语言调用ffmpeg,解码mp4文件并保存为YUV420SP格式文件,YUV420P不要转换成YUV420SP。

福大大架构师每日一题

golang ffmpeg 福大大

EasyRecovery16和谐版手机数据恢复软件下载

茶色酒

EasyRecovery16

电影排行榜(requests + bs4 & scrapy)

漫步桔田

刚插上网线,电脑怎么知道自己的IP是什么?

做梦都在改BUG

精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南

洛神灬殇

数据结构 延时队列 算法框架 DelayedQueue 时间轮(TimeWheel)

Python:Excel自动化实践入门篇 甲【送图书门票】

eng八戒

python excel

Python 数学练习题(二)

漫步桔田

今天终于知道 Redis 为什么要用跳跃表了

做梦都在改BUG

Java 数据库 redis 缓存 跳跃表

人肉智能#003:为什么 Instagram 曾经值得尊敬

光毅

facebook Instagram

Zebec社区上线ZIP-2(地平线升级行动)提案,海量激励将被释放

股市老人

VB.NET路在何方?_.NET_Abel Avram_InfoQ精选文章