zoukankan      html  css  js  c++  java
  • VB 不应该是这副模样出现

    和同时代的其它语言比,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,大有可为。

  • 相关阅读:
    jdbc连接数据库(mysql,sqlserver,oracle)
    简单粗暴将sqlserver表以及数据迁移到oracle
    LXD 2.0 系列(五):镜像管理
    LXD 2.0 系列(十二):调试,及给 LXD 做贡献
    LXD 2.0 系列(七):LXD 中的 Docker
    LXD 2.0 系列(四):资源控制
    LXD 2.0 系列(三):你的第一个 LXD 容器
    LXD 2.0 系列(二):安装与配置
    LXD 2.0 系列(一):LXD 入门
    Debian-linux 网卡配置
  • 原文地址:https://www.cnblogs.com/inshua/p/13970984.html
Copyright © 2011-2022 走看看