微软刚刚将其 Windows 系统对 Visual Basic 6 程序的完全兼容支持延长到了 Windows 8 的整个产品周期. Visual Basic 6 最早发售于 1998 年, 所以现在来看 VB6 程序将至少被支持 24 年. 相比之下 .NET Framework 1.1 (2002 年发行) 则仅仅被支持了 7 年, 到了 Windows 7 (2009) 便被微软抛弃了. 我的一个学生曾经开玩笑说过 Visual Basic 6 就像 Windows 环境中“杀不死的小强”. 实际上这个比喻不无道理 - 蟑螂生存的秘诀在于它的简单, 它们所做的所有事情就是在自己占据的角落里坚持活下去, 除此之外什么都没有. 同样, Visual Basic 6 也满足了开发者为它预设的市场的所有需求——允许经验不多的程序员快速开发简单的程序. Visual Basic 从未被当作一种提供给专业程序员开发复杂程序的语言.

Visual Basic 6 实现其价值的方式是将 Windows 的各种复杂之处简化, 因此简单的工作对于 VB 来说非常容易完成. 不过另一方面, 相对复杂的工作比如使用线程则基本是不可能的. 对我来说有一个经验规则很有用:VB 中, 用了十分钟实现不了的功能对我来说肯定是没法实现的. 此外 VB 成功的另一个关键之处是由于其提供的功能较少, 所以所需的学习时间和学习难度也较低. 举个例子说, 就是学习开巴士需要的时间显然比学习怎么开战斗机少, 而成为一个优秀的 Visual Basic 程序员需要的时间也显然比成为一个优秀的 C++ 程序员少; 而当时 Visual Basic 6 面对的主要同类对手就是 C++.

不过到了 Visual Basic .NET 时代微软显然没有意识到这些. 当 VB .NET 成为一个所谓“全功能语言”的时候, 微软的开发者为它加上了 C# 所拥有的所有高级和复杂的功能 —— 线程, 多态继承, 等等. 也因此 VB .NET 变成了一个和 C# 要求相同的技能, 相同的学习过程和给人完全相同体验的编程语言. 当然这并不完全是微软的判断失误: 微软员工其实做了他们认为 Visual Basic 开发者们要求他们做的事情, 满足了 VB6 用户的要求.

但对于 Visual Basic 来说, 用“沉默的大多数”来描述大部分开发者非常合适. 几乎所有的 Visual Basic 6 用户都对现在的产品非常满意——沿用我们前面所使用的比喻, 他们很愿意只做公交司机: 每天五点下班回家, 不用加班到半夜; 周末在家和家人在一起而不用回到办公室; 晚上和配偶在一起, 而不是坐在办公室里带着充满血丝的眼睛连夜编程, 早上吃着昨天剩下的冷饭. 他们并不在意 Visual Basic 6 既没有提供运算符重载也不提供完整的面向对象模型, 所以他们没有抱怨什么.

而微软听到的声音则来自 3% 愿意成为战斗机驾驶员的 Visual Basic 6 公交司机——他们在闲暇时间参加业内会议, 在网上论坛中提问, 给各种关于 VB 的文章写自己的回复. 而也是这些人不能满足只在幻想中发射导弹击毁刚刚别了他们巴士的轿车——他们真的去向微软要求新的巴士必须带着和战斗机一样的加力燃烧室, 两边挂着格斗导弹, 车尾带上干扰弹发射器, 驾驶座还要有平视显示器. 因为他们是 Visual Basic 开发者中喊话声音最大的一群, 所以微软照做了.

于是到最后, 将 Visual Basic .NET 交给熟悉了 Visual Basic 6 的大部分程序员就如同人施放魔法将一只宠物狗仅仅在生理上变成了丛林狼, 然后便对着它大喊“去林子里抓只羊回来!”适应了宠物狗生活的狼显然会这么想“哈? 您没事儿吧? 我哪儿也不去就在这儿带着等你给我开罐头.”于是 Visual Basic 6 程序员依然如故.

当然 Visual Basic 6 也并非完美无缺. 最好的例子可能就是 On Error Resume Next 了——在工作的时候某一步执行出问题了, 所以我们继续按原计划该干什么干什么然后看看结果什么样? 想想都知道这明显不合理. 然而我们仍然应该记住由技能较低 (所以便宜) 的开发人员对功能有限 (便宜) 的程序进行快速 (便宜) 开发能解决很大一部分实际生产中遇到的问题, 而 Visual Basic 6 是这种情景中一种优秀的工具.

Visual Basic 6 解决的问题并不会凭空消失, 所以到微软提供一种可以替代 VB6 的工具前, Windows 系统中的小强还是会继续顽强的生存下去. 我愿意赌五块钱, 就算到了 Windows 9 还是 Windows 10, 微软也还是必须提供 Visual Basic 兼容.

原文: The Silent Majority: Why Visual Basic 6 Still Thrives
         http://msdn.microsoft.com/en-us/magazine/jj133828.aspx


相关VB文章推荐:


★Visual Basic 十年风云

★微软 Small Basic 简体中文版 已经发布了

★VB:如何去优化你的程序

★vb高效编程(优化)

★编写高质量的VB代码

★VB中的指针技术

★VB界面设计与测试规则

★ASCII码表0-255完整版 附详细注释

★VB的KeyAscii

★如何去优化你的VB程序1

★如何去优化你的VB程序2

★如何去优化你的VB程序3

★Visual Basic编程常见问题及解答(1)

★Visual Basic编程常见问题及解答(2)

★Visual Basic编程常见问题及解答(3)

★在vb中使用Iphlpapi.dll获取网络信息(上)

★在vb中使用Iphlpapi.dll获取网络信息(下)


更多精彩>>>

微软公告:Visual Basic 6 完全兼容 Windows 8 的整个产品周期相关推荐

  1. 微软放弃继续开发 Visual Basic !

    作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 近日,微软宣布将在即将推出的 .NET 5 中支持 Visual Basic,并扩大该编程语言支持的应用程序类型,以此帮助 VB 开发者迁 ...

  2. 苹果或已放弃3月发布廉价新iPhone;贾跃亭回应家人巨额索赔;微软不再继续开发 Visual Basic | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  3. Visual Basic.NET中访问数据的方法(zz)

    http://info.shangdu.com/new/2003-5-8/200358113624.htm        Visual Basic.NET是微软对Visual Basic语言进行的升级 ...

  4. Visual Basic十年风云

    Visual Basic十年风云 Visual Basic十年风云 我从来没有想到过,撰写这篇文章需要十年的光阴 有时我自清晨的睡梦中醒来,望着窗外高楼间透露的微稀曙光 耳畔都不免响起那些岁月烙印后的 ...

  5. Visual Basic编程语言

    1991年,美国微软公司推出了Visual Basic 1.0(可简称VB),1992年,Microsoft公司又推出 V<wbr></wbr>B<wbr>< ...

  6. Visual Basic 6 何以长盛不衰?

    微软刚刚将其 Windows 系统对 Visual Basic 6 程序的完全兼容支持延长到了 Windows 8 的整个产品周期.  Visual Basic 6 最早发售于 1998 年, 所以现 ...

  7. 09年3月编程语言排行榜:Visual Basic与PHP的暗战

    TIOBE近日公布了最新一期的编程语言排行榜,除Java.C.C++依旧强势占领前三甲的位置外,前十名的其他语言均有小幅波动.本期榜单中,VB在坚守了两个月第四名的位置后,本期下降一位,与上期排名第五 ...

  8. 将Visual Basic 6.0程序转换到Visual Basic.NET

    从 Visual Basic 6.0 到 Visual Basic.NET 的转换 Microsoft Visual Basic.NET 是 Microsoft Visual Basic© 的后续版本 ...

  9. Visual Basic 兴衰记

    这是一篇暴露年龄的文章.为什么这么说?因为现在年轻的程序员可能没有接触过当年红极一时的 Visual Basic.28 年前的 1991 年 4 月,Microsoft 发布了 Visual Basi ...

最新文章

  1. 不愧是摸鱼高手Python matplotlib 绘制频谱图都会,能怪老板不管
  2. Console命令详解,让调试js代码变得更简单
  3. Hyper-V 2016 系列教程15 Hyper-V Cmdlets PowerShell 命令提示符
  4. linux i2c子系统入口,I2C子系统1 - ARM_Linuxx的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. Android 启动分析 1
  6. linux清空redis命令,使用Linux管道批量删除Redis的key
  7. myeclipse创建项目 我们的第一个代码
  8. 全国计算机二级c语言和江苏教材一样吗,计算机二级省级和全国计算机二级考试内容一样吗...
  9. 多线程依次接收信息并发送
  10. 使用 IntraWeb (40) - 自定义 Session 数据
  11. Guava的Optional的操作
  12. MobaXterm怎么复制粘贴以及多窗口执行
  13. [译]响应式编程笔记一:响应式总览
  14. 学习docker on windows (1): 为什么要使用docker
  15. 常用头文件和一些简单的函数
  16. c语言二级吧,c语言二级考试
  17. SWARM-BZZ的联合曲线(Bonding Curve)
  18. 小米pro15拆机_小米笔记本Pro 15增强版拆解:重新定义高质低价
  19. 初始Ext.net(二)
  20. mc服务器常用指令_掌控MC服务器 我的世界服务器指令大全

热门文章

  1. 百度拥抱年轻人,53 岁张亚勤成退休第一人!
  2. 在使用 Go 两年之后,我又转回 PHP 了
  3. 未来十年,小程序将消失!
  4. TIOBE 5 月编程语言排行榜:暴涨的 C,逆袭的 Scala
  5. STM32_GPIO口
  6. inotify+rsync实时双向同步文件
  7. asp网站服务器软件,asp服务器软件
  8. python中两个文件如何互相传参_argparse模块如何在jupyter notebook中用于传参?
  9. mendeley 笔记_免费文献管理器 Mendeley,其实比你想象的好用!
  10. 返回值带头信息 php_php与Redis实现分布式锁