最近在做毕业设计,大概的目的就是想把原来用VB(弱类型语言)写的程序,翻译成Java(强类型语言)程序,能符合网络化的要求?偶就是不明白,这个弱类型语言,象VB,JavaScript这些语言,为什么要设计出若类型了,他们在具体的编程中,能给程序员带来什么样的方便?我想了很久都没有一个好的结果,哪位大侠如果知道,请指点一二,让小弟知道我做的这个事情的价值在哪里?不胜感激

解决方案 »

  1.   

    java是強的?vb 是弱的?vb能做的,java一定能做到嗎?真搞笑說真話我建議你去c++版,那裡的mvp說c++的程序員鄙視java,地球人都知道java!=javascript你如果這個都不清楚,你就幹脆別問了。
      

  2.   

    用VB写程序时,对每个变量都进行声明,在声明每一个变量时都定义类型,VB不就成了“强类型语言”了吗?
    VB又没有不让你定义类型!你定不定义是你自己的事!
      

  3.   

    因为我们不想只是为了在屏幕上打印一行"Hello,World!"而自己用机器语言编写各种设备的驱动....同样,我们也不想只是为一做一些简单而标准的事,如写一个标准的Windows窗体、定义一个变长字符串变量,而用汇编自己分配内存、写系统接口(API).C++里也有类库嘛,这不都是为了提高开发效率呀,如果做网页特效的JavaScript语言也要使用者自己来处理垃圾回收这样复杂而麻烦的事,那估计现在的Inertnet上恐怕没有几个网页会是动态的了(因为那样的话,开发周期自然会很长,成本就会很高,做一张简单的网页也许和开发一个小型程序一样复杂)...所谓高级语言,最重要的二个特征就是抽象和继承,别人已经做过的事就不要再重复的去做了,这样才会有很高的开发效率,也会很容易上手.如果什么程序都要自己去写,那估计做程序员的不是累死就是饿死了.....
      

  4.   

    to: stefli((桂电))晕哦~
    人家是针对变量的定义,谈“强弱”
    又不是针对vb这个语言,这种技术~
    '---------------------------------------
    强制变量定义了VB就变成"非弱类型语言"了吗?谁说的?VB就是弱类型语言!她确实不如VC,Delphi和Java,不过,她一点也不烂....
    http://expert.csdn.net/Expert/topic/2826/2826846.xml?temp=.817486
      

  5.   

    还有,上面我已经说了,做出这么个不用声明的功能,完全是为了新手更好入门和老手写简单的程序里可以偷懒,还有,就是可以用来模拟"重载"这种VB不支持的功能....就像API声明中的Any类型,可以防止错误的传递指针导致的程序崩溃....
      

  6.   

    to: shortppsy(小河) ( ) 信誉:76  2004-05-05 08:15:00  得分:0 只有是垃圾的人才会说语言是"弱"的
    '------------------------------------------------------------------VB做不了Ring0级的应用程序,而VC可以做...不过,我说了,她一点也不烂,如果不是要写驱动一类的东东,用VB就足够了,大部分的功能都可以用VB实现....
      

  7.   

    什么年代了 还讨论这个 faint
      

  8.   

    看了大伙的言论,发现论坛上确实有那么一些人,对问题不做深入的研究,就在哪儿乱放P,我的意思就是哪位
     回复人: boyzhang(张郎) ( ) 信誉:99 
    说的那个意思,如果我连Java和JavaScript都搞不清楚!活着还有什么意思!非常感谢给出灼见的朋友们!
      

  9.   

    呵呵,想不到daisy8675(莫依) 也偶尔冲动啊!看到一个弱字就气愤了哈!:)
    依我看楼主的意思并没有讨论VB跟其他语言的优劣,没想到现在大家倒是越来越偏题了啊!
    嘿嘿!:)
      

  10.   

    回复人: allenchou(洪) ( ) 信誉:100 你是不是和莫**睡觉了?  这么唯心的话也说!!!!!!!!!!!!!!
      

  11.   

    我学javascript的时侯你还在地上玩尿呢!
      

  12.   

    to: allenchou(洪)不好意思!不好意思!不好意思!不好意思!不好意思!不好意思!
    Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!
    不好意思!不好意思!不好意思!不好意思!不好意思!不好意思!
    Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!Sorry!我搞错了!实在抱歉!不过现在很少惹 M* 了,上CSDN是来学东东的,不是来惹是非的!网费不便宜呀,浪费在这些无聊的事情上就不好了!  :)我还以为又多了一个像 M* 一样喜欢搞是非的人呢!最后再郑重的说一句,对不起了,是我误会你了!
      

  13.   

    回复人: aabiao() ( ) 信誉:98 需不需要定义,VB由编程者自己说了算,这才叫爽!
    ===========================================================说的好!对呀,C++和Java可以做到不定义就用吗?呵呵,眼光真独到呀!居然可以从这个角度看问题....
      

  14.   

    变量是否需要提前声明并不是语言类型强弱的标准
    比如OCAML这种语言,不用声明一个a:INT这样的变量,可以根据赋值语句的右值确定变量的类型,但是却是一个强类型的语言.有比较严格的编译期类型检查机制.我想强类型应该是指变量的类型在执行过程中不能随意的改变,在编译过程中会进行严格的检查, 这显然对于程序的运行效率和健壮性有帮助.在我所知道的语言中,ADA的类型机制是最强的.JAVA,C/C++等应该算是比较强类型的语言把.
    而弱类型则是把编译时期的类型检查工作放到运行时做了,这样优点是提高开发速度和原型速度,而代价就是运行时的效率低了一些.
    VB是弱类型语言吗?
      

  15.   

    to:回复人: pigpag(噼里啪啦 - 毕业考考砸,心情不错) ( )是典型的弱类型语言。
    '-------------------------------------------------------加一句,不过,一点也不烂...............
      

  16.   

    都别吵了,先看题目再说.......最近在做毕业设计,大概的目的就是想把原来用VB(弱类型语言)[请问该处楼主是不是强调VB是弱类型语言????]写的程序,翻译成Java(强类型语言)[请问该处楼主是不是强调Java是强类型语言????]程序,能符合网络化的要求?[能用符合这个词吗?一种语言应该没有符合不符合之分吧!只有能不能做到/解决某些问题吧?]偶就是不明白,这个弱类型语言,象VB,JavaScript[该处咋变成VB和JavaScript了?不是VBScript和JavaScript吗?]这些语言,为什么要设计出若类型[为什么要设计出若类型?该问题到底该怎样理解?为什么不问为什么要构想设计出若语法?]了,他们在具体的编程中,能给程序员带来什么样的方便?[去学汇编应该就理解什么叫方便了!]我想了很久都没有一个好的结果,哪位大侠如果知道,请指点一二,让小弟知道我做的这个事情的价值在哪里?不胜感激个人思想理解!我的白开水不多!
      

  17.   

    比如:a="this is a string!"
    a=32767
    a=123.4
    a=true不用转换,不用定义,也不会出错,如果只是在一些不太要求效率的程序中,这样写可以省很多事,可以节省时间,初学的也好入门,不会很打击初学者的自信....而在C++一类的语言中,函数要用一样的函数名,就要做重载或模板.....
    再说一遍,VB[VisualBasic],VBS[Windows Host Script],VBScript,VBA[VB For App]和ASP是风马牛不相及的东西(不用的应用领域),虽然语法上大同小异.....
      

  18.   

    //再说一遍,VB[VisualBasic],VBS[Windows Host Script],VBScript,VBA[VB For App]
    //和ASP是风马牛不相及的东西(不用的应用领域),怎么会风马牛不相及呢?最多说“两种概念”了,关系是很密切的:)
      

  19.   

    想把我做的事情讲一下:我们公司的一个产品是:一个高级编译器,将原来许多用VB写的C/S程序翻译成Java,使其能在基于J2EE标准的WEB上运行,也就是将C/S自动转换成B/S,节约现在企业在信息化上的开发成本,保护以前的投资。这就是网络化的要求,因为VB和JAVA在变量的定义上有区别,所以才会有上面的疑问?我并没有任何针对某种语言的看不起,只是想清大家帮忙讨论一下,希望能解惑!
    而且,to yiyan625(太阳)我不是高手,我现在只是在实习,我对C/C++& JAVA有一些了解,对VB确实是不了解。to,boyzhang(张郎) 兄
    你的回答给我很大的帮助,多谢!
      

  20.   

    的确。由强入弱易,由弱入强难。回到你最开始的问题:为什么会有弱类型语言(如:VB)?显然,这是为了开发便利。首先,对于JavaScript, VBScript等脚本语言,其本身的性质决定其不需要运行时的高效(速度和空间)。因为一段脚本语言的规模是有限的。增加大量的类型将给脚本解释器或者运行库带来累赘(因为这些类型可能本身需要进一步的声明),而且会严重影响开发效率。另一个原因就是使用简易。不得不说,VB的弱类型机制才使得VB容易上手并成为全球风靡的语言。如果VB也像VC一样,用WPARAM LPARAM LRESULT HDC HBITMAP这样看上去可怕的类型替换现在如此简易的Long,并且时不时要注意类型转换的问题,那这种易学性就会一扫而空。易学是优点,不像某些喜欢曲高和寡的人说所的“VB-垃圾”。虽然它功能有限,却是一种伟大的创造。
      

  21.   

    那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!那些说VB不好的人都是垃圾!!!!!!!!!!!!!!
      

  22.   

    在我学程序前,确实听说c是多么多么的好,但是当我真正学了程序后,才知道,程序只是一种工具,一种通用的制作工具的工具。
    vb很好的。做什么事情为什么要那么复杂呢?简洁为美!
    我用vb做了几个程序,感觉不错。
      

  23.   

    呵呵,up一下,讨论得很激烈呀!借用别人的一句话说说吧!VB虽易,精者几何?水木清华[清华大学BBS]上曾经讨论过这个问题,结论是,VB一点也不烂....
      

  24.   

    真奇怪,说了那么多,怎么没有人提到OLE、COM?Delphi、VC都不是弱类型,都可以用ADO访问数据库,但哪有用VB来得方便、灵活?Delphi封装的ADO组件,还是得用Variant。
      

  25.   

    VB用来做一般的要求不高的COM,再合适不过了,没有其它任何语言能比
      

  26.   

    接viena(晓琴)的话题,例如保存一个webbrowser中的全部内容,使用VB和Delphi的方法如下:VB: Dim oPF As IPersistFile 
    Set oPF = WebBrowser1.Document 
    oPF.Save "TheFileNameHere.htm", False Delphi: uses 
    MSHTML,OleCtrls, SHDocVw, StdCtrls,ActiveX; 
    function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean; 
    var 
    ps: IPersistStreamInit; 
    s: string; 
    ss: TStringStream; 
    sa: IStream; 
    begin 
    ps := WB.document as IPersistStreamInit; 
    s := ''; 
    ss := TStringStream.Create(s); 
    try 
    sa:= TStreamAdapter.Create(ss, soReference) as IStream; 
    Result := Succeeded(ps.Save(sa, Bool(True))); 
    if Result then ACode.Add(ss.Datastring); 
    finally 
    ss.Free; 
    end; 
    end; 在Delphi中需要进行很多接口的转换(转换这个词可能不太合理,实际这种强制转换还是不严谨的,真正的转换可以参考这篇文章:http://www.csdn.net/develop/read_article.asp?id=18465),而在VB中不需要做这些事情。一句话就搞定 :-)