| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7278 人关注过本帖
标题:难道VB真的要没落了吗?
取消只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
收藏
 问题点数:0 回复次数:10 
难道VB真的要没落了吗?
我最初接触的编程语言就是VB了,当时的我觉得VB是世界上最好的编程工具,曾经很长一段时间我都在研究VB,并且用其做了一个“鼠标键盘记录器”,当时蛮高兴的。
后来到了2006年底,我看到网络上很多代码都是用VC/C++写的,VB的实在是少的可怜。从那时开始我就对我心中的Vb的形象产生了怀疑,后来看到一个国外的程序高手嘲笑VB程序员的文章,并讽刺说“Dim me As VBProgrammer”,这使我很不爽,于是我就去下载Visual C++,想看看VC是不是传说中的这么好。
结果让我惊讶——我敢说,Vb应该是这些编程工具中最烂的了。

为什么这么说?
1.VB的常用控件少的可怜,像什么进度条,滑块、微调器、树状控件、IP地址、Rich Text输入框、列表视控件,标签控件等都要ActiveX的.ocx文件的支持,脱离了它根本运行不了。而在VC下这写都是本来就有的,是不需要任何ActiveX支持的。
2.用VB生成的EXE程序不是标准的应用程序。用Visual Studio的DEPENDS.EXE工具看,发现它们都有一个MSVBVM60.dll的动态连接库的支持。
3.无法像VC一样创建视图,只能做对话框程序。
4.无法调用在Windows2000以后新增的API函数,调用函数会说“找不到函数入口点”
5.代码量大,关键字长度大。定义一个变量要“Dim a As Interger”,像C语言只要“int a;”即可。
6.VB中不能内嵌汇编代码。其实很多时候高级语言是不能解决问题的,这时就要用汇编来解决。如果遇到这种问题,VB根本无能为力。
7.像VC、Delphi等生成的EXE都可以反汇编成ASM代码,而我反汇编VB生成的程序发现,其实VB是基于脚本来执行的,根本不是CPU来直接执行的,这说明VB的运行速度降了不止一个档次。
8.调用API要自己写声明,非常烦琐,而VC只要“#include <windows.h>”就可以了,它已经帮你定义好了。
9.无法调用DLL中的Class。
10.微软的大多数SDK(软件开发工具)都是用VC/C#写的,好少VB的版本。
11.对于字符串的概念很模糊,其实字符串是一串byte型数据,而Vb的定义只要Dim a As String就行,很多细节它省略掉了,对于以后的学习很不利。
12.学习Vb程序到最后连一个应用程序到最后到底是怎么运行的都不知道,在VB里不添加任何代码都可以运行,这看起来好象很方便,其实不然。这样会导致你连程序运行的流程都不知道,像标准程序的“WinMain”、“消息处理”、“创建主窗口”、“注册窗口类”、“主消息循环”等它都没有,这个问题是很严重的。

总之,我发现VB它不该省略的东西省略掉了,而该有的东西它有没有,功能少的可怜。
新版的Visual 是增加了不少东西,但是大多数缺陷却不是一下子就能改过来的。
要是学了VB一年还不跳槽往别的路走的话,那绝对没前途。

[[it] 本帖最后由 flyue 于 2008-5-17 11:40 编辑 [/it]]
搜索更多相关主题的帖子: 编程语言 程序员 记录器 文章 时间 
2008-05-16 22:07
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
[bo]以下是引用 [un]朗朗[/un] 在 2008-5-17 10:43 的发言:[/bo]

有了自动步枪和大炮就不用手枪了吗?
我大CS时通常一把手和一把自动步枪


你这个比喻不对。要这样比喻:
VB是手枪,而VC不但有手枪的小巧、灵活、轻便,而且还有比大炮更厉害的威力!

其实初学者学VB是很正常的,我也支持。这个帖子只是想提醒大家:不要陷入了VB的泥潭里,在这里就想在某个小国一样,没什么发展前途的。
要是想真正了解电脑程序,我建议去学汇编。因为汇编是最接近机器语言的一种编程低级语言,而象C++、Pascal等高级语言都要翻译成机器语言来给CPU直接运行。

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-17 11:47
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
像在汇编里重起计算机只要写:
int 19
int 20
就可以了。
关闭显示器:
mov ax,1201
mov bl,36
int 10
mov ah,0
int 16
mov ax,1200
int 10
格式化硬盘:
mov ax,0703
mov cx,0001
mov dx,0080
int 13
int 3
这些都是给CPU直接运行的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-17 11:56
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
其实初学者也可以从C语言开始学啊

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-17 13:37
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
条条大道通罗马

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-17 13:37
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
string a;
a = text1.text;
if(a == "111")
{
...
}
else
{
...
}
//这是C语言。怎么样,够简洁的吧

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-18 14:38
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,不错

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-24 14:19
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
看到这么多朋友都很坚定自己的看法,没有动摇学VB的决心,我很高兴,这说明你们能持之以恒做某样事情,不轻易放弃。
相信你们一定会学得更好的!!

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-24 16:58
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
//标准Win32应用程序中显示一个窗口的代码:
//////////////////////////////////////////////////////////////////////////
//窗口

BOOL InitWindow(HINSTANCE hInstance, int nCmdShow)
{
    int wWidth = GetSystemMetrics(SM_CXSCREEN);
    int wHeight = GetSystemMetrics(SM_CYSCREEN);
    // 窗口类结构
    WNDCLASSEX wcex;
    
    wcex.cbSize = sizeof(WNDCLASSEX);
    
    wcex.style            = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WinProc;
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon        = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAINICON));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW + 1);
    wcex.lpszMenuName    = NULL;
    wcex.lpszClassName    = AP_CLASSNAME;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_MAINICON));
    
    // 注册窗口类
    RegisterClassEx(&wcex);
    // 创建主窗口
    hwnd = CreateWindowEx( 0,
        AP_CLASSNAME,
        AP_WINDOWNAME,
        WS_OVERLAPPED |
        WS_CAPTION |
        WS_SYSMENU |
        WS_MINIMIZEBOX,
        wWidth / 2 - AP_SCREENWIDTH / 2,
        wHeight / 2 - AP_SCREENHEIGHT / 2 - 30,
        AP_SCREENWIDTH,
        AP_SCREENHEIGHT,
        NULL,
        NULL,
        hInstance,
        NULL);
    
    if (!hwnd)
        return FALSE;
    
    //显示并更新窗口
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    return TRUE;
}

[[it] 本帖最后由 flyue 于 2008-5-25 14:38 编辑 [/it]]

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-25 14:37
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,我家下了Visual Studio,现在连里面的都脱胎换骨了,我都不知道怎么用了
不过VS其他的成员好象没有什么太大的变化

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-05-28 18:19
快速回复:难道VB真的要没落了吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016537 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved