为什么VBA名列最讨厌编程语言第一名?
24 个回答
大概它是一个让人又爱又恨的家伙吧。
VBA的缺点很多。安全性差,不同操作系统兼容性差,依赖Office 等等。
可是让它如此被嫌弃的原因其实是它太容易上手,太好用了。稍微有些编程基础,几天的捣鼓之后,都能写出个像模像样的VBA程序出来。
问题来了,这就意味着不需要高深的编程知识和专业的程序员,每个人都可以写VBA代码。比如在我们公司,有些现在还在用的VBA程序是十几年前由非专业编程人员写的,现在还在用着,因为it gets things done - 不管黑猫白猫,抓得到老鼠的就是好猫。可是那些高薪聘请来的专业C++, C#, Java, Python 程序员,一到要维护VBA历史代码的时候,就满脸嫌弃,嘟哝着这都什么年代了,还VBA, 好低端啊, 而且这结构不好,那地方代码不行,各种抱怨。吐槽归吐槽,很多公司的原则是只要还能用,那就不必要花钱花时间去把VBA程序换成高级的技术,杀鸡不用牛刀嘛。 这样的现象真的很普遍,全球500强的公司,VBA的使用根深蒂固 (要不微软为什么不早停止支持VBA了)专业程序员的抱怨也漫天遍野,以致于VBA冲上了最讨厌的编程语言榜首。
客观看待,VBA使用得当,真的是办公自动化的利器。如果是涉及到多个Office 程序交互,用VBA绝对要比用其他语言快。当然,具体问题具体解决方法,有些事情,用VBA就不如用Python 这样的通用语言解决的快。
结论是,VBA本身没有问题,有问题的是使用和维护它的人。真正理解VBA长处的人,是会恰到好处地使用VBA. 可惜,因为它的门槛实在太低,VBA编程者水平参差不齐,给它带来了不应该有的差评。
RubberduckVBA的这段评论很精彩 。有条件可以看下原文。
用三句话回复,有同感的老铁们,顺手点个赞,有你们的赞,让我对VBA的恨意会消融一点!
一、如果VBA能排到最讨厌编程语言的第一名,那使用VBA的人得有多少啊。
大家想一想,你最讨厌 最生气的人是谁,可能就是你身边最熟悉 最亲近的人。
而且也并不是无时无刻都在讨厌他, 有时,你与他也爱得死去活来,但恨起来,也是咬牙切齿。
为什么恨呢,恨其不争,但 爱之愈切,恨之愈深 ,没有无缘无故的恨,讨厌到极点,那就是爱到极致了。曾经多少爱得如胶似漆的情侣,最后恨得操刀相向。
二、缺点多的人,优点也不少
如果一个人完全没有缺点,或者你感觉一个人你几乎挑不出毛病,那这个人要么是圣人,要么是伪君子。
缺点多的人,其实优点也不少。 人是这样,软件亦是如此。
三、用其优点,活在当下
VBA估计不会再有颠覆性的改变了,因为微软的重心和方向不在此了。互联网 云端 移动端都不是它的强项,没落是必然的。
但既然它还能帮到你,让你高效一点,那就在当下用好它,它不足的地方就用其它工具来辅助,明知它不会再成长了,就别把负面情绪都给它了,工具是无罪的。别因为它现在的不好,而否定它曾经所有的好。
至少在Office领域因为有VBA,哪怕是再妖媚的Python, 也还没有足够的魅力让你泛起喜新厌旧的心思和见异思迁的胆量。
--- 不服来战,评论区邀约!---
再补充一下
四、VBA的优缺点
优点:
1、Office内置集成了开发环境,Vba只要安装了office就可以开始很愉快的写代码了,且各版本向下兼容,不用担心代码不通用。而其他语言的第一步不是马上就可写代码,而是要先安装及配置环境,可能VBA写完了,其它语言还没配置好环境
2、内置的录制宏,对新手来讲,好用得不要不要的,没有其它开发语言有集成这个功能。
3、可以把Excel表格及宏一起发送给用户或同事,一个文件就可搞掂,其它开发语言可能要安装包 依赖库,数据库等等一大堆东西
缺点:
1、微软在VBA上的改进非常缓慢,没有太颠覆性的新功能了
2、对有些功能实现心有余力不足,要借用API 或Activex
3、宏病毒的频发让微软对其又爱又恨,弄了个是否启用宏又让开发者又爱又恨
4、相同代码在不同操作系统,不同Office版本可能偶尔会有不兼容或不稳定的情况。
5、没有办法在互联网 云端 移动端执行,也不支持Linux环境
6、开发生态没有Python好,第三方库资源不足
7、源码无法真正编译 加密 及生成无源码的执行文件(Access除外,Access可生成accde)
也可关注我 @小辣椒高效Office 潜心VBA 20年