24小时热门版块排行榜    

CyRhmU.jpeg
查看: 8602  |  回复: 78
本帖产生 1 个 程序强帖 ,点击这里进行查看

recen

木虫 (文坛精英)

宅!宅!宅!宅出韭菜来

优秀版主

[交流] 【讨论】谈谈对VB的想法(本人属于菜鸟级别)欢迎大家拍砖已有69人参与

下面谈谈VB6的前途。虽然用VB很多年,但是在前辈面前仍然是菜鸟一只,我大胆说两句,说得不好还请指教。

自从2000年微软推出.NET计划以后,VB产品线就彻底停掉了。我说的VB,指的是VB6,不是后面的VB.NET。
VB面临好多方面的挑战,最大的是软件从C/S向B/S的转型。而在WinForm下,由于微软的放弃,VB也越来越过时了:

(1)VB本身过于简单——因此它支持的东西实现起来超乎想象的简单,他不支持的东西,超乎想象的复杂,他的扩充性不好,因此微软为VB设定了一些常规开发的任务集就决定了VB能做什么。
VB5的时候,COM/DCOM大行其道,VB立马跟进,一下子VB开发COM的效率就立刻超过了所有语言。VB6的时候,ADO数据访问、Office 插件大热,马上VB又增加了这些功能。。。坦率地说,IIS应用程序,ActiveX文档和DHTML在当时有些超前了,后来看看还是很不成熟。总之微软原生支持的功能,VB的实现都超级简单,简单地让别的开发工具的用户嫉妒。
但是之后缺乏微软的支持,让VB去操纵网络、存取XML、访问Web Service、编写多层应用……你会发现,VB比起Delphi、Java、C#,都没有任何优势,反而由于VB对多线程缺乏支持在网络开发方面步履维艰。
(2)随着面向对象和组件化开发的深入人心,初级开发者也意识到OO的重要,或者说面向对象不再是大项目才用到的高级技术,尤其是2003年以后,设计模式的火爆。然而VB却缺乏对面向对象最基本的支持。或者说为了模拟这些VB不具备的特性,用上OO反而得不偿失了。
(3)VB定位于原生Win32程序的开发却并不能支持Windows API的很多特性。比如VB需要声明API,缺乏API的文档,在语法上,不能支持SEH,遇到Callback函数,一旦出现错误,整个开发环境立刻崩溃。在原生Windows开发已经非常萎靡的情况下,VB又敌不过Delphi和VC的夹击。
(4)VB缺乏大厂商的支持,自从VB被微软放弃以后,大厂商对于VB的投入非常谨慎,面向VB的产品越来越有限。很多第三方厂商的SDK,提供VC的头和库,提供.NET的文档,偏偏抛弃了VB。。。就算支持ActiveX接口勉强支持VB,但是明显转换到Delphi、C#平台是更稳妥的办法。
像报表、图表、用户界面等等组件,.NET下有很多选择,而且价格便宜,不少甚至开源,VB下的选择就很少了。。。
VB本身在Vista、XP下的支持也不是很好,VB6自绘的控件和XP的主题格格不入,一些COM组件在Windows Vista下运行不了,WinHelp帮助主题更是被Vista抛弃。
(5)VB的程序缺乏效率,由于VB依赖于虚拟机环境,所以运行速度非常缓慢。编译器本身也不可能再去支持x64、多核心等等新特性。相反的是,原先被骂的Java和.NET由于不断支持新的技术,现在的性能提高很大。不信大家试下,把VB的程序在.NET重新编译下,就能快好多倍。
(6)VB的IDE已经很落后了,大家用用Eclipse和Visual Studio 2008/2010就会发现VB的IDE有多差劲。别的不说,VS2005支持智能感知,在一行开始的时候就有提示,而VB的智能感知就局限在自动完成成员,这一点就非常不方便。

