【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:242036
用户头像

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

关注

评论

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

云效DevOps全家桶评测征集令重磅来袭!免费使用云效全套功能

阿里云云效

云计算 阿里云 DevOps 云原生

java培训Redis高频面试考点

@零度

Java redis

春招进行时!当代大学生求职行为大赏

易观分析

求职 招聘 春招

Redis集群架构剖析(3):集群处理redis-cli指令

非晓为骁

redis 架构 分布式 redis cluster

《软件开发的201个原则》思考:4. 高质量软件是可以实现的

非晓为骁

个人成长 软件工程 软件开发

聊聊 C 语言和 ABAP 这两门编程语言的关系

Jerry Wang

c++ 编程语言 C语言 abap 3月月更

小程序电商微服务设计

唐尤华

架构实战营

DPU芯片头部企业云豹智能加入龙蜥社区,共同推动新一代数据中心基础设施蓬勃发展

OpenAnolis小助手

云计算 开源 芯片 龙蜥社区

使用APICloud AVM多端框架开发仿微信通讯录功能

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 avm.js

大数据培训十大Hive调优技巧

@零度

大数据 hive调优

公有云RDS太贵?基于ECS构建的多云RDS服务可降低近半成本

沃趣科技

数据库 公有云 RDS 云数据库RDS for MySQL 云数据库Redis

最好的 6 个 React Table 组件详细亲测推荐

蒋川

React

Jetpack Compose之 在Compose中使用Navigation导航

黄林晴

android Compose JetPack

如何消除代码山中那一大坨参数列表

华为云开发者联盟

代码 软件设计 参数 全局变量 参数列表

presto是如何保证作业内存不会发生冲突和溢出

华为云开发者联盟

内存 presto 内存计算引擎 System Pool general Pool

一文搞定 Flutter 底部弹窗实现

岛上码农

flutter 跨平台 ios开发 Android开发 3月月更

Redis:在windows环境安装Redis

喀拉峻

redis

昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

华为云开发者联盟

CVPR CANN 图像生成 昇腾AI处理器 图像布局

Rust的Cow类型

Shine

rust cow

IOS技术分享| ARCallPlus 开源项目(一)

anyRTC开发者

ios 移动开发 语音通话 视频通话 呼叫邀请

玩转OpenMLDB社区,四张角色卡待解锁

第四范式开发者社区

人工智能 数据库 开源 贡献者 特征平台

如何在新公司快速落地

Hockor

WebAssembly技术_JS调用C函数示例_传递参数、方法导出

DS小龙哥

webassembly 3月月更

深入浅出 Vue3 核心知识点

百瓶技术

Vue 前端 VUE 3.0 源码 vue3.0

5G 和 Wi-Fi 市场与技术的一些思考系列之二

李伟-晨泳

FAQ(常见问题)页面的编写技巧

小炮

企业 常见问题 客户服务

焕然一新的 Vue 3 中文文档来了

CRMEB

☕️从Java8到Java17的新特性(一):Java8 的新特性

看山

Java java8

HertzBeat赫兹节拍 v1.0.beta.6 发布,Linux监控来啦

TanCloud探云

开源 APM 监控 告警

你了解部署流水线吗?

华为云开发者联盟

自动化 软件开发 devcloud 部署流水线 流水线

RocketMQ的tag还有这个“坑”!

中间件兴趣圈

RocketMQ tag 消息过滤

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