Visual Basic 6.0:一个比以往任何时候都更强大的巨头
在讨论VB6时,我们应该着眼于现实情况,而不是先入为主的观念。每天都有新的源代码项目在Visual Basic 6.0中创建。本文提议重新将Visual Basic 6.0推向市场,并与Visual Studio系列并行。
介绍
Visual Basic 6.0(简称VB6)于1998年中期上市,它曾是并且仍然是Visual Basic历史上最成功的版本。VB6编译器旨在满足20世纪90年代末慢速处理器(800MHz – 1300MHz)的需求。幸运的是,编译器不会过时(例如,ADA——一个支撑F22战斗机板载设备中的“老”编译器,或者Fortran和COBOL——它们得到了广泛使用)1-3。这让我们得出一个更老的结论,即新不一定更好。
然而,当时VB6的设计师是真正的远见者,他们完成了一项经受住时间考验的不可思议的工作。随着处理器速度的提高,编译器设计师变得越来越粗心,过分高估了硬件的强大。这些坏习惯可能源自3D游戏行业,在这个行业里,游戏的规模几乎总是与它的复杂性和新颖性混淆。
为什么VB6仍然成功?!
VB6与嵌入式机器代码和汇编语言的良好协作并非什么大秘密。VB6高级程序员通常也是高级汇编语言程序员。他们将VB6编程语言推向了顶峰。如今,通过简单地复制粘贴高级程序员为VB6创建的海量函数,中级程序员就可以创建比用C++设计的应用程序运行更快的VB6应用程序(这并非玩笑)。
微软或许应该听听数十万程序员的要求,他们要求将VB6重新推向市场。似乎没有任何其他编程语言比VB6引起了更多的争议,最终由世界各地的程序员(包括265名Microsoft MVP在内的14627名签名者)向微软提交了一份非常认真的请愿书4,5。在与其他互联网VB6程序员的闲聊讨论中,最常听到的一句话是:“如果不再有VB6,我就会转到Linux,反正我懂得大多数编程语言……” 这句话对微软来说是一个令人不安的消息。
我和其他VB6程序员都不明白为什么微软不重新设计一个并行的VB6版本(考虑到当前的情况,“Visual Basic 6.0 phoenix”可能是一个好名字)。大多数公司都会照顾他们的粉丝和设计师。我个人认为,对于微软的宏伟计划来说,**一个新的独立的VB6编程语言**没有任何有害或威胁之处。
2013年的一些VB6开源项目
2013年,VB6程序员平均每天发布7个帖子,仅在Planet Source Code上就贡献了约2500个开源项目。有趣的是,近年来用VB6制作的项目质量很高。下面列出了一些引起我兴趣和想象力的非常严肃的VB6项目:
Visia Compiler 4.8.7.1(一个专业的编程语言 - 用VB6制作)
描述:
Visia Compiler 是一个针对Windows 32平台的本地x86编译器(更新#4)。这个伟大的项目由Kinex(感谢Mark Chipman、Mordred(昵称)、Tommy Lillehagen和Jordi Enguídano)制作。它用Visual Basic 6.0编写,但直接编译成机器代码,无需任何运行时库或其他依赖项。该语言支持GUI创建、API、指针、内联汇编(必须安装FASM)。它可以构建和包含库、包含源头文件(inc)、自定义入口点和动态数组。语法只与类BASIC语言略有相似,因为编码结构更接近C而不是Basic。
PhotoDemon 6.2(一个功能与Photoshop一样强大的照片编辑器 - 用VB6制作)
描述:
2014年1月8日更新。此次更新包括一个新内容感知缩放工具(也称为Liquid Rescaling)。内容感知缩放利用接缝裁剪(http://en.wikipedia.org/wiki/Seam_carving)来缩放图像,移除不重要的区域同时保留重要的区域。它直到CS4才添加到Photoshop中,所以这是一个相对前沿的技术,而且我认为这是VB的第一个实现。欢迎反馈!请从“图像”->“内容感知缩放”菜单中尝试。此次更新还包括许多小的错误修复、优化和其他改进。正如标题所示,PhotoDemon是一个快速、强大、基于VB6的照片编辑器,注重可用性。尽管它是在VB中编码的,但它的许多滤镜和工具的性能优于其他免费照片编辑器(GIMP、Paint.NET等)。
主要功能包括:100多个滤镜和工具、宏录制、批量处理、自动更新通知、实时效果预览、EXIF和XMP元数据处理、RAW格式支持、色彩管理工作流程等等。为了获得最佳效果,请进行编译。感谢所有PSC项目,它们的工作帮助PhotoDemon得以实现;所有功劳和链接都可以在“帮助”->“关于”中找到。
高级数学函数(用VB6制作)
描述:
在这里,我上传了102个模块,包含Sergey Bochkanov在2005年至2013年间编写的数百个高级数学函数(其中一些函数甚至在C或C++中也找不到)。其中一些函数包括:
- 决策森林分类器(回归模型)
- K-means++聚类
- 线性判别分析
- 线性模型
- Logit模型
- 基本神经网络运算
- 神经网络集成模型
- 神经网络训练
- 主成分分析
- 常微分方程求解器
- 快速实/复数卷积
- 快速实/复数互相关
- 实/复数FFT
- 实数快速 Hartley 变换
- 自适应一维积分
- Gauss-Kronrod 求积生成器
- 高斯求积生成器
- 逆距离加权:插值/拟合
- 线性和非线性最小二乘求解器
- 多项式插值/拟合
- 参数样条插值
- 有理插值/拟合
- 一维样条插值/拟合
- 二维样条插值
- Level 2和Level 3 BLAS运算
- 二重奇异值分解(Bidiagonal SVD)
- 特征值求解器
- Sherman-Morrison逆矩阵更新
- LDLT分解
- 行列式计算
- 随机矩阵生成
- 矩阵求逆
- 实/复数QR分解
- LQ分解
- 双(三)对角矩阵
- Hessenberg分解
- 条件数估计
- Schur分解
- 对称矩阵的行列式
- 对称矩阵求逆
- 广义对称特征值求解器
- 对称矩阵的条件数估计
- 奇异值分解
- LU和Cholesky分解
- ASA有界约束优化器
- 共轭梯度优化器
- 有限内存BFGS优化器
- 改进的Levenberg-Marquardt优化器
- 最近邻搜索:近似和精确
- 稠密线性系统求解器
- 对称稠密线性系统求解器
- 艾里函数
- 贝塞尔函数
- Beta函数
- 切比雪夫多项式
- Dawson积分
- 椭圆积分
- 指数积分
- 菲涅尔积分
- Gamma函数
- 埃尔米特多项式
- 不完全Beta函数
- 不完全Gamma函数
- 雅可比椭圆函数
- 拉盖尔多项式
- 勒让德多项式
- Psi函数
- 三角积分
- 二项分布
- 卡方分布
- Pearson/Spearman相关系数
- 假设检验:相关性检验
- 描述性统计:均值
- 方差等。
- F分布
- 高质量随机数生成器
- 假设检验:Jarque-Bera检验
- 假设检验:Mann-Whitney-U检验
- 正态分布
- 泊松分布
- 假设检验:符号检验
- 学生t分布
- 假设检验:学生t检验
- 假设检验:F检验和单样本方差检验
- 假设检验:Wilcoxon符号秩检验。
Libry Compiler 4.1(用VB6制作)
描述
Libry Compiler是一个32位编程语言,它直接编译成机器代码并生成小的PE文件(与运行时无关的EXE)。Libry的语法风格类似于C语言(我不小心删除了原始帖子)。
OpenStreetMap(用VB6制作)
描述:
读取和可视化OpenStreetMap文件。加上一个简单的Dijkstra算法。更新:V1.1 - 改进的LAT LON到米的转换函数。
VB6:丛林之王
微软的“思想家”可能“认为”,如果VB6不再受支持,程序员将被迫转向.NET环境。这无疑是一个错误的假设,因为在2013年(当然在2014年),**VB6再次名列开源项目榜首**(见图1)。在程序员请愿4,5以及媒体上的许多文章6-15之后,几年前VB6再次获得微软的支持(现在仍然如此)。
图1。2013-2014年世界最佳编程语言。图表显示了“源代码”关键字在一些最流行的编程语言中的出现次数6。这些比例反映了每种编程语言实际的开源项目数量。计算方法可以在这里找到。
VB程序员尤其不喜欢VB.NET,也不喜欢VB6之后的任何其他VB版本。为什么?VB6依赖于一个单一的文件,即:msvbvm60.dll。另一方面,**VB .NET**依赖于**.NET Framework**环境,这**抑制了程序员的个性**,而且**与人的天性不符**。
默默的VB6战争
某些VB6应用程序(编译的EXE)与一些杀毒软件公司发生冲突。冲突的原因尚不清楚。VB6太强大了,而且程序员最多,这可能是冲突的原因,或者,另一个原因是这些公司无法提取相关的签名。VB6社区中流传着许多传言,称许多客户因对VB6应用程序(VB6可执行文件)的误报而卸载了某些安全公司的杀毒软件。让我们记住,微软也许没有意识到,杀毒软件公司已经埋葬了Visual Basic Script(VBS)。然而,Visual Basic Script并没有像VB6那样拥有数十万全球程序员。
如果Windows 7是极其疯狂、聪明和漂亮的(Windows 8只是聪明),并且负责它的团队做得很好,那么决定微软编程语言命运的团队仍然不理解Visual Basic 6.0的力量。据我所知,Paul Yuknewicz是Visual Studio团队的首席项目经理。他邀请我们在未来在VMware中使用VB6!16。这是在一部被45,841名VB6程序员(45,841个灵魂)观看的在线电影中提到的。这难道不是对整个VB6社区缺乏尊重吗?!只是随便说说……
程序员的卑微请求
我们必须迫使微软重新将VB6推向市场,当然,它将使用相同的名称,并且与未来的Windows操作系统完全兼容!只要程序员感觉像在VB6中一样,并且经典的VB6源代码能够正常工作,一切都会好起来的,每个人都会快乐。越来越多的应用程序是用VB6制作的。我们不会被忽视!
我将以引用Karl E. Peterson的话来结束这篇文章:“微软从未使任何客户数据不可用。一次也没有。他们为什么首先这样做,对象是世界上最受欢迎的编程语言的用户,这门公司赖以创立并且可能对他们的整体公司地位产生重大影响的产品,这一点非常令人费解。在多年忽视VB6社区之后,微软似乎缺少了什么。就是我们!”16
参考文献
1. http://en.wikipedia.org/wiki/Ada_%28programming_language%29
2. Ganssle, Jack (2013-05-29). "Ada Resource Association - News and resource for the Ada programming language". Adaic.org. Retrieved 2013-06-14.
3. http://content.time.com/time/nation/article/0,8599,1912084,00.html
4. http://classicvb.org/petition/
5. http://www.informationweek.com/developers-petition-microsoft-to-continue-support-for-vb6/d/d-id/1030929?
6. http://vb6awards.blogspot.com/2014/01/best-programming-language-in-world-in.html
7. http://www.computerworld.com/s/article/100367/Update_Users_push_Microsoft_to_extend_VB6_support?taxonomyId=079
8. http://www.vb6.us/articles/microsofts-killing
9. http://www.schwieb.com/blog/2008/05/13/saying-hello-again-to-visual-basic/
10. http://www.itwriting.com/frozenvb6.php
11. http://developers.slashdot.org/story/12/06/09/0240204/why-visual-basic-6-still-thrives
12. http://msdn.microsoft.com/en-us/magazine/jj133813.aspx
13. http://visualbasic.about.com/od/imhoinmyhumbleopinion/a/VB6Petition.htm
14. http://visualbasic.about.com/od/imhoinmyhumbleopinion/a/VBRunRev_2.htm
15. http://visualstudiomagazine.com/articles/2009/10/27/microsoft-vb6-support-strategy.aspx
16. http://channel9.msdn.com/Blogs/funkyonex/What-is-Microsoft-s-Visual-Basic-6-Support-Strategy