最近看到很多高级VB用户不断透支VB的功能,比如让VB支持内嵌汇编、支持Web Service、支持Aero界面、挖掘IE编程……但是都需要用到很多Hack方法。曾经有个ThunderVB计划,让VB支持编译标准dll,内嵌ASM/C++代码,可谓很牛,不过最后项目还是放弃了,我想最主要的原因是在VB技术落后、市场萎缩的的情况下,开发已经没有成本的优势了。技术到最后无论多牛都必须有市场有需求。VB的On Error GoTo这种异常处理机制大家去研究,可是这些在现代的语言里面早就被优雅的结构化异常处理取代。

下一代的编程语言,比如Ruby、C# 4.0、Java 7、F#或者别的,又裹挟了更多新特性来袭,真的不知道VB还能挺住否。

至于VB的另一个用途,就是成为二级考试的语言,和Turbo C、FoxPro那样。。。但是这些初级开发者到了实际开发的时候还是放弃了VB,这些低水平的重复大量浪费了他们的时间精力和社会资源。我对VB前途非常不看好。
回复此楼

» 收录本帖的淘帖专辑推荐

编程语言

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

jjdg

版主 (知名作家)

优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖
没有基本功就算有Eclipse又怎么样?就像倚天屠龙记里面那个俞老三一样,自己没本事,拿到倚天剑都被人抢走了,还打个残疾!你看看风清扬,树枝还把田伯光收拾了!别好高骛远!有批评VB的时间还不如自己好好学习学习!你编程功底深厚了还在乎VB或C++?这种本末倒置的想法都不知道怎么冒出来的?还是脚踏实地些的好!

[ Last edited by jjdg on 2011-5-15 at 01:08 ]
努力学习!以正当途径!获得需要的知识!
52楼2011-05-06 22:50:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

uboat

银虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
dubo(金币+1): 欢迎常来程序语言版讨论 2011-07-31 13:42:56
引用回帖:
Originally posted by quantumfang at 2011-02-14 10:20:23:
VB这么垃圾的语言,好多学校还在教

我这么说,不是因为这东西没价值

而是因为,天朝的很多人自以为很神,学了VB就会编程了,学了VB也就触类旁通了

尤其是制定教学计划的猪头们,觉得学了VB就得到了最简单 ...

不应该这样说。
在学习数据结构的时候,所有的操作都要用编程实现,但是课本上出现的全是伪代码描述。学习编程真正是要学习的编程的思路,而每种编程语言的语法特点相对于算法和编程思路就简单的多了。编程要把更多的功夫用到学习编程思想和数据结构上面。一般专职的计算机程序员,在中国这个大环境下面会3种以上语言的很多,basic、pascal、c,对于好多老手来说,达到看明白(这里说的是看明白,读懂每个语句的意思,看明白其中的算法)一种新的语言用不了一天的学习时间,对他们来说掌握思路才是重要的。
因此,对于科学计算,不涉及大量的界面操作的应用来说,学习好思路和算法比讨论哪种语言更有生命力重要。
最关键的是编出程序,正确计算出结果。
55楼2011-06-06 19:38:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tonefly

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
现在在科学研究领域很火的是Python!!
23楼2010-11-22 00:12:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

余泽成

至尊木虫 (知名作家)

纯纯家族之纯潜伏者


小木虫(金币+0.5):给个红包,谢谢回帖交流
写的深刻,很多用vb的都是非计算机专业人员,容易上手是vb最大优点!
天行健,君子以自强不息!
4楼2010-10-31 11:30:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

请教一个C语言程序


小木虫(金币+0.5):给个红包,谢谢回帖交流
CODE:
#include
#include
struct DIC{
        char name[3];
        char code[5];
};
struct PROD{
        char name[3];
        char no[3];
};

