有必要花时间学VB吗?
我是一个非计算机专业的大一学生,喜欢编程……想先把二级尽快过了。
现在在自学VB。。可能觉得VB简单,容易编写一些小程序,有点自豪感额~
现在也才刚开始不久,最终我还是不是为了考级而学编程,想进一些大的网络公司工作。。。
觉得VB跟其他语言好像有一些差距,我不知道是学下去好还是转C语言或者JAVA。。
求高人指点。。。 --------------------编程问答-------------------- VB 只是一个工具。不存在学不学的问题。
基础理论搞扎实,转什么平台都容易。
--------------------编程问答-------------------- 我的意思是,是花比较短的时间学VB把二级过了,还是放弃VB直接学JAVA或者C……感觉JAVA和C学起来的难度比VB大很多。。 --------------------编程问答-------------------- 我还是想学JAVA或者C的。。。但又想尽快考级那证书弄奖学金。 --------------------编程问答-------------------- 那就同时学呗 --------------------编程问答-------------------- 建议不要同时学,很容易搞混 --------------------编程问答-------------------- 先入门也不错,其它的都触类旁通,不过VB编写的程序对于应用来说足够了,没有它不能完成的,至于效率嘛,对于用户来说是感觉不到的,只是理论上的时间差别,实际使用中感觉不到,而且开发快,是个开发利器。 --------------------编程问答-------------------- 没必要为了一种已经过时,而且充满缺陷的语言浪费时间。 --------------------编程问答-------------------- 顺便说下,“考2级”纯粹是浪费时间,毫无意义的事情,不要把它和你学编程联系起来。
怎么样花最小的代价应付过去就怎么做。当然最好的选择是根本就不去考。但是非计算机专业似乎必须得考试,那就没有办法了。反正我要是(在不应试准备的情况下)考它的VB肯定是不及格的,虽然我用了那么多年的VB,是不是很荒诞。举一个例子,它的某些考题会让你在它像易做图一样的程序上漏掉几条语句让你填空,而且你必须写得和作者心中想的完全一样,天可怜见!你不去买它的辅导书和模拟考试卷,你怎么知道怎么答?这和编程有一毛钱的关系么? --------------------编程问答-------------------- VB简单????那楼主编写个全自动注册QQ的如何???? --------------------编程问答-------------------- 7楼8楼说得好! --------------------编程问答--------------------
只是要达到过二级的水准啊,那我觉得不妨先调查一下你们学校过二级考哪门的通过率高一些。当然,还要看个人挑不挑语言,有些人有严重的语言偏好和偏恶。 --------------------编程问答--------------------
说我么?不管是不是说我,但是我都认为VB确实不是一种好的编程语言了现在——事实上它从来也没有成为好的编程语言过。VB、C#我都用了相当长的时间,并且开发了很多程序,我也用过很多其它的编程语言,一个客观事实是,你对语言的了解越深入和掌握的语言越多,在评价语言好坏方面应该更客观而不是更充满偏见。在这一点上,我不认为我对VB的看法存在什么感情上的色彩,从感情上说,我甚至是袒护VB的。
事实上,VB曾经的强盛并不是因为VB是一种好的编程语言,而是上个世纪Windows应用程序的辉煌,当你看到这一点的时候,已经把大多数语言排除在外了,没办法,闭源的操作系统和封闭的生态系统,能和微软叫板下的,也只有Borland,再没有什么语言可以适合Windows开发了,VB和Borland的另一种语言Delphi相比,又占了不少优势,但是这些优势同样不是来自语言层面的。VB的优势在于和VBA以及ActiveX的无缝集成,而VBA作为当时最成熟的一套技术又被微软卖给了很多第三方厂商,比如Autodesk,后来ASP的VBS语言也加入进来,VB和它的衍生品们因此才具有了那么高的市场份额。当然VB也是划时代的,是VB第一个将PME编程模型和RAD开发方式付诸于一个商业产品之中。这些颠覆性的创举直到今天都令人赞叹。
但是VB是一套开发工具,一个商品,当然还有编译器,其中搭配的语言本身,就真的一点也不那么优秀了。在VB一开始就为了兼容QBasic而遗留下来了大量的垃圾语法,比如行号,GoSub语句,用%$这样的符号定义变量的古怪语法,基于Goto的异常处理机制,不伦不类地对面向对象的支持,还有大量无法归类的内置函数——更糟的是,它们有时候又像是语句。幸运的是,直到VB.NET,微软才把很多像易做图一样的语法彻底从VB中清除掉了,但是还遗留了一些,这些东西一直是程序员的梦魇。 --------------------编程问答-------------------- 如果按照语言的优劣程度来分,以BASIC语言为第一代的话,那么大致是这样的:
第一代:BASIC/BASICA/Apple BASIC(不支持递归,不支持结构化编程,使用行号)、SaaS、汇编(一些汇编支持结构化的宏,算G1+)
第二代:QBasic(不支持完整的结构化语法,算G2-)、C、Pascal(完整支持结构化编程)、VB、FoxPro(支持一些面向对象的特性,算G2+)、COBOL
第三代:C++ 99、Java、C# 1.0~2.0、Delphi(object pascal)、VB.NET 7.0~8.0(完整的面向对象支持)
三代半:C# 3.0、VB 9.0、C++ 2011、F# 1/2、Java 7(支持函数式语法、闭包)
易做图:C# 4~5(C#只能算G4-)、Haskell、Go(基于G3的衍生语言,支持动态,支持多范式编程)、F# 3.0
第五代:Ruby、Python、Perl(完整动态语法,Prototype,语法开放)、Javascript(以及JS衍生品)
Lisp,第几代?这东西是外星人搞的吧。 --------------------编程问答-------------------- 能使自己写出好软件的语言,就是好语言
关键是人 --------------------编程问答-------------------- VB用的地方还是挺多的,我也是非计算机的学生,很多别的软件都可以用到VB编程,而且,VB做界面相对较简单 --------------------编程问答-------------------- 靠VB吃饭。 --------------------编程问答-------------------- 学以致用,有兴趣就学,不用犹豫不决。技多不压身。 --------------------编程问答-------------------- 一、根据你将来的从业目标,确定专精的语言。
就算所谓“大的网络公司”,也还要看他的业务。
Web 应用的偏重 Java/ASP.Net 之类;侧重运算的偏好 C……
也可能老总有个性,选一个非常规的语言。
二、没有一个语言是全优的。
所以“学好×××,走遍天下都不怕”那是臆想!
(作为茶余饭后的趣事来聊聊)
总有几个语言是引人注目的,VB6就是其中之一。
当VC程序员刚写完优秀的算法,计划做界面时;VB程序员已经开始作测试了!
当Java程序员还是错误基本靠猜的时候(Eclipse比Java晚了6年多);VB程序员居然可以不中断程序边运行边修改代码!
所以——嫉妒之后就是各种贬低——
就像常规家用/商用车一样,VB通用、中庸,比较者总能找出自己的优点(其实任何两种语言相比总是各有千秋的):
跑车(C)自认跑得快——非常有意思的是,号称什么都能做的C如果离了大牛,手工打造出来的往往不是劳斯莱斯而是独轮车,和这种模块互动是噩梦般的经历;
越野车(Java)自认适应性广。
三、不迷信所谓的断代
比如 COBOL 语言,五十多年的历史了,还活跃在银行系统中。
技术归技术,应用归应用。 --------------------编程问答-------------------- 兴趣很重要。那么多语言,总要选择一些,不可能学完。 --------------------编程问答--------------------
不同的工具而已。剪刀和咖啡壶,哪一个更好?
大概只有中国的程序员会评论语言的优劣。
我们这边看不起 VB,大概主要是因为它易学。掌握了难学的东西的某些人,不免自傲一点。还有些人,以自己的代码别人看不懂为荣。这种情况基本发生在我们的土地上。
当你真的把它们当工具用的时候,就不会有这些想法了。
--------------------编程问答-------------------- 大部分人看不起VB,这个是事实,但大约看不起的人也不了解VB。
在我看来,有点接受不了的就是多线程问题。其他还好了…… --------------------编程问答-------------------- 还有就是实现那些接口的,通过TLB来实现,有些地方总感觉似是而非。这些都是缺点。但我认为优点多过缺点。做什么都不得不考虑市场,所以,指望因为懂得什么语言而找工作的话,选热门的语言吧。 --------------------编程问答--------------------
也许的观点是很有道理的,但是用在VB这里却不怎么非常合适。因为如我上面所说,VB称不上一个“语言”,VB在Help-About中的介绍也说,它是一个Win32开发环境,而不是开发语言。而且大部分人讨论VB,关注点其实不是VB语言本身,而是VB这个开发工具,IDE,库函数,控件,以及对应的平台以及更多。
因此不妨从一个更大的范围看VB,VB开发的程序本身、VB为开发程序提供的库函数和支持、VB本身和操作系统的支持,等等很多方面,确实是落后了。当然更极端的例子是Foxpro,这个开发环境编写的程序在CPU频率大于300MHz的电脑上运行,就会出一个“除数为0”的错误,这种滑稽的情况却没有任何官方的解决办法。
VB也是,VB6作为一个产品,早就不被微软支持,而且所谓“VB不过时”这样的言论,本身对这个世界没有任何好处,要知道,学习过时的技术是浪费生命,而现在还在创造用落后技术的软件,则是对消费者投资的轻率和不负责任,这种观点导致大量不必要的维护既有代码严重的开销,以及阻碍生产效率的提高,这都是有很大害处的。也许受益的不过是一些不思进取的VB程序员,但是全社会要搭上更大的成本。
“过时”这个词有它的特定的含义和范围。抠字眼地去改变它的含义无异于诡辩。“过时”表示它失去主流的地位和影响力,并不代表它一无是处,也不代表它的可用性在任何场合都会消失。比如枪支的普及使得弓箭和刀枪过时了,你不能用因为竞技比赛和武术表演中它们还很有用,而竞技比赛和武术表演本身很有必要这样的观点去反驳它。480、586电脑和Windows 95过时了,不等于说它们就不能用来处理简单的打字任务和运行怀旧的软件。
VB的过时是显而易见的,这一点还有什么好讨论的呢? --------------------编程问答-------------------- 很多诡辩都是基于将过时和完全丧失价值画上等号的偷换概念而产生的。
最经典的是,xxx虽然用不到了,但是作为学习还是不错的,因为原理是相同的。既然原理是相通的,为什么不直接学习新的呢?比如《几何原本》是不朽的著作,和现在初等数学的几何也没有太大的区别,为什么大家不拿那古书来学习呢?
还有,语言没有好坏,重要的是思想,这一点我是不认同的。事实上,说这样观点的人有两大类,第一类是语言没有学好,思想根本没有的人,他们强调这一句的前半句,给自己其实也没有什么编程思想辩解。另一类人,确实有点“编程思想”,但是他只接触过几种编程语言,并且这些语言使用相同的编程范式,比如一个会Pascal、VB和C语言的程序员,他有结构化的编程思想,并且确实在这些语言中这种思想是相通的,因此他就认为“语言没有好坏,重要的是思想”。直到他用上了C++、Java、C#,当然,它还可以坚持将这些语言当作传统的结构化编程语言来用,但是一些人会发现,他们“缺乏面向对象的思想”,而一个C#程序员或者Java程序员,同样会需要重新学习函数式编程、动态语言、声明式语法等等。不同范式之间的差异是极大的,而且深刻影响不同程序员的思维方式和编程思想。为什么,因为这些思想不是凭空产生的,如果你只使用一种语言,或者虽然使用了几种语言,但是它们非常类似,那么是不会有这样的体会的。
最后一个观点“没有不行的语言,只有不行的人”,很义正词严,这样的话有很多,比如没有肉车,只有肉人,没有教不会的学生,只有不会教的老师,世上无难事,只要肯登攀,但是仔细想想这种话本身根本不值得推敲。难道没有不行的语言,只有不行的人意味着不行的人才更换语言,使用单一的语言的人才是行的人? --------------------编程问答-------------------- --------------------编程问答--------------------
TLB是个解决的办法,还真管用。以前看了马云剑的一个通过映射内存文件实现进程通信的好办法,他在类模块里面定义一个结构,结果行不通,编译不通过,他就把C++的ODL文件编译成了TLB类型库,嘿,还真行。哦,找到了,在这里:http://bbs.csdn.net/topics/200070470
--------------------编程问答-------------------- 语言不分好坏,适用面不同而已。
贬低或褒扬一门语言对你的薪水不产生影响,省省这份力气吧!
至于VB评论的话题多,仅仅是因为它的的确确在一段时间内、在Windows平台、商用软件这个领域内独领风易做图。
至于下一个风易做图的语言,尚未明朗!
依然是奉劝楼主:根据你将来的从业目标,确定专精的语言。
--------------------编程问答--------------------
我大概就是版主所说的“语言没学好,思想根本没有”(似应说“根本没有思想”,莫非是一个外国友人要来证明我的谬误)的人。
不过,我还是认为,适用就好。
我常常要做一些简单的小工具,要快,做出来恐怕也用不上几次,这时候我凭什么不用 VB?我宁可缺乏面向对象的思想。至少我知道自己在干什么。
--------------------编程问答-------------------- 同意楼上老鸟和of123美女的说法,计算机语言本身没有好坏之分,只要好用就行。
看看老外对VB的评价:
我认为VB6在当今市场竞争中不缺什么,它能完成任何其他开发环境能完成的事情,而且更快、更简单,另外还可以本地运行。除了64位编译功能以及未来操作系统对它的兼容性之外,我实在想不到它还需要些什么,或许可以考虑支持Win8上的移动编译?
出处:http://www.infoq.com/cn/news/2012/03/vb6_supported_on_win8/ --------------------编程问答-------------------- 微软的MSDN杂志:http://blogs.msdn.com/b/msdnmagazine/archive/2012/02/13/10267361.aspx --------------------编程问答--------------------
用个人的好恶去表述一个公共观点是很狭隘的。这本身已经偷换了命题,lz问的不是对某个人来说,是否只用VB就可以了。这就好比我用不到化妆品,我就说化妆品是没用的一样的逻辑。 --------------------编程问答--------------------
老外评价很多,还有老外说,VB根本没用,会用Excel就足够了,甚至电脑根本没用,一个本子,一个计算器就足够了,等等。如果只会VB一种语言,“计算机语言本身没有好坏之分,只要好用就行”只能是一种偏见而已。谁来定义什么叫没有好坏,既然没有好坏,为什么有好用和不好用?没有用过别的语言,怎么知道VB最好用?
事实上,语言的好坏是有标准的,当然标准很多,但是我在这里强调一个靠学习语言来学习编程思想很重要的维度,就是语言的抽象性——相反的维度适合靠学习语言来学习计算机系统本身,越底层,越具体越好。
什么叫语言的抽象性,一个直观的说法就是,给你用A语言描述的算法,让你用B语言改写,如果这个过程是直译,说明这两种语言抽象性相同,如果你几乎是对A做语法展开得到B,那么A的抽象性比B要好,反之,如果你需要阅读A的代码,并且去理解它做什么,才能找到等价的B语言的表述形式,那么A语言的抽象能力就不如B。
我想大部分用VB的开发者可能只用过VB,但是或多或少应该听说过C和汇编,我的举例就从这里开始。我的结论是,和汇编比,VB算得上是好的语言。论坛中很多人在寻找“VB反编译器”而无所得,大家知道,VB写的程序和你编译的可执行文件功能是等价的,但是为什么只有程序能把VB程序翻译成汇编,而没有程序能把汇编翻译成VB呢?本质就是,VB的抽象性比汇编好,事实上还有一个不为很多人知道的事实是,VB编译器和VC共用后端编译器,也就是VB编译器先将代码转化为VC编译器可以识别的中间代码,再使用VC编译器得到目标程序,从这个意义上说,VB程序和C程序是基本等价的。通俗地说,将高级语言转化为低级语言的过程好比是根据文本的ascii码打印文本,而将低级语言转换成高级语言的过程,好比是根据打印的文本,做文字识别得到ascii码,所以后者的难度要远远大于前者。 --------------------编程问答--------------------
其实共用的只是链接器(LINK.exe)!
从源代码到可执行文件,排除语法检查之类的各种预处理,关键过程是最后两步:
1)编译——生成各种程序的配件(最常见的 .obj文件)
2)链接——将配件组装成可执行程序。
就像程控机床和人工可以生产出互换的配件,并不能推出“程控机床 等价 人工”。
同样,不能推出“VB 等价 VC”,最多是“VB编译器的输出 等价 VC编译器的输出”。
当然微软一直在标准化自己的主打语言。
VB.Net 和 C# 用同一个中间语言,这使得它们之间可以互相反编译。
几乎是“VB.Net 等价 C#”。 --------------------编程问答--------------------
共用的有c1.exe,微软的后端编译器。你可以在vb的目录下找找这个文件,删除了看还能编译不?
VB.NET确实等价相近版本的C#,但也不完全是,在VB没有yield的时候,它就不能直接翻译来自C#的yield return语句。具体我已经在13L说了。 --------------------编程问答--------------------
我只想说,适用就好。
我做芯片前端设计,用 Verilog HDL (ModelSIM);
我编写芯片嵌入式软件,用 C 和汇编(CodeWarrior, Keil C51);
我为用户编写 PC 端示例和 DLL 用 VC++;
我编写小工具用 VB ………
个人喜好就个人喜好吧,用起来顺手就好。就算你说它不好,我就不能用了?
非让我相信一个连 VB 代码都写得颇有改进余地,基本语言逻辑都有大有提升空间的人的话,放弃使用 VB?我弱智?
我再次说明我的观点,工具没有优劣之分。我也没说 VB 有助于思想什么的,也没夸说 VB 好的一塌糊涂,更不想从抽象逻辑的高度去评价。当你需要的时候,用就是了。
--------------------编程问答-------------------- 我大学毕业之前打死不学VB,找到工作之后,死了都要学VB. --------------------编程问答-------------------- 其实接触一点就够了。。。 --------------------编程问答--------------------
入门就行了。网上的源代码下载了会用就行。
写写小型软件,简直太爽了。
java的学老长时间了,我学java从j2se然后j2ee,javaWeb,jsp,servlet,javabean,DAO,MVC就这么个过程才是入门。
要想工作害的学框架。我自学的半年才学到现在这个半生不熟的可以复制粘贴代码的地步。java真的不是十分好学啊。 --------------------编程问答-------------------- VB不是学习其它语言的必由之路 --------------------编程问答--------------------
听了版主的话 我作为一个菜鸟妄自归纳一下:
1、版主主要围绕vb语言的规范性进行描述。
2、vb的市场份额是微软系统的份额造成的,不是语言本身的优势。
这两点我想大部分人还是认同的,
但本人(代表许多菜鸟)并不关心vb的语法是否有漏洞或者度多么垃圾,
我主要关心vb在实现功能方面与其他的语言有什么不同
我听说了多线程vb不行,我主要是想了解这些方面的,楼主能否指点? --------------------编程问答--------------------
当然不是必由之路 但是能不能说是一条相对的捷径呢? --------------------编程问答--------------------
朋友 能说个具体理由吗? --------------------编程问答--------------------
没有不行的语言,只有不行的人并不意味着不行的人才更换语言,使用单一的语言的人才是行的人. --------------------编程问答-------------------- 为了找工作,就建议别学VB了,毕竟现在市场上用VB的和JAVA的同等位置收入等没法比。
如果为了兴趣,学吧。 --------------------编程问答--------------------
因为Vb入门简单啊,在非IT专业的公司里,基本上都用Vb因为只要完成任务就行了,vb简单入门又快而且人力成本也低培训下就能用了 --------------------编程问答-------------------- 楼上说的Vb入门简单可能是指VB中文资料比较多。毕竟常用的和VB接近的开发工具里,VB的开发环境和帮助是最早出现中文版的。哦,以前还有个FOXPRO --------------------编程问答-------------------- 工具而已,哪个好用用哪个。
如果以后的生计对它依赖性比较大,就学新一点的东西吧。 --------------------编程问答-------------------- 别纠结了,想学就学呗,路是你自己走的.
你现在等于是在饿着肚子对着一桌子菜的时候,纠结到底是应该用筷子呢,还是用刀叉,还发个帖子来问大家的意见......
至于我的意见就是,小心饭菜凉了! --------------------编程问答-------------------- 用什么学什么 --------------------编程问答-------------------- 呵呵哈。力挺VB。 --------------------编程问答--------------------
老师,那您觉得应该学哪个? --------------------编程问答-------------------- 说VB没优势的人估计都是整天在企业里忙,大型商业软件你用vb当然怪他没优势了
vb本来就不是给你写大型软件用的
写外挂写小程序,VB没优势?我只知道c++写1天的程序我用vb写1个半小时就搞定了,完工速度意味着什么知道吗? --------------------编程问答-------------------- 唉,VB呀...为什么你会引直这么多的争议和非议!
其他语言之间会不会有这样的争论?
我只会VB,不是专业人员,也一直在想要不要转学VB.NET或者其他。。。
日常工作中用到VB和VBA,还是很高效和方便的解决了不少问题 --------------------编程问答-------------------- 有时去执行一个错误的决定总比优柔寡断或者没有决定要好得多。
--------------------编程问答--------------------
赞同:考2级纯粹是浪费时间,毫无意义的事情,不要把它和你学编程联系起来。
如果又是非专业,有想以后从事这方面工作,可以用c#练练 --------------------编程问答-------------------- 干脆地说吧,如果不是马上就用,没必要学。
VB 的特点就是好学,容易上手。要用的时候再学。
--------------------编程问答-------------------- 以前的时候总感觉VB确实简单,不想学。可真正用它写程序了,才发现,以前学的那些连皮毛都不是……什么语言都不能小看的呀。
补充:VB , 非技术类