和同时代的其它语言比,VB 设计的太烂了,应景之作,充满了各种小聪明。

当时有 JS, 有 python,VB 的设计者不懂参考借鉴,给出的是一个连继承都没有的设计。

VB 的语言设计问题极多,

  • 首选当推没有继承。一个没有继承的语言能干什么呢?缺乏继承,没有包管理,注定它不能走多远。同时代的 JS 都有漂亮而容易实现的 prototype 继承,其它语言也各有特色,VB 可以说起步就落后。
  • 没有继承,因此也没有单根 Object。在多重继承还是单根继承的年代,争议倒是没有了,但没有明智的判断也就没有了优势
  • 靠 Variant 混合值类型和对象类型,导致大量函数参数类型不明
  • 大量依赖语句,继承了BASIC的语句,比如MID语句、文件语句等等
  • 没有结构化错误处理机制。
  • 默认成员导致大量歧义。默认成员这种小聪明理论上很难行得通。
  • 数组和函数共用括号 ()
  • Sub Function 两种过程,SubName args 调用形式存在歧义:a (b), c,你不知道是 a(b)(Missing, c) 还是 a((b),c)
  • Property Get Property Let Property Set

当然,VB也有好的设计,比如WITH。但总体来说这就是一个应景之作,理念不通透,充满了各种投机取巧,和 Java, JS 甚至 python 比都不在一个时代,属于 80 年代的遗迹。

商业公司包装的很好的东西,市面上很流行的东西,不见得就好。

当年如果 VJ 不受诉讼影响继续发展,对于微软来说应该是更光明的场景吧。

另一方面,如果 VB 当时不理睬公司部署去适应 .NET 平台,而是利用自身市场优势,快速梳理迭代,扬弃旧时代的特征,纳入更透彻的理念,可能也可以存活的很好。毕竟当时Java生态也不成熟,浏览器还有 VBS,大有可为。

VB 不应该是这副模样出现的更多相关文章

  1. Git哲学与使用

    -- 故国神游,多情应笑我,早生华发. Git是什么? Git是一个版本控制工具,代码管理工具,团队协作工具.它跟SVN等传统工具实现同样的目的:但从某种程度来说,它更快,更灵活.我想绝大多数读者都已 ...

  2. https原理通俗了解

    摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于" ...

  3. Java课程寒假之回答问题:如何将你的兴趣化为可以立足于社会的资本

    在学校的时候干过几次兼职,算是无聊时候的外快吧,有一次是去辅导机构,在考试期间监考学生,前后大概四个小时,最后拿了四十五并且管了一顿饭,不得不说,小学生是真的皮,考试的时候有的爱讲话,有的是写完之后开 ...

  4. “AS3.0高级动画编程”学习:第二章转向行为(上)

    因为这一章的内容基本上都是涉及向量的,先来一个2D向量类:Vector2D.as (再次强烈建议不熟悉向量运算的童鞋,先回去恶补一下高等数学-07章空间解释几何与向量代数.pdf) 原作者:菩提树下的 ...

  5. 如果这样来理解HTTPS,一篇就够了!

    1.前言 可能有初学者会问,即时通讯应用的通信安全,不就是对Socket长连接进行SSL/TLS加密这些知识吗,干吗要理解HTTPS协议呢. 这其实是个误解:当今主流的移动端IM数据通信,总结下来无外 ...

  6. Vue 2.5 发布了:15篇前端热文回看

    Vue 2.5 发布了:15篇前端热文回看 2017-11-02 前端大全 (点击上方公众号,可快速关注) 本文精选了「前端大全」2017 年 10 月的 15 篇热门文章.其中有职场分享.技术分享和 ...

  7. HTTPS理解

    摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过 ...

  8. 这样理解 HTTPS 更容易(Maybe)

    摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过 ...

  9. 也许,这样理解HTTPS更容易

    http://kb.cnblogs.com/page/563885/ 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文 ...

  10. 也许,这样理解HTTPS更容易(今天看到的, 对https总结最好的一篇)

    摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于" ...

随机推荐

  1. 封神台 SQL注入 靶场 (猫舍)手动注入

    封神台 SQL注入 靶场 (猫舍)手动注入 靶场地址 http://pu2lh35s.ia.aqlab.cn/?id=1 使用脚本 可以直接使用sqlmap脚本 直接 对这个地址进行测试 不过这样实在 ...

  2. 浅析Redis

    浅析Redis 什么是Redis Redis本质上是一个Key-Value类型的内存数据库,整个数据库加载在内存当中操作,定期通过异步操作把数据库中的数据flush到硬盘上进行保存. 因为是纯内存操作 ...

  3. JavaScript网页设计案例

    1.引言 在前端开发中,JavaScript 无疑是一个非常重要的语言.它不仅可以用于表单验证.动态内容更新,还能实现复杂的交互效果和动画.通过 JavaScript,网页变得更加生动和富有互动性.本 ...

  4. 使用sklearn中的Adaboost分类器来实现ORL人脸分类

    使用sklearn中的Adaboost分类器来实现ORL人脸分类 前言:博主上网浏览使用Adaboost实现人脸分类时,发现并没有分类,大部分全都是关于人脸识别检测的,并没有实现对某个人的精准分类(例 ...

  5. 开源 - Ideal库 - 特殊时间扩展方法(三)

    书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法. 01.获取当天的开始时间 当天的开始时间指00:00:00时刻,因此只需要获取DateTime的Date属性只获取时间即可,具体代码如下: ...

  6. k8s集群环境下kubesphere部署

    安装kubernetes 1.环境配置 每个机器使用内网ip互通 每个机器配置自己的hostname,不能用localhost 所有机器均操作 #设置每个机器自己的hostname hostnamec ...

  7. 太强了!14.7K star!Windows系统居然还有开源替代版了?!

    在操作系统的世界里,Windows 系统一直占据着重要的地位.然而,你可能不知道的是,还有一个拥有 14.7K star 的开源替代版 --ReactOS. 1.ReactOS 介绍 ReactOS ...

  8. 使用wxpython开发跨平台桌面应用,设计系统的登录界面

    一般的系统登统界面,设计好看一些,系统会增色不少,而常规的桌面程序,包括Web上的很多界面,都借助于背景图片的效果来增色添彩,本篇随笔介绍基于WxPython来做一个登录界面效果,并对系统登录界面在不 ...

  9. 拯救php性能的神器webman-初入门

    无意间发现的这个神器webman,真是秋名山上的腾源拓海! 该框架是workerman下的一个web开发的生态,我们可以先看看这里workerman的官方网站. workerman早有耳闻,知道它蛮厉 ...

  10. PTA题目集4~6的总结性Blog

    · 前言 本次的三个作业,由答题判题程序- 4.家居强电电路模拟程序- 1.家居强电电路模拟程序 -2组成. 答题判题程序-4是对前三次判题程序的最后升级,设计多个子类继承于基础题类来实现对每种题型的 ...