void code(PROD *p1,int m,DIC *p2,int n)
{    for(int i=0;i              char code[8];
                 for(int j=0;j                          if(strcmp((p1+i)->name,(p2+j)->name)==0){
                                 strcpy(code,(p2+j)->code);
                                 strcpy(code+4,(p1+j)->no);
                                 break;
                         }
                         if(j>=n){
                                 cout<<"企业名称:"<<(p1+i)->name<<';';
                                 cout<<"内部产品编号:"<<(p1+i)->no<<','<<"企业名不存在"<                                  continue;
                         }
                         for(int k=0,m=0;k<6;k++)
                                 if(code[k]=='1')m++;
                         code[k]=m%2+'0';
                         code[k+1]='\0';
                         cout<<"企业名称:"<<(p1+i)->name<<',';
                         cout<<"内部产品编号:"<<(p1+i)->no<<','<<"产品代码:"< }
}

void main()
{    DIC di[4]={"AA","0101","BB","1101","CC","0111","DD","1111"};
     PROD pr[5]={"AA","01","BB","10","CC","11","EE","10","DD","01"};
         code(pr,5,di,4);
}

好好学习,天天向上。
10楼2010-11-01 21:17:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
总结得不错,哈哈,我喜欢看批评VB得文章。同时强烈弟鄙视计算机等级考试。
2楼2010-10-29 14:10:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sincos

木虫 (知名作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
VB还是不错的   容易上手啊
3楼2010-10-31 00:17:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gd88

金虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
我也来推荐Python,
首先就是入门易,代码风格规范。
其次,文档齐全、标准库庞大、开源资源多;
再次,混合编程性好,跨平台,移植性佳。
需要效率的话,可以把相关代码用C/C++重构。
17楼2010-11-03 23:11:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
本帖仅楼主可见
22楼2010-11-19 09:07:34
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

xioooli

金虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1):鼓励参与讨论! 2010-12-20 20:18:32
我继续来推荐 python,真是上得了厅堂,下得了厨房的好语言阿,语法简洁明了,文档丰富,第三方库支持又好
29楼2010-12-14 20:51:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangbo587

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+2):谢谢参与讨论,欢迎常来程序语言版! 2010-12-20 20:18:48
总结的很好,对于程序设计的初学者而言,学习C应该是一个比vb更好的选择 ,但是对于vb的老用户而言,如果应用需求比较简单,比如就是做些简单的界面,或者简单的数值计算,或者使用ado编写简单的数据库应用程序,vb也完全够用,没有必要去学习其他所谓更先进的语言,对于非计算机专业或者业余编程爱好者而言尤其如此,但对于计算机专业学生或者专业软件开发而言,放弃vb6是一个明智的选择。
30楼2010-12-19 22:03:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

willzhang198

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
引用回帖:
55楼: Originally posted by uboat at 2011-06-06 19:38:16:
不应该这样说。
在学习数据结构的时候,所有的操作都要用编程实现,但是课本上出现的全是伪代码描述。学习编程真正是要学习的编程的思路,而每种编程语言的语法特点相对于算法和编程思路就简单的多了。编程要把 ...

同意,关键的还是算法,语言其次!!!!!
58楼2011-11-09 14:30:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingkl2001

铁杆木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
到底牛肉好吃还是羊肉好吃?能饱肚子就是好吃!
黎明已带我上路,我不能停下脚步,善良的人在为我祝福
69楼2013-06-11 18:38:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

ggflying

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
情况属实!!!

大学里学VB 是教学计划强加的!
本来C++或VB 任选的,后来据说教务管理管理不方便,定死只学VB 哈哈!
5楼2010-10-31 18:26:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
晕,vb6是十几年前的东西,当然过时了。和它同时代的产品Office2K、Win2K和Win98都是古董了。
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
6楼2010-10-31 18:38:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

protection

至尊木虫 (著名写手)

java和c++,呵呵。
7楼2010-11-01 08:16:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yzdbiomed

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
推荐学Python,尤其是非专业人员。
8楼2010-11-01 09:25:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bafeite

铜虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
我觉得工程人员还是学Matlab好一些
9楼2010-11-01 19:16:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 recen 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见