写点什么

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

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

关注

评论

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

CSS常用样式——绘制单(双)箭头的多种方法(2)

程序员学院

CSS html 程序员

使用开源软件构建工业互联网的平台

刘旭东

工业互联网 Odoo thingsboard

边缘计算,如何啃下集群管理这块硬骨头?

BoCloud博云

云计算 容器 边缘计算 PaaS 博云

Docker 容器编排利器 Docker Compose

哈喽沃德先生

Docker 容器 微服务 Docker-compose

新基建夯实粤港澳大湾区高质量发展基础

CECBC

区块链 人工智能 大数据

去中心化交易所搭建,虚拟币去中心化交易系统

交易所开发

【万字长文】探讨可信构架之道

华为云开发者联盟

架构 服务端

模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的

Java架构师迁哥

物联网通信技术最全科普!你一定要了解的NB-IoT

华为云开发者联盟

物联网

[翻译]The Go scheduler[Go调度]

卓丁

Go scheduler Go 语言

MySQL高性能架构设计原则

洛神灬殇

LeetCode题解:225. 用队列实现栈,两个队列,压入 -O(1), 弹出 -O(n),JavaScript,详细注释

Lee Chen

大前端 LeetCode

呕心沥血,整理200+最新面试题,面试之前看一下,事半功倍

小Q

Java 学习 程序员 架构 面试

20张图,大学四年都没整明白的操作系统就这么学会了

小Q

Java 程序员 架构 操作系统

传统产业数字化转型的思考与建议

CECBC

经济转型 企业经济

教师节特别活动:第四范式多项自研技术及其应用实践分享

天枢数智运营

人工智能 推荐系统 第四范式 个性化推荐

当心这些“坑”!阿里云服务器部署前后端分离项目

麦洛

nginx 前后端分离 跨域

未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~

程序员小富

Java RabbitMQ mqtt

大厂运维必备技能:PB级数据仓库性能调优

华为云开发者联盟

架构 数据

协同新机遇:让研发敏捷起来

人称T客

未来经济 数字优先 | 大数据专场

腾讯云大数据

大数据

indexOf原理,Java,javascript,python实现

叫练

算法

Redis 哨兵模式

是老郭啊

redis redis哨兵模式 redis哨兵 redis哨兵集群

XSKY ClickHouse如何实现存算分离

XSKY星辰天合

[翻译]Go Concurrency Patterns[Go 并发模式]

卓丁

Rob Pike Go Concurrency Patterns Concurrency Go 语言

深度解析!--阿里开源分布式事务框架Seata

攀岩飞鱼

分布式 分布式事务 微服务 分布式锁 Seate

The Go Blog-Article index

卓丁

云图说 | GPU共享型AI容器,让AI开发更普及

华为云开发者联盟

AI 容器

合约跟单app,永续合约交易所带单交易软件

Polkadot初识,不止于跨链

QTech

polkadot 跨链

一步搞定任意圆角背景

mengxn

android xml 圆角

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