您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Python与VB两种编程开发语言全方位对比(优点与缺点) 建议收藏

时间:2022-10-13 12:18:13  来源:今日头条  作者:小辣椒高效Office

语言的优劣之争从来都是个永恒的话题,也是个容易引火上身的问题,经常讨论过激就会“擦枪走火”甚至可能会引发一场铁杆粉丝之间的“战争”。

如果您之前熟悉VBA,或了解一些VB语言,那建议你学习VB,如果你从未学习过编程开发,建议你直接从Python/ target=_blank class=infotextkey>Python入手。下面从各个方面来剖析2种开发语言的优劣。

 

一、出生的年代不同

1991年,微软公司推出了Visual Basic 1.0版。这在当时引起了很大的轰动。许多专家把VB的出现当做是软件开发史上的一个具有划时代意义的事件,VB吸引更多的赞誉和批评,为广大的用户和程序员使用(tmtony)。它非常适合用来快速开发拥有友好界面的程序,但随着时代的变化,开发语言的进步,VB也逐渐不太适应现在的需求,微软也没有继续支持它的意向,将逐渐走向衰落。但在很多场景,它依然发挥着它的余热,还有它的变种VBA还继续在office及其它第三方软件中继续发光发热。因为有用户和历史应用的加持,一时还难以退出舞台,将来是否会以其它方式重回舞台中央,亦未可知。

 

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。 Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,20年来首次将其置于JAVA、C和JavaScript之上。

而最新的Python3.11运行速度将提高2倍,也标志着Python将更加成熟和优秀。

 

二、适用平台不同

VB只能用于windows单平台,但Windows内置Vb的运行库,所以直接使用,无须配置支持环境。VB是编译型语言,对Windows的支持比较好,如果要制作Win Form窗体调用Windows系统的COM 对象,API,或与Office组件交互,则VB有它的优势。

python可以用于Windows linux mac 等多平台使用,python的适用性更广,对平台兼容更好。但在Windows下使用,需要安装运行及开发环境 ,生成的GUI界面的Exe程序比Vb要大(因为要带有相关的依赖库)

 

三、开源与闭源

VB是微软出品的商业产品,一直是闭源的,而且需要花钱购买,而Python是开源的,而且它的大部分第三方库也是开源的。

开源是多数是免费的,具体取决于开源许可证,而闭源的使用成本会取决于软件的价格和售后支持的成本,如果出现Bug, 用户需要向销售软件的公司请求更改。 开源软件有一个完整的社区来审查代码,这使得错误很快被发现并改正。在闭源代码中,软件分销商负责修复发现的错误 ,有可能延时。

Python 解释器和模块是开源的。有些开源软件是开源,但不免费,而Python是开源又免费。

 

四、入门难易程度不同

Python非常好学,易上手,Python以简单著称,语法清晰,即使零基础也可以学会。Python要学精也不难,多数功能都有现成的第三方库,直接使用它们,只要会调用,基本上你要做的功能都有再成的第三方库可直接使用。Python语法简单、功能强大,是最合适零基础人员学习的语言,而且python目前的应用范围也是比较广泛的,在人工智能、数据分析、游戏开发、自动化、爬虫等领域,可以从事的岗位也是比较多的,就业机会更多.

VB入门也不难,它的强项就是界面设计是可视化的,用鼠标拖拉即可完成,刚开始接触计算机的都可以学习VB,非常易学,很多学校的计算机二级也是基于VB或者C语言,但是VB要学精比较难, 要了解Windows API, Dll, ActiveX 控件等等,VB进行Windows API调用,有一定使用难度,而且仅限于桌面平台,现在市面上现在用VB系统的相对少了。

 

五、应用场景不同

python应用场景非常多:从科学计算,运维,WEB,网站开发,办公自动化,甚至手机应用都有。几乎无所不能,无所不精。不少大公司的网站如:豆瓣、网易都是利用python语言编写的,后期的维护基本也都会python。可见Python应用范围广。而更因为太多人为Python在编写丰富的第三方库,众人拾柴火焰高,所以Python的资源库越来越多,越来越丰富,越来越专业。

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。所以对Windows 界面开发有天生的优势,而且微软Windows系统已集成内置了Vb6的Runtime运行时。

VB的其它应用面相对要窄一些,一个是受制于应用平台,另一个是使用的人群少了,为之做贡献的代码者和相关资源也少了,VB主要用于Windows的应用,数据库管理,管理信息系统,办公自动化系统,Office软件的插件,自动控制系统的界面。监控界面等。而且现在使用VB的高手也越来越少了。但VBA开发的群体还是比较庞大和活跃。至少在5年内还不会消亡。而且VB或VBA开发一些Windows下的高效工具或辅助软件,还是非常方便的。特别是有Win Form窗体的应用。

营销QQ辅助工具

 

智能填单

 

微信 QQ 企业微信 钉钉 YY 千牛 淘宝等聊天辅助工具

 

六、运行速度不同

Python运行速度较快,但速度比起VB VC,还是有一定的距离,但很多人把Python当成胶水语言,它可以把其它C++ C 其它开发语言生成的DLL直接拿来调用,这样在核心计算或数据级很大,借用了C++的高效处理速度,从而让自己也更强大起来。

而VB编译生成EXE,速度要比Python要快,而且在Windows桌面窗体这些应用场景下,Python需要第三方库或包,安装和执行的速度要慢过VB。

Python最大的问题在于性能,性能问题是Python一直被诟病的地方,但其实在设计时性能也是最容易被误解的部分。C++以最接近C语言的性能横行多年.随着物理硬件性能的显著提升以及软件复杂性的显著提升,人们开始对性能有了更理想的回归。

