vb的优点是简单、方便,但也有很多缺点和局限。单单会用vb开发的人还不算真正的程序员。

解决方案 »

  1.   

    不是的,VB的优点不但是简单,方便.
    大家不要提到VB的优点就是方便和简单.首先,Basic是种完善的语言,结构十分完整.至少比Pascal完善.还有就是它的严谨的语法,不象C++那样让人模糊.它的历史比C语言还要长,自然有它的存在的道理.
      

  2.   

    to tangl_99(Min-Kyeong)
    basic能存在的道理之有一个:“老盖”对其的偏好,还有“老盖”有钱,VB在美国只是青少年用的语言,玩玩而已。
    还有,你懂pascal语言吗?它的语法是公认严谨,优美的。
    历史又能说明什么?最古老就是绝对的衡量标准吗?
    to winthegame(牛牛) 
    可能编写程序随心所欲控制计算机做自己想要的一切工作的人才是真正的程序员。会使用汇编的程序是,会VC的是,但VB不是。
      

  3.   

    我觉得vb绝对是编程人员的第一选择!虽然vb很不底层,但我们编程是为了能有软件用,能编出来好用的就行了,何必在意用什么开发呢!就算你用汇编开发,如果软件没有意义,那也一点用处也没有!
      

  4.   

    to czb_kbo(天涯浪子) 
    编程是为了能有软件用,能编出来好用的就行了,何必在意用什么开发呢!就算你用汇编开发,如果软件没有意义,那也一点用处也没有!  
    这名话我同意,但vb绝对不是编程人员的第一选择! 它是初学者使用的。 
      

  5.   

    我当然懂pascal.你不要以为我不懂.不过我到要问你懂VB吗?(不是Basic)
      

  6.   

    还有,Pascal的严谨,优美,同样把它向Basic靠近,而离C/C++远一点.
    对了,为什么微软的程序员为什么也像美国的青少年一样用Basic?
      

  7.   

    我觉得vb不是语言,只是一种开发工具,basic才是。如果要单纯从语法上说,basic同样可以做出优美的程序,因为这90%是取决于程序员的主观意识(同一个程序,不同的程序员看到,也会有不同的看法)。但是,编程语言是要实用的,vb在这方面有一些局限(比如多线程编程——暂不去说新的.net),因为他有简单和方便的优点,他也必须为此付出代价。如果编一个hello world,那当然vb最方便,但要做出成功的商业软件,vb就不是很合适了。
      

  8.   

    vc好!!!
    vb嘛,我正在学,也不错,就是觉得有点限制想象力
      

  9.   

    除了运行库太大,功能实现有时有些限制之外,VB还是不错的
    我就用VB
      

  10.   

    哎!
    mountlin(怎么办) 
    你知道金蝶、用友吗?
    他们不成功吗?
    所以……。
    会用、用的好、什么语言都没有关系的。
    为什么总认为VB不是好的语言呢?奇怪!!!
      

  11.   

    看看陈宽达(不会不知道陈宽达是谁吧?)的精辟见解吧:参见开发文档只是隨筆 -- 遊戲程式設計初學者常遇之疑問
    作者: 陳寬達
    http://www.csdn.net/develop/article/7/7361.shtm
    Basic 簡單是因為微軟希望 VB 及 VBA 維持在簡單到任何想依靠電腦來做自動化程序
    的電腦用戶都可以輕易地上手的程度, 因此雖然功能不斷上疊, 語言本身維持著 Basic
    的所有特性。不過缺乏物向導向的支援及執行速度的緩慢, 確是超級無敵讓人沒力的
    致命傷, 因此我會建議所有的初學者, 若能有力能夠接受學習其它的語言如
    C++/Pascal, 轉移陣地為上策。
      

  12.   

    哦,还有一段:目前基礎是決定工具及語言上手度的最重要因素。許多人在高中時代學了 QB, 之後便
    接著玩 VB; 有些大學的大一計概課程教的是 Pascal, 接著便可順利進入 Delphi。
    必須承認的是, Basic 確實不是開發大型程式適當的語言, 它的先天不良, 例如執行
    速度慢, 不是物件導向語言卻硬加入類物件導向功能(事實上, 它只可算是
    object-based, 而非 object-oriented), 甚至使得微軟為了 Visual Basic 一個語
    言, 將 COM 規格做了些修改以配合之(如 IDispatch interface), 即使有微軟如此
    強而有力的老大哥極力護盤, 先天缺陷仍舊無法去除, 除了易學外, 實在找不出太多
    該使用VB的理由。VB 雖然可以使用 DirectX, 但還必須透過其它程式庫的幫忙, 因此
    除了 VB, 我很贊成就配合你目前的所學, 會 Pascal 就用 Delphi, 愛用 C++ 就請
    用 C++Builder 或者 Visual C++。
      

  13.   

    如果要做死循环,你想看到for(;;)还是while(1)do还是Do Loop呢?,不管有没有学过计算机,人们显然喜欢最后者,因为它有明确的意思。再看
    public abstract void func1(long arg1);
    公共的 抽象的   无类型 func1(长整形 arg1)
    一翻译就乱套了吧,再看VB:
    Public MustOverride Function Func1(Arg1 As Long)
    公共的 必须重写的   函数     Func1(Arg1 为 长整形)
    知道哪一种语言更加贴近人的语言了吧  
      

  14.   

    我同意VB不能开发完美的程序,但是主要原因是VB的执行是解释方式.不仅速度慢,而且运行库也很大.
    于是我想询问一下大家,哪个Basic编译器能生成运行代码?
      

  15.   

    难道没有人为Basic做个像C的编译器吗?
      

  16.   

    to Ninputer(装配脑袋):呵呵,支持继承和多态(Public MustOverride Function Func1(Arg1 As Long))的这些东西是 vb7才提供的况且vb7还没有发布正式版,你拿一个vb1-6都不支持的东西来做例子来说明vb如何如何,未免太早了吧?
      

  17.   

    况且设计 vb7和.NET的主要设计人员就是Delphi的鼻祖
      

  18.   

    tangl_99(Min-Kyeong)哥们,您说的是哪年的事了。
    VB5、6可以编译成内码,速度一点都不慢,而且VB的调试工具是最简单的,节省时间。
    Nicrosoft(奈软)是怎么也改不了的了。穿凿完还要找理由。
    这篇文章的观点确实不值得推崇,可以说是误人子弟。
    为什么学VC的不能用DELPHI?学VB的不能掌握VC?VB+VC+DELPHI有何不可?非要钻牛角尖?再过几年,还不一定是什么语言的天下呢。會 Pascal 就用 Delphi, 用 C++ 就用 C++Builder 或者 Visual C++?不可以取长补短吗?如果你看到用DELPHI可以找到一段源代码可以完成工作,就非得把它转为C++?如果用VB很容易就能做到,非得转为DELPHI?
    重要的是完成工作本身,而不是要使用的工具。这一点都不懂,赶紧去补上《方法论》和马列毛邓理论吧,免得不学无术、自欺欺人、贻笑大方。
      

  19.   

    我没说不能用vb啊,只是初学者别只学vb罢了学的时候,越深越好;用的时候,越易越好
      

  20.   

    VB挺好的,我就是利用VB编写商业软件的。VB也可以像VC、Delphi一样编写黑客程序!
      

  21.   

    to thriller():
    我只是说VB很好,又没有说非得用VB? 忘了告诉你,我是主要用的是VC.
    还有,这里没有什么文章啊?你说的是什么误人子弟?
      

  22.   

    想问问各位,你们编的程序经常进行底层操作吗?
    对于代码执行速度的问题,你在意吗,你感觉到了吗,有兴趣你可以做一个试验。面对硬件飞速发展的今天,我经常要做的事情就是
    sleep 1000
    doevents
    你别不信。而且,极有可能你在代码执行上节约出来的时间远远不如开发说浪费的时间多。我们可以做一个比较,同样编一个求素数程序,我们可以测试各种windows下的开发语言(VC,VB,VJ,Delphi,BCB),看看哪种语言最先形成可执行文件。首先说这些语言的启动,毫无疑问VB最快,启动后,放置一个按钮,然后在这个按钮的click事件中加入代码,这个过程差不多,VC可能慢些。代码写的速度应该差不多,但VB稍稍胜出,因为VB的代码自动完成功能比较强,Delphi经常出现不自动完成的毛病。然后编译,这里也毫无疑问VB是最快的。编译后,我们可以运行,这里VB稍稍慢些,但绝对比其他语言在编译上浪费的时间少得多。而且,VB完全可以不编译直接调试运行,那样就更快得多。而且,VB的调试是最简单的。求1+2+3+……+10000,用Delphi做一个循环来加肯定不如用VB使用公式来计算。一个好的VB程序员绝对不会比其他语言的程序员差。算法很重要。下面是我转发的我的一片帖子
    VB好,VB好。
    在绝大多数的时候VB是可以应付需要的,而且VB最大的好处就是开发程序快速。
    我也认为VC,Delphi在功能上要比VB强一些,但不是说功能强就一定是最好用的。linux好,OS2好,可你为什么还用windows呢。就好比推土机要比铁锹强,但我使用铁锹的时候远远多过推土机,甚至可能这一辈子也不用推土机。我最讨厌那些学了一点点别的语言的人到VB论坛里来贬VB的不是。
    会Delphi有什么了不起,会OO有什么了不起,我们来解决一个实际问题,一艘5000吨的潜艇,长120米,要求在潜水深度500米,钢板厚为50毫米,现在需要在潜艇内部加上环状肋骨,肋骨宽400毫米,厚100毫米,请求出应该隔多少距离放一个肋骨?在面对工程实际问题的时候,所有的语言都一样,你用VB解决不出来,难道你用Delphi就能解决吗,要么用VC,MASM……,不行的话,试试面向对象的方法吧。我举这个例子不是说Delphi,VC语言不好,也不是说面向对象没用,只是觉得好多人对VB语言和用VB的人大加嘲讽感到气愤,我是从VB开始windows下的编程的,现在虽然也用VC和Delphi,不过用的最多的还是VB。因为VB开发程序比较快,调试简单,这就是VB的好处,除非VB做起来很困难,否则我都是首先选用VB来做程序。 
      

  23.   

    代序在发出这篇文字之前,我必须说明的是,这一些“文字”本来是不成其为文字的。在我发现它们的时候,它们的存在形态是一堆布满灰尘的磁片。我怀着好奇心将它们在我的电脑中一一打开,当然,除了满屏幕的乱码以外一无所获。但我的热情并未因此削减,在一位精通编码的朋友的提示下,我使用了一种极为常用的解码系统。令人欣慰的是,密码变成了断断续续的文字,似乎是某一个人(或一群人)的日常琐事的记载,又象是一些观点的零散发布。我试图用较为通俗的文字来将这些记载整理出来,并且按照自己的感觉大致分成了几类。在进行这些事情的同时,我愈来愈发觉这些并不是简单的记录,而象是某种传说中的东西。就这样,我努力保持这些东西的原貌,整理成了下面的文字。只是一点,在原文中多次出现的ppxll,似乎是记载的中心,但却没有适当的译称,我便妄自将其尊称为“大师”。引子大师为一帮初学者讲解VB之道。
    初学者问道:“VB很容易学习吗?”
    大师答道:“是的。”
    初学者问道:“VB的结构很简单吗?”
    大师答道:“是的。”
    初学者又问道:“VB程序很慢吗?”
    大师轻轻咳嗽了一下:“呃,今天就讲到这里吧。”内篇1、 大师如是说:“人如果明确自己的位置,就可以避免不必要的烦恼;变量如果明确自己的类型,就可以避免不必要的错误。”
    2、 大师去参观另一个高手的程序,对每一个变量和控件都仔细地请教别人。高手的弟子们在一旁议论:“谁说大师懂得VB之道呢?”
    大师回答:“我这样做本身就符合VB之道。”
    3、 大师如是说:“除非必要,不要使用非Intel处理器;除非必要,不要使用非整型变量。”
    4、 一个单机编程者向大师请教如何使程序更小和更快。
    大师回答:“有一种树,在地下的部分是地上部分的三倍,庞大的树根为树吸取养料;程序也应该利用这种根系。”
    单机编程者问:“那么,怎样做到呢?”
    大师回答:“利用32位抢先任务处理,将程序分解到许多个ActiveX部件中;使用远程自动化,让远程处理器承担多数进程。使你的程序完全没有事情可做,这就是VB的最高境界。”
    单机编程者说:“这是我无法达到的呵!”
    5、 大师如是说:“永远不要进行字符串复制。”
    6、 大师和弟子们去自助餐,有经验的弟子直接奔向最喜欢的餐位,一般的弟子在按照餐位的标牌行动,而没有经验的弟子则兴奋得四处乱窜。
    大师说:“对于文件输入输出操作,不也是这样吗:优秀的程序员使用二进制访问,一般的程序员使用文本访问方式,蹩脚的程序员使用随机访问方式。”
    7、 大师如是说:“多次使用的签名应该做成印章;多次使用的操作应该编制宏;多次使用的属性应该放入变量。”
    8、 两个程序员为应该采用集合还是数组争论不已。
    其中一个程序员找到大师:“集合不好吗?我可以准确地定位其中任何一个成员。”
    大师回答:“你是正确的。”
    另一个程序员也找到大师:“数组不好吗?我可以对其进行顺序访问。”
    大师回答:“你是正确的。”
    前一个程序员听说了,和另一个程序员一起来找大师:“我们俩到底谁是对的?”
    大师回答:“你们是正确的。”
    两个程序员对别人说:“谁说大师有学问呢?”外篇1、 在大师手下学习的一个新手编制了一个大型程序,兴奋地请大师看。当程序启动之后,开始进行无法想象的复杂的初始化,整个系统为之凝滞,其间没有任何提示指出正在干什么,也没有任何措施允许用户取消该过程。令人尴尬的十几分钟过去后,程序界面终于出现在屏幕上——原来是记事本程序的加强版。
    大师回过头去对大家说:“这就是所谓新手呵。”
    2、 大师如是说:“吸引蜜蜂的果树绽开花朵;遭到袭击的乌贼放出烟幕;正在启动的程序显示Splash屏。自然界就是这样呵。”
    3、 大师和弟子们观看魔术师演出,魔术师在表演后介绍魔术的秘诀:只有将物件预先藏在手中,然后转移观众的注意力,才能达到出其不意的效果。
    一个弟子对大师说:“预先载入窗体,在需要时显示,从而加快显示,不也是同样的道理吗?”
    大师说:“你明白VB之道了。”
    4、 一个弟子找到大师:“您刚才讲解的程序还可以更快,”他用手指着屏幕上的窗体,“只要把AutoRedraw关闭就行了。”
    大师说:“比我多想到一点,也是我的老师呵。”
    5、 大师如是说:“为什么不使用标签呢?它所耗费的资源极少,你可以用隐藏的标签储存文本,你可以使用DragIcon存储图标……没有比标签更好的了!”
    6、 大师注意到有一个弟子在上机时还开了一个BBS窗口,当大师走近时,他敏捷地使用VB窗口将其覆盖。大师于是将弟子们召集过来:“控制窗口的重显是很重要的,”大师最小化覆盖在上面的窗口,说道,“非常重要。”
    7、 大师如是说:“汽车比自行车快,我仍然要使用自行车;Linux比Windows稳定,我仍然要使用Windows;Line比Pset方便,我仍然要使用Pset。”
    8、大师如是说:“Image我所欲也,Picture亦我所欲也,二者不可得兼,舍Picture而取Image者也。”杂篇1、 一个弟子向大师倾诉程序编译中频繁的数据类型报错,问大师:“使程序永远没有数据类型错误,可能吗?”
    大师回答:“可以做到。”于是将所有变量类型设置为Variant。
    弟子运行程序,高兴地发现没有一处错误,但系统很快死机。
    2、 大师如是说:“龟不活动,才能长寿;人没有欲望,才能保护自己;程序不吃内存,才能避免被删除。”
    3、 大师的弟子微使用Unload卸载窗体,弟子壁使用赋予Nothing值的方法卸载。
    大师看到了,对其他的弟子说:“贤能呵壁!更接近VB之道了。”
    4、 大师如是说:“没有用的垃圾应该扔掉,没有用的代码应该删除。”
    5、 大师问弟子:“有一个机会让你们用三个字说出最想要而总是得不到的东西,你们会要求什么?”
    弟子贾说:“涨工资。”
    弟子倚说:“放长假。”
    弟子饼说:“内存条。”
    大师微笑不语。
    6、 大师如是说:“使用局部变量,不亦乐乎;删除动态数组,不亦乐乎;程序不会死机,不亦乐乎。”
    7、 大师给弟子们讲了一个故事:“在一个公司里,有一个汇编高手,一个网络高手,还有一个VB程序员。项目经理为了考察属下的能力,交给每个人同样的任务。汇编高手从最不起眼的输入输出开始,花费了一个月的时间,打印出了足有一百页的程序清单;网络高手穷尽所有的平台,也花费了一个月的时间,制作了五十多个版本的应用程序;轮到VB程序员了,他在屏幕上画了一个窗体、一个按钮,写道:‘按下此按钮,运行他们的程序。’”
    8、 一个弟子问大师:“我什么时候可以出师?”
    大师回答:“到你的程序中注释是代码的十倍的时候。”
      

  24.   

    vb当然好,特别时新出的 vb.net 不信你自己去试一下。
      

  25.   

    我要说的不是开发进度与程序运行快慢的问题.
    我希望大家能讨论的是Visual Basic本身语言的好坏.
    大家用了这么久的Basic语言,有没有发现这种语言的特点?
    (不要提到VB就是简单,说实话,我反而觉得VC更简单)
      

  26.   

    to:sentimental(神虫)果然人如其名,你是多愁善感的。“存在即理由”!看看《程序员》第5期侯捷关于编程语言的争辩的言论吧!!!唉......
      

  27.   

    Basic的灵魂是:做是简单,比可能的还要简单
    Visual Basic是一种结构非常好的语言,绝对不差于任何现存语言。
    而且这些语言特征是其他语言没有的:
    结构化非条件循环:
    Do
       If i >= 0 Then Exit Do
    Loop带有表达式的Case分支
    Select Case A
       Case 5 To 10
       Case 12,13,15,17 To 19
       Case 2+3*B
       Case Is >=0
       Case Is <=5,Is >7
    End Select蕴涵和等价运算符
    A Imp B, A Eqv B等等
      

  28.   

    不是的C++里都有啊.
    for(;;)
     if(i>=0) break;
    // 似乎C++比Visual Basic更简单呢
      

  29.   

    呵呵呵,for(;;)和while(1)do也可以称为“结构化”吗。这么难看,完全没有意思
    而Do是做的意思,Loop是循环的意思。多么有意思而且.....
    Do While 
    LoopDo Until
    LoopDo
    Loop WhileDo
    Loop Until
    竟然有四种用法,任何语言也没有如此灵活。此外,这些优良的语言特征也是其他语言没有的:
    Decimal 96位数据类型,可完成精确的计算
    模块 良好地组织全局内容,节约内存又便于存放
    明显的可选参数标志(与C++的参数初值不同)
    可变类型和大小的完全动态数组
    任意参数数组
      

  30.   

    简单,易用,与MS结合好。
    BUT:
    *越写越没劲,磨灭程序员的......。
    *还是C++好。
      

  31.   

    哎!!!有些人只懂得VB的一点皮毛就在这里乱说,说VB功能弱的实是VB连入门级都没达到!!!!!!!!!!!!
      

  32.   

    VB本身功能很弱,但有了API,VB又变的很强大!!
      

  33.   

    在VB中要替换一字符串中的所有特定字一个replace就全搞定了,在Delphi中呢?!!!
      

  34.   

        一般来说事物的发展总是这样,不用说大家都明白,站在VB这边的一定都是曾经深入的学习过VB或正在学习VB的人,他们对VB是有感情的,因为他们对VB倾注了自己的心血。而指责VB的我想99%都是学过其他语言并希望自己所学的语言根植壮大的朋友。人就是这样……
        说真的这个话题有点伤感情。让人看到了人自私的本质。虽然谁都知道VB也好VC也罢,都不过是种工具罢。
        希望我想的都是不真的。