User talk:Klever: Difference between revisions

no edit summary
(not really)
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 3:
::There aren't, really. Visual Basic 4/5/6 is a general-purpose implementation of VBA, while the VBA embedded in apps such as Word, Excel, etc is geared toward that specific app -- things like the <code>Document</code> object in MS Word and the <code>Spreadsheet</code> object in MS Excel. (Forms also work somewhat differently.) But VBA can do literally anything that VB6 can (except compile), and VB can do anything that VBA can do, and the code is ''almost'' identical.
::Most non-.Net VB code can be run from VBA with little or no changes, and vice-versa. -- [[User:Eriksiers|Erik Siers]] 20:19, 4 October 2011 (UTC)
:::Hm. This suggests a way to fix language categorization for VB and VB.Net. On one hand, you have Visual Basic.NET. On the other, you have Visual Basic for Applications. Categorization ambiguities between VB 4/5/6, VB.Net and VBA were a thorn in my side from nearly the very beginning of this site. That still leaves VB 1/2/3, though. (And I played with VB for DOS as a kid. I don't know where that fits) --[[User:Short Circuit|Michael Mol]] 13:57, 5 October 2011 (UTC)
::::VB can be divided into 4 broad categories: VBDOS, early VB, COM VB, and VB .Net.
::::*'''VBDOS''' is really part of the QuickBASIC family -- in fact, VBDOS can compile most QB programs without change, and could be considered the "missing link" between QB and "real" VB. (There is a Win16 program included with VBDOS and ''maybe'' VB1 that can translate back-n-forth.) See [[wp:Visual Basic#Timeline|this section of WP's VB page]] for a tiny bit of info. (The "forms" part of VBDOS is almost identical to VB1; it's ''everything else'' that needed translating.)
::::*'''Early VB''' is VB1-3. The language is essentially the same as VB4-6, but the internals are a bit different, they're 16-bit only, and they use VBX controls instead of COM (OLE, ActiveX, OCX) controls.
:::::'''EDIT:''' I wouldn't worry about the Win16 VB's much; they're almost certainly not in use any more. As far as programmers are concerned, early VB can probably be grouped with COM VB, for the most part. The language doesn't change very much from, say, 3 to 4, or even 1 to 6; someone who learned on VB1 could jump to VB6 and be up to speed within a day. -- [[User:Eriksiers|Erik Siers]] 17:28, 5 October 2011 (UTC)
::::*'''COM VB''' is VB4 through VB6, and VBA. They are Win32 (VB4 also has a Win16 version) and use ActiveX (OCX) components.
::::*'''VB.Net''' isn't really VB, as far as most "classic" VB programmers are concerned. It's got a VB-ish syntax, but the differences are great enough that it's really a separate language.
::::Hope that helps. [http://vb.mvps.org/ Karl Peterson] is one of the main VB experts on the www; I'll try poking him and see if he'll swing by and add in his 2&cent;. -- [[User:Eriksiers|Erik Siers]] 17:18, 5 October 2011 (UTC)
::Agree with Erik on nearly all counts. VBA is one of the libraries that compose ClassicVB, by which I refer to VB4-6 most often. VB1-3 are also ClassicVB, although 16-bit and without a few behavioral changes (Evil Type Coercion, DWORD alignment, and Unimess) introduced with the move to 32-bit at VB4. The host object models used in VBA (Document, Application, etc) are wholly independent of the VBA library itself. And VB proper does offer a handful of objects (Printer, Clipboard) not available in VBA. But, all in all, VB and VBA are much the same. In fact, I use one set of [http://classicvb.net/tools/vbMarkUp/ keyword definitions] to parse either.
::VB.NET, on the other hand, is VB in name only. Should've been called [http://vfred.mvps.org Visual Fred], according to some. It is in no way, shape, or form ClassicVB. And VBDOS is really just a variation on QuickBasic. That said, both QB and VBDOS code loads and runs almost without fail, other than uniquely platform dependent operations, in VB1-6.
::If anyone wanted my best advice on categorizing VB dialects, I'd say VB/VBA can quite safely be lumped together without much concern about the minute distinctions between them. QB/VBDOS are really just earlier dialects on a 25-year continuum of forward-compatible Microsoft BASIC platforms. The most clear division, if there is to be but one, would be to break off at VB.NET as very little code can move back and forth, and of the little that can actually execute on both some will produce different results! That's a terrible trap for Microsoft to have laid for its users, and needs to be highlighted at any/all opportunity.
:: ~~ [http://classicvb.org/ Karl Peterson]
Anonymous user