首先, 在一些企业应用场景,性能并不重要,另外一些IO密集型的业务大部分时间都在等待IO,为了节省不到1ms而让开发工作量增加几倍,似乎不是很划得来,而现在程序员的人力成本越来越贵 ,而机器性能过剩,硬件成本越来越低(小辣椒高效Office),所以程序员的开发效率比机器的执行效率更重要。

对于大型且复杂的系统或网站设计 ,使用更加清晰的语言比晦涩的语言给程序减少很多负担,并提高开发效率, 而且也可增强软件的分装性,所以 Python Java Ruby LUA 这些脚本语言开始崛起,一些JS前端框架也慢慢流行。

另最新的Python3.11运行速度将提高2倍,所以将来运行速度谁快谁慢,还是两说。

 

七、开发效率

现在的计算机硬件发展日新月异,在早些年代,内存与硬件空间需要按字节来节省的时光已经一去不复返,现在软件开发,需要更多关注开发迭代的效率,产品上线的速度,以及售后反馈是否及时,所以对企业来讲,开发效率已经比软件运行速度更加重要。

Python语法简单,IDE选择性更多,功能更强大,而因为有Python各种资源库的加持 ,开发效率也非常快,很多时候几乎 就是组装一下。而且一些软件新的特性 Python大多都有,如多线程 等(tmtony 待扩展分析)

而VB 有官方内置的控件及一些第三方优秀的控件,也可通过DAO RDO ADO快捷地连接数据库,但大多数情况还是需要自己造轮子,所以开发效率相对Python要低一些,而且因为使用人群不够Python多,第三方可用的轮子不多,造成生态也不如Python丰富。

当然,你也可以建立自己的代码库,控件库,插件库,也可方便调用,但是一个要的力量终是有限的,没有群策群力,难以形成丰富的资源库。

我们自己的代码库(VBA开发神器):

 

八、第三方生态环境

VB及VBA早期的生态环境还是挺好的,使用群体大,Github或之前的Pl.NETSourceCode网站上开源贡献者也非常多,但随着它的一些局限性(如不支持Unicode 不支持64位 不支持多线程等),以及微软对它的支持越来越弱,导致生态环境逐渐势微(小辣椒高效Office)。为之贡献或传道的开发者越来越来,这也是利益使然。

而Python有大量第三方开发者不断贡献开源库,也有知名的大厂贡献很多开源精品,特别是人工智能等方面的库,吸引一大批程序员趋之若鹜。众人拾柴火焰高,所以,Python的生态是越来越好,这样良性循环,使它吸引更多的优秀开发者,及产出更多的开源精品。所以论生态和资源,Python对VB肯定要形成降维打击。

九、语言排名不同

Python现在在编程语言排行榜一直霸占第1位,而VB即便算上VBA的份额,也是排在第6位。当然2种语言都排在前10,也说明2者都还是有非常大的使用人群,也都非常受欢迎。

 

十、语法及功能相关区别

VB是强类型语言,需要申明变量,当然也可以不先申明变量。

Python是弱类型语言。

VB不支持Unicode 不支持多线程,而Python支持 (Tmtony 等有空时再拓展来对比下)

 

十一、购买成本和投入成本

VB6是商业编程工具,需要付费购买,且大部分第三方控件都是专业公司开发的,也需要付费(几千元甚至上万元一个许可),现在VB6早已停止发展,扩展能力变低。

Python作为一个免费开源产品,最大的特点就是其庞大的绵绵不绝且不断恐怖式增长的开源扩展库。Python是开源最活跃的语言之一,全世界编程爱好者都贡献其中,生态非常好,还有谷歌 微软这样的巨头赞助和贡献大量AI库和其它精品库。Python的扩展库遍布各个领域,各种应用场景,而针对Python开发的IDE也非常多,选择非常丰富(tmtony 有时间再拓展讲),各种开源的库和工具让Python的能力扩大了千万倍。

 

十二、选择建议

如果你是想学习一种新的计算机开发语言,VB 和Python都易学 容易入门,都可以选择

如果你是想将来在办公环境来提高自动化工作的能力,选择VB和Python都可以,但因为Office一般都集成了VBA开发语言,所以VB有一定的优势

如果你将来可能会去做运维 网站开发 网抓 人工智能 科学研究,那Python可能更加合适

如果您之前熟悉VBA,或了解一些VB语言,那建议你学习VB,也可了解一下Python.

如果你从未学习过编程开发,建议你直接从Python入手.

 

希望对您有所帮助,也可收藏 点赞 及关注我 头条号



Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
一篇文章教会你使用Python中三种简单的函数
所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。一、函数简介所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。二、函数定义...【详细内容】
2024-04-11  Search: Python  点击:(3)  评论:(0)  加入收藏
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Search: Python  点击:(2)  评论:(0)  加入收藏
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Search: Python  点击:(8)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Search: Python  点击:(18)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Search: Python  点击:(34)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  Search: Python  点击:(35)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  Search: Python  点击:(36)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Search: Python  点击:(89)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  Search: Python  点击:(88)  评论:(0)  加入收藏
大语言模型插件功能在携程的Python实践
作者简介成学,携程高级安全研发工程师,关注Python/Golang后端开发、大语言模型等领域。一、背景2023年初,科技圈最火爆的话题莫过于大语言模型了,它是一种全新的聊天机器人模型,...【详细内容】
2024-01-26  Search: Python  点击:(76)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条