|
|
Visual BASIC#REDIRECT Visual Basic Visual Basic:''This article is about the Visual Basic language shipping with Microsoft Visual Studio 7.0 and earlier. For the Visual Basic shipping with Microsoft Visual Studio .NET, see Visual Basic .NET.'' Visual Basic (VB) is an event driven programming language and associated integrated development environment created by Microsoft. It is derived heavily from BASIC programming language. VB enables Rapid Application Development (RAD) of graphical user interface (GUI) applications, easy access to databases using Data Access Objects, RDO, or ADO, and easy creation of ActiveX controls. A programmer can quickly put together an application using the software component provided with Visual Basic itself. == Derivative languages== Microsoft has developed a number of Visual Basic versions for scripting applications: * Visual Basic for Applications (VBA) is included in many Microsoft applications (like Microsoft Office), and also in several third-party products like WordPerfect_Office. There are small inconsistencies in the way VBA is implemented in different applications, but it is largely the same language as VB6. * VBScript programming language is the default language for Active Server Pages and can be used in Windows scripting and client-side web page scripting. Although it resembles VB in syntax, it is a separate language and it is executed by the Windows Scripting Host as opposed to the VB runtime. These differences can affect the performance of an ASP web site (namely inefficient string concatenation and absence of short-cut evaluation). When wishing to create a new programming tool, Microsoft had the option to either modify the popular Visual Basic 6.0, or create a totally new tool from the ground up. They chose the latter, and developed Visual Basic .NET, the successor to Visual Basic 6.0, which is part of Microsoft's Microsoft .NET platform. The VB.NET programming language is surprisingly very different to that of VB6, however, the application itself does feature the ability to import and convert existing VB6 project files. == Language features == Visual Basic was designed to be usable by all programmers, whether novice or expert. Forms are created using drag and drop techniques. A tools palette is used to place controls (e.g., text boxes, buttons, etc.) on the form (window). Controls have attributes and event handlers associated with them. Default values are provided when the control is created, but may be changed by the programmer. Many attribute values can be modified during run time based on user actions or changes in the environment, providing a dynamic application. For example, code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form, expands to fill up the form, etc. By inserting code into the event handler for a keypress in a text box, the program can automatically translate the case of the text being entered, or even prevent certain characters from being inserted. A Visual Basic application can consist of one or more windows, or a single window that contains child windows, as provided by the operating system. Dialog boxes with less functionality (e.g., no maximize/minimize control) can be used to provide pop-up capabilities. Controls provide the basic functionality of the application, while programmers can insert additional logic within the appropriate event handlers. For example, a drop-down combination box will automatically display its list and allow the user to select any element. An event handler is called when an item is selected, which can then execute additional code created by the programmer to perform some action based on which element was selected. Alternatively, a Visual Basic component can have no user interface, but be available to other programs, providing objects that implement functionality. This allows for server-side processing or an add-in model. The language is garbage collection (computer science) using reference counting, has a large library of utility objects, and has basic Object-oriented_programming. Unlike many other programming languages, Visual Basic is generally not case sensitive. (String comparisons are case sensitive by default, but can be made case insensitive if so desired.) Visual Basic spawned the first commercially viable reusable component market. There are thousands of 3rd party components available today from hundreds of vendors. Visual Basic makes it easy to build, deploy, use, and reuse components, however it is not as easy to use forms created for one application with another, due to the global nature of the language. == Controversy == Visual Basic is a controversial language; many programmers have strong feelings regarding the quality of Visual Basic. It was designed to be a simple language, and many features found in languages like C Plus Plus and Java programming language are not found in Visual Basic. In the interest of convenience and rapid development, some features like Compiler time type-checking and variable declaration can be turned off. This leads to programmers praising Visual Basic for how simple it is to use, but also leads to frustration when programmers realize they need to use a feature that has been removed. Many critics of Visual Basic explain that the simple nature of Visual Basic is harmful in the long run. First, it is often used to teach programming due to its simplicity, but learning to program in Visual Basic does not introduce the programmer to many fundamental programming techniques and constructs. This often leads to unintelligible code and workarounds. Second, allowing the programmer to turn off many of the checks and warnings that a compiler implements may lead to difficulties in finding bugs. Experienced programmers working in VB tend to leave such checks on. Much criticism of Visual Basic is simply criticism of BASIC_programming_language. A famous formulation by Edsger Dijkstra was, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration [http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html]." (Dijkstra was no less scathing about FORTRAN, PL/1, COBOL and APL programming language.) But many of the proponents of Visual Basic explain that the simple nature of Visual Basic is its main strength, allowing very rapid application development to experienced Visual Basic coders and a very slight learning curve for programmers coming from other languages. Additionally, Visual Basic applications can easily be integrated with databases, a common requirement. Visual Basic is also a conglomerate of language features and syntax, with less consistency, but more tolerance, than many modern programming languages. Many language features like GoSub, On Error, and declaring the type of a variable by the last character in the name (i.e. str$) are legacies from Visual Basic's BASIC roots, and are included for backward-compatibility. Other characteristics include variable and subroutine names that are not case sensitive, and an underscore "_" must be used for a statement to span multiple lines. Some Visual Basic programmers perceive these as strengths needed to avoid case-sensitive compiler errors, and line-termination characters some languages require, usually semicolons. The language continues to attract much praise and criticism, and it continues to cater to a large base of users and developers. === Programming constructs not present in Visual Basic === * Object-oriented programming. Visual Basic has simple support for object-oriented programming but many common object-oriented features (such as inheritance (computer science)) are not present in versions prior to Visual Basic .NET (2002). Visual Basic often uses different terminology, such as the 'property' concept, which is often referred to attributes and implemented using class variables in C++ or Java. * Thread (computer science) support not present prior to Visual Basic .NET. * Exception handling with Try-Catch-Finally prior to Visual Basic .NET. Errors are handled by an " On Error Goto ''line''" statement.
* Built-in support for some bitwise arithmetic such as Bitwise operation#Bit_Shift.
* Typecasting (programming). VB instead has explicit conversion functions.
* Equivalents to C programming language-style pointer are very limited.
* Visual Basic is limited to signed Integer (computer science) of 8 to 32 bits (8 to 64 bits in Visual Basic .NET and later), whereas many other languages provides built-in unsigned integers.
* 32-bit and 64-bit Visual Basic is internally limited to UTF-16 strings, although it provides conversion functions to other formats (16-bit Visual Basic is internally limited to ASCII strings).
* Visual Basic doesn't allow ''constant'' variables to contain an array. Therefore extra processing is required to emulate this.
While Visual Basic does not naturally support these features, programmers can, sometimes with difficulty, construct work-arounds to give their programs similar functionality if they desire.
=== Behaviors present in Visual Basic ===
VB has the following uncommon traits:
* Variable array base. The first element in an array can either be referenced as the 0th or 1st element (controlled by the Option Base statement), leading to possible confusion when reading Visual Basic code. This lower bound is not limited to 0 or 1, because it can also be set by declaration. In this way, both the lower and upper bounds are programmable. In more subscript-limited languages, the lower bound of the array is not variable. This uncommon trait doesn't exist in Visual Basic .NET and VBScript.
* Ability to run the application without performing a full compile or making an executable, allowing for edit-and-continue changes.
* Relatively strong integration with the Windows operating system.
* significance arithmetic as the default behaviour when converting real numbers to integers.
=== Visual Basic and VB.NET ===
Visual Basic .NET, VB.NET, is a backwards-incompatible upgrade of Visual Basic to Microsoft's Microsoft .NET platform. Practically all of the above criticisms have been addressed with many of the missing features added. VB.NET has support for threading, advanced object oriented code, Try-Catch-Finally blocks, and zero-based arrays. Many new features (mainly from the .NET framework) have also appeared, like remoting, web services, 64-bit integers and ADO.NET.
VB.NET is also a fully-compiled language (as opposed to previous versions which could both compile and interpret the language). Programs require compilation even to be debugged. This resulted in a number of features being removed from Visual Basic, including the quick execution of programs, and the famous edit-and-continue feature (this feature will be restored in Visual Basic .NET 2005). Other significant features from past editions were also removed including control arrays.
Many of the original critics of Visual Basic now praise VB.NET for providing a "complete" language, while a few supporters of Visual Basic claim VB.NET has made the language too complicated and too hard to use for simple application development. Another criticism of VB.NET is the incompatibility and lack of similarity in syntax. VB.NET provides a wizard to help upgrade code, but many features are not converted properly. The wizard produces a list of places in the code where the upgrade is incomplete, but large projects have many thousands of such places requiring lots of programmer time to complete the upgrade. In particular the ''Variant'' data type, which was the default data type is no longer supported. Therefore, programs that did not declare all variables and/or those that depended on the Variant data type cannot be converted without significant effort. Programs written in VB.NET are not able to be feasibly converted back to VB6 code at all.
Some believe VB.NET support will diminish, with C Sharp programming language becoming the preferred language for .NET programming. This is despite the fact both compile to the same .NET Common Intermediate Language, with the programming language choice merely a matter of syntax preference.
=== Other criticisms of Visual Basic ===
* Not being very portability. It is only available for Microsoft Windows, although a MS-DOS version was marketed at one time. However, much of the code can run in Microsoft Office applications using VBA, including those applications running on Mac OS.
* Being too big. Visual Studio is distributed on several CD-ROM, and executables require a 1.4 MB runtime library. However, while it is indeed distributed on several disks, Visual Studio is in essence a suite of applications, including Visual Basic, Visual C Plus Plus, Visual Interdev, Visual SourceSafe, Visual J Plus Plus ( all in Visual Studio 6.0), and C Sharp, J Sharp, Visual C Plus Plus, and Visual Basic .NET ( in Visual Studio .NET 2002 onwards). In reality, Visual Basic itself occupies only a large portion of one of the distribution discs.
* Having bugs in the Integrated Developer Environment. This is fixed to some extent by a series of service packs from Microsoft.
* In VB6 and prior versions, the use of many core OS functions required directly calling into properly manually setup declarations of the Windows API. Due to the poor integration of VB with the native Windows API, this many times led to need for conversion code and low level memory "tricks" that were more complex than even that needed by "harder" or lower level programming languages like C.
== Evolution of Visual Basic ==
VB 1.0 was introduced in 1991. The approach for connecting the programming language to the graphical user interface is derived from a system called ''Tripod'', originally developed by Alan Cooper, which was further developed by Cooper and his associates under contract to Microsoft.
=== Timeline ===
* Visual Basic 1.0 (May 1991) was released for Windows.
* Visual Basic 1.0 for DOS was released in September 1992. The language itself was not quite compatible with Visual Basic for Windows, as it was actually the next version of Microsoft's DOS-based BASIC compilers, Microsoft QuickBASIC compiler and BASIC Professional Development System. The interface was barely graphical, using extended ASCII characters to simulate the appearance of a GUI.
* Visual Basic 2.0 was released in November 1992. The programming environment was easier to use, and its speed was improved.
* Visual Basic 3.0 was released in the summer of 1993 and came in Standard and Professional versions. VB3 included a database engine that could read and write Access databases.
* Visual Basic 4.0 (August 1995) was the first that could create 32-bit as well as 16-bit Windows programs. It also introduced the ability to write classes in Visual Basic.
* With version 5.0 (February 1997), Microsoft released Visual Basic exclusively for 32-bit versions of Windows. Programmers who preferred to write 16-bit programs were pleased to find that Visual Basic 5.0 was able to import programs written in Visual Basic 4.0, and it was not difficult to convert Visual Basic 5.0 programs to be compatible with Visual Basic 4.0. Visual Basic 5.0 also offered the ability to compile to native Windows executable code, eliminating the need for a runtime library.
* Visual Basic 6.0 (Summer 1998) improved in a number of areas, including the ability to create web-based applications. VB6 will enter Microsoft's "non-supported phase" starting March 2008.
* Visual Basic .NET was launched in 2001 along with the Microsoft .NET. Its language features are much richer than previous versions, although it is more complex. VB .Net is not backwards compatible, so many older VB programs must be modified to remove features incompatible with VB .Net (e.g., non-zero base arrays, the use of Variant, etc.)
* Visual Basic .NET 2003 was launched in 2003 along with the Microsoft .NET 1.1.
* In 2004 Microsoft released a development stage version of Visual Studio.NET 2005 (codename Whidbey). This included a beta of version 2.0 of Visual Basic .NET
* Also in 2004, Microsoft announced a return to offering support for the hobbyists that made Visual Basic so popular with the announcement of Visual Basic Express, and Visual Web Developer Express. Both are reduced feature versions of Visual Studio 2005 and support Visual Basic.NET 2.0.
* In April 2005 Microsoft announced that support for non .NET versions of Visual Basic would end within a few years. The Visual Basic community instantly expressed its concern and lobbied users to sign a petition to keep the product alive. Microsoft refused to change their position on the matter.
=== Visual Basic and HyperCard ===
Putting Visual Basic into historical context invites comparison with HyperCard, a programming tool developed by Bill Atkinson, Dan Winkler, and their associates at Apple Computer and released in 1987. Both HyperCard and VB initially present the user with a "drawing" environment in which UI objects can be dragged, sized, captioned, and have a set of properties edited. Both connect a set of events, associated with the visual objects, to fragments of code. In both cases, the code is written in a programming language that is intended to cater to the novice and be easy to use. This is not to suggest that VB is a clone or copy of HyperCard. The relationship is more like that of C or Pascal to ALGOL; one can detect a family resemblance.
Unlike VB, HyperCard's programming language, HyperTalk, like COBOL before it (and AppleScript after it), consists of syntactically valid English sentences, such as "Get the number of card buttons." (Whether this actually makes it any easier to read, write, understand, or maintain than BASIC is arguable.)
The biggest difference, and the reason why VB was a breakthrough in a sense that HyperCard never was, is that VB produced applications that were virtually indistinguishable in look, feel, and general characteristics from Windows applications produced with traditional development tools. That is, it produced "real" Windows applications. HyperCard produced HyperCard stacks, not true Macintosh applications. HyperCard briefly spawned a limited cottage industry of commercial "stackware," rather like the former market in spreadsheet templates, but saw little commercial application (with notable exceptions: the fully commercial adventure game Myst was based on an elaborated version of HyperCard). HyperCard "stacks" were always recognizable as such.
HyperCard made a big impression when it was released in 1987, but for various reasons Apple did not follow it up vigorously or develop it much beyond what it was in 1987. By the year 2000 Apple had effectively abandoned it; it was officially discontinued in April 2004.
==External links==
*[http://msdn.microsoft.com/vbasic/ Visual Basic at MSDN] (primarily supports the VB.Net version)
*[http://msdn.microsoft.com/vbasic/previous/vb6/ VB 6.0 at MSDN]
*[http://visualbasic.about.com/ Visual Basic Section on About.com]
*[http://www.vbtutor.net/ Visual Basic Tutorial for Beginners]
*[http://www.developerfusion.co.uk/vb/ Visual Basic section on Developer Fusion]
*[http://members.shaw.ca/mattleung/How%20to%20Create%20a%20Simple%20Game%20Using%20Microsoft%20Visual%20Basic.pdf How to Create a Simple Game in VB.NET]
Programming languages
Major programming languages
Imperative programming languages
Procedural programming languages
BASIC programming language family
BASIC dialects
Microsoft Visual Studio
Microsoft development tools
ms:Visual Basic
simple:Visual Basic
Visual Basic== Poor Documentation == User:Enochlau: VB doesn't have poor and inaccurate documentation now, but I have heard suggestions that it did in the past. User:MrJones 13:32, 8 Mar 2004 (UTC) == Visual Basic, Scripting Edition and for Applications == Are these the same? Or is VBA a subset of VB proper that compiles in the same way? What about the Windows Scripting Host? User:MrJones 21:15, 21 Feb 2004 (UTC) No, VBScript is a mostly cut-down version of VB6 with only Variant variables. It does have the ability to define multiple classes in one file (like VB.NET) and is thus still rather powerful for algorithm and OO design. However, VBA is VB6 or rather VB6 is VBA with a forms engine. Because Excel and Word have forms of a sort, almost any program that can be produced in VB6 can be made to be contained in a document. Windows scripting host, and now WMI, facilitates the use of VBScript (and occasionally VB in general) for computer system administration tasks, which is the normal reason to use scripting languages in general. Now why did you ask? ;-) User:Markhurd 04:00, 27 Feb 2004 (UTC) So, VBScript is interpreted as JavaScript or Python are and VB4, 5 and 6 (and .NET?) are compiled to POFF .exe files. These then call functions in DLLs, either the Forms code (VB4/5/600.dll?) or a DLL for the application (e.g. Access). OK. What about programs in (e.g. word) documents? Are they scripts or compiled binaries embeded in the OLE2 structure? :Yes, VBScript is interpreted (though ASP caches the parsed code -- tokens -- to gain some benefit from code that isn't changing). :Yes, VB programs are compiled to PE .exe files, however until VB5 the code was compiled to P-Code, VB5 and VB6 have a choice of P-Code or 'true' compiled code (using the C++ compiler's back-end), and VB.NET uses the .NET arhitecture which is effectively a compromise of the two, with extra features. :Yes, there's a run-time library required for all versions: :* VBRUNx00.dll for VBx, x=1-3 (16-bit) :* VB400bb.DLL for VB4 16-bit (bb=16) or 32-bit (bb=32) :* MSVBVMx0.DLL for VBx, x=5-6 (32-bit) :* .NET Framework for VB.NET. :VBA macros are stored as P-Code in the OLE2 structure. (P-Code means tokenized scripts.) :User:Markhurd 15:46, 25 Jun 2004 (UTC) I would like to talk around this a bit, because I would like to establish a clear picture of the situation. As to what I am interested in knowing at this very moment; I wonder if it is possible to use languages other than VB in office applications (e.g. by instantiating interface objects as one does in ASP). It would seem not. :The Office applications themselves are ''just'' ActiveX (COM) servers, so they can be manipulated with any language that can talk COM. However, the VBA IDE is tightly coupled with VBA, so you'd need an external editor. :User:Markhurd 15:46, 25 Jun 2004 (UTC) Many thanks for helping clear this up for me. I hope to come back and work the information you supply into the article. User:MrJones 10:49, 5 Mar 2004 (UTC) == Removal of non-NPOV == took out the sentece, "Virtually every Microsoft product has a corresponding VB component library, which gives Microsoft a powerful lock-in on their customers." Doesn't seem neutral. --MarXidad, 2002-01-19 9:15 pm took this out: "One can build a simple web browser in 30 seconds flat with Visual Basic version 6, simply by following a built-in application wizard step by step." -- it seemed irrelevant. user:LeonBambrick == Request for information about VBDOS 1.0 == This page redirects from VBDOS 1.0, but it does not seem to have any information on VBDOS. In fact, it even says VB is only for Windows, which seems in contradiction with the existence of a VBDOS 1.0. What's with that? (VBDOS 1.0 is linked from 'QBASIC programming language.') --[anonymous], 2002-12-17 3:58 pm :I vaguely remember seeing VBDOS marketed, and that's about it. If someone knows something more about VBDOS, slap it in. :--- williamv1138 ::Done. ::--User:Cprompt 08:05, 22 Dec 2003 (UTC) == Despair at "bad writing" == Awful, awful writing. I tried to tighten and copyedit, but died of crap writing fatigue half way through. Anyone else want a go? - User:David Gerard 10:49, Jan 14, 2004 (UTC) I like the edits by User:128.32.36.26, but the Evolution of VB ought to emphasise the importance of VB3 as being a stable version, the one that cause the popularity of the program to soar -- VB3 is to VB as Windows 3.1 is to Windows. I'd be bold and make the change but don't have NPOV words for it at the moment. - User:Markhurd 15:59, 25 Jun 2004 (UTC) == Does The section on VB and Hypercard belong here? == Doesn't it seem like the part on VB vs Hypercard is just out of place? I don't think it should be in there. ::--User:ronincyberpunk It was a reaction to an earlier form of the article which implied that VB was a completely original invention by Microsoft, failed to credit Alan Cooper, and failed to acknowledge any intellectual heritage for the product. Readers might have inferred that VB sprang full-grown from the head of Gates. I thought and think that a VB article needs to give some background and history. I think the absolutely essential points are: *VB had some distinct similarities to HyperCard; HyperCard and other similar environments were "in the air" (''fully-functional and available?'') (''Sure. HyperCard, in something (alas) very close to its final form, was introduced in 1987. VB, 1991. HyperCard was definitely available, so was Toolbook, I believe several Mac HyperCard-like products such as SuperCard had been released...'' User:Dpbsmith 16:11, 8 Mar 2004 (UTC)) at the time. *VB was not a copy or clone of HyperCard and represented an equal or greater breakthrough. (For an example of a HyperCard knockoff or clone, I'd cite Asymmetrix Toolbook, which was at one time bundled with Windows 3.0). These statements should be in the article somewhere, and to avoid POV needed to be more than bald assertions. In my efforts to support these statements, I got a little carried away. User:Dpbsmith 13:50, 8 Mar 2004 (UTC) :I think this little historical footnote is interesting. OTOH, I don't think there's enough in it for another article. User:MrJones 14:06, 8 Mar 2004 (UTC) == Negative POV expressed == It's my opinion that the article currently sounds pretty biased against VB. It has a list of reasons why VB is a bad language, but doesn't list advantages to it, or counter-arguments to the flaws. For instance, it says that VB doesn't use a syntax common to other languages, such as C/C++, Java, etc. But, it doesn't say that the syntax is easier for newcomers to learn, and looks more human readable to inexperienced programmers. Likewise, there's no mention of the fact that small, GUI-based applications with rather simple functionality (especially those not needing to use much API, COM models or similar) are easier built and maintaned in VB than many other languages. Anyone else think that the article should add some positive points? User:Solver 10:35, 4 Apr 2004 (UTC) : Yes. The positive points you mentioned are attributes rather than counter-POV. Additionally, there is much evolution through the versions that is not described. Wikipedia:Be bold in updating pages. Use Wikipedia:Neutral point of view. -- User:Zigger 14:58, 2004 Apr 4 (UTC) :Yes. Visual Basic (this is all for the talk page, of course, not for the article) is a often the target of ill-considered hostility, for several reasons. First, in the 1980s, the BASIC language itself was disparaged within the academic computer science community. Wirth had proseletized successfully for PASCAL as a better teaching language, an idea with considerable merit, but the actual adoption of PASCAL by universities led to a kind of snobbery in which instructors implied that using BASIC would rot your brain and students parrotted the sentiments. The academic community frequently disparages languages such as (in chronological order) COBOL, MUMPS, VB, etc. which are superbly designed for the real-world requirements of real-world application programmers. Second, VB is Microsoft-proprietary and attracts some scorn for that reason. Bill Gates himself, of course, together with Paul Allen, personally developed an 8080 BASIC implementation, and Microsoft corporate ego tends to push BASIC. Third, and I think you can see clear signs of this in the present market, VB knowledge became a marketable job skill in the late 1990s, with VB programmers being paid less than C++ programmers, and this intensified the snobbery (and attracted hostility from the more sophisticated programmers who perhaps saw their jobs under attack by a form of deskilling). User:Dpbsmith 15:10, 4 Apr 2004 (UTC) :I agree that the article should present positive points, and I'm not going to modify it, but please would someone consider the following points (quotations from article): "Being large enough to contain functions for all common tasks without the requirement to include external libraries." - the VB runtime library which is external? And VB .NET requires the .NET framework. "Being just object oriented enough and no more. (Unfortunately this advantage has been lost in VB.NET)" - this is surely biased! "Being more visually-based than other products (e.g. some C++-based tools), requiring less hand coding" - maybe this should be changed into a general point that it is easier to program in VB. "Having a visually clear syntax (e.g. requiring special line terminator syntax to allow statements to span more than one line and thus limiting syntax errors to the line in which they occur.)" - this is also not necessarily an advantage. "Having syntax unrelated to the esoteric C-like syntax used by many other popular languages (e.g. Java, ECMAScript/JavaScript, C#, PHP, Perl, C++, C) -- this is a general advantage of BASIC-like languages." - this is clearly the opposite of the negative point mentioned earlier in the article. Maybe this point should be removed from both lists and a general point added about VB syntax, with its advantages and disadvantages together, so that it doesn't look like it was written by lots of people disagreeing about it. "Some of these advantages have been lost in later versions of VB, particularly in VB.NET, and in doing so backwards compatibility has been sacrificed." - Maybe some advantages of VB .NET should be presented as well, e.g. advantages of .NET such as ability to use .NET language interoperability, more consistent object orientation and structure, non-Microsoft versions of .NET such as Mono. User:Ablewisuk 16:55, 21 Jun 2004 (UTC) :The list of advantages is just a simplistic refutation of each criticism. I'm new here, I don't know how to go about changing this but it seems that these lists should be independent from each other rather than just being a point-by-point pro/con argument. --User:Rhobite 17:20, Jun 30, 2004 (UTC) I started rewriting and rearranging much of the top part of this page. The Language Features section should be expanded. As said above, the Andvatages of Visual Basic section should just be junked and re-written. Actually, we should probably rename the Disadvantages section to Controversies and talk about the disadvantages and advantages of the language. User:Wuzzeb 07:02, 7 Jul 2004 (UTC) Edward G. Nilges: I read this article after visiting discussions in philosophy sites on NPOV. After reading it I am surprised to hear that NPOV is at all important to Wikipedia, because this article is a polemic against Visual Basic. It is logically possible to write any program in VB, trivially because a Turing machine simulator can be written in VB: VB, unlike HTML, is Turing-complete. Recently I wrote and published a compiler written in VB .Net (Build Your Own .Net Language and Compiler, Apress 2004). Where is the old view, that our job is to make a silk purse out of a sow's ear? Programmers in my day (by cracky) used to take pride in transgression, and making a tool (such as Cobol) do what it wasn't supposed to do as a minor rebellion against moronization. Why, we had to walk from the antiwar demonstration to the computer center in the snow both ways! :-), big time. You guys ain't happy unless you have a computer in your bedroom running Linux, Python, etc. Seriously, folks, the POV that VB is inferior is technocratic and ethnocentric, because it completely ignores the fact that for a "native" speaker of Visual Basic, his critical success factor in writing any one program is the distance from his knowledge of VB to the solution. His distance from his knowledge of C is longer if he doesn't know C. Meanwhile, the user needs a solution. Sure, use the best tool, but factor it against the real world...in which educational differentiation and racism operating within computer science "tracks" white and upper middle class students into high-class computer science programs, and the rest to DeVry, where I taught (and had to fight to get training for my students in Web technologies). The ethnocentricity pays attention not to his training and his abilities but to the language he uses, and like Prospero in Shakespeare's Tempest, says he "gabbles like a thing demented" without being qualified to do so; for the early Elizabethan and Spanish adventurers of Shakespeare's time, on whom Shakespeare based The Tempest, did not know Carib languages...but were nonetheless authorized to judge entire peoples as Calibans. It is true that in terms of overall programming ability, most Visual Basic specialists are inferior to C programmers. But this is not an artifact of their language; it is an artifact of their training, and the increased pressures of lower level jobs into which they are tracked. For this reason, a truly NPOV article would have stayed clear of the issue of the "quality" of Visual Basic, reporting debates about this issue in a sidebar. I am frankly astonished to hear claims that articles on Kant and Derrida have a POV when an honest attempt is made to bring views to life on the page, but then read this turkey on VB. What are you guys, anyway? A bunch of Linux nerds chained to VB projects by the economy, taking out your frustrations? Come on, you can do better than this! Neutrality ISN'T reporting the views of a dullard mass, nor is it reporting the views of people who hate Visual Basic. Neutrality is purity of heart. == New Point of View == Ok. I complelty rewrote the Advanages/Disadvantages section in an attempt to provide a neutral point of view. I personally lean more towards a critisism of Visual Basic. The VB project I work on at my job has recently upgraded to VB.NET, and I like VB.NET more than Visual Basic. So someone pro Visual Basic should read this article and correct any of my mistakes :) User:Wuzzeb 20:36, 10 Jul 2004 (UTC) == String handling, other capabilities of VB == I've been using VB for many years now and even I'll admit that string handling is not its strong point. That statement is simply wrong, and I've removed it. VB6 has very weak string handling functions when compared to other modern high-level languages. Likewise, it's almost universally acknowledged that VB6 has poor math performance. I also removed these POV statements: "By some puritanical standards," "superfluous line termination characters," "according to some programmers unfamilar with its strengths." User:Rhobite 22:19, Aug 31, 2004 (UTC) == Bias in this article == Here are some word counts: C Programming Language controversial 0 harmful 0 poor 0 too 5 less 0 critic 0 criticisms 0 unintelligible 0 incomplete 0 Pascal Programming Language controversial 0 harmful 1 poor 0 too 0 less 1 critic 4 criticisms 1 unintelligible 0 incomplete 0 Visual Basic controversial 2 harmful 1 poor 1 too 5 less 1 critic 8 criticisms 3 unintelligible 1 incomplete 1 I say this article is mostly POV. Every time a benefit of VB is entered, it is nullified by virtue of it being VB and/or Microsoft! We do not go into C or Pascal limitations, shooting down the relative pains of semicolons, null termination, array bounds errors, and constant must-compile-first limitations which are commonplace. There are weakness of every language, VB is no exception. But this article has just become firing squad against Microsoft. Nice. User:DanP 15:19, 1 Sep 2004 (UTC) :There are plenty of criticisms of C, I recommend adding those to C programming language rather than whitewashing VB. In any case, please don't add false information to VB. Nobody thinks VB6 is ideal for string handling, for example. User:Rhobite 16:18, Sep 1, 2004 (UTC) ::Whitewashing is not the goal. Neutrality is better here. I haven't found anything better for string handling, and I am not nobody, as you say. I did not mean to say VB was absolutely ideal, only that it is better than average. Doesn't that merit even a mention? The BStr objects integrated into VB are pretty speedy and adaptable to different memory models, parameter passing, pattern matching, and a few other things that work pretty well. They are not the fastest, and they are not the most robust, but they balance both reasonably well. I hope you can agree. User:DanP 19:09, 2 Sep 2004 (UTC) :::In the article you said that case insensitive comparison is a unique and ideal feature of VB, but this is a common feature available in every one of VB's competitors. I also don't know what built-in functions are uniquely adapted for string handling, as you say. VB has very rudimentary string support: instr family, len, replace, lcase/ucase, trim family, strcomp, join/split, and the VBScript regex library. This is all very standard stuff, available in just about every high level modern language. To name some examples of string functions lacking in VB: You can't insert one string inside another without multiple concatenations. Regular expressions have to be done through the VBScript library. Concatenations are often slow. User:Rhobite 19:57, Sep 2, 2004 (UTC) ::A lot of the bias against VB is not anti-Microsoft bias, but anti-BASIC bias. (Although the two are somewhat tied together, because of Bill Gates' personal involvement in the development of early versions of BASIC for the 8080). In the mid-seventies, several trends collided. First, Dartmouth innovated the idea that all students should know how to use computers. This resulted both in a) widespread familiarization with BASIC and b) association of BASIC with non-programmers. Dartmouth BASIC was a nice, simple, practical, impure language that embodied one kind of teaching goal. The early microcomputer movement grew up completely outside the professional mainstream, and the people who developed hobby computers knew BASIC and implemented it. ::Meanwhile, Wirth and others approached the subject of "a teaching language" with a different agenda. They had their own concepts of what the proper approach to programming was, and its heritage was academic computer science in general and ALGOL in particular. ::BASIC was, in fact, regarded by its creators as a simplified version of FORTRAN--just as hard to believe as Volapuk being based on English, but true--while Pascal was a simplified (and improved) version of ALGOL. ::Well, there was an enormous amount of snobbery displayed, which basically persists to this day, between the two languages. Pascal was associated with the academic mainstream, BASIC with the hoi polloi. I don't remember exactly what Wirth really said, but it soon became corrupted by instructors and by arrogant young students who were proud of being in Pascal classes into something like "BASIC rots your mind." ::Bill Gates, because of ego issues, was having none of that and Microsoft has always used versions of BASIC in its flagship products. ::All of this is amazingly independent of the actual strengths and weaknesses of the two languages. ::C sprung up in the late 1970s and carried different load of snobbish baggage with it. In particular, whereever there is a tradeoff between performance and safety, C/C++ opt for performance. Of course, if you are an imperfect mortal, the chances that your C program has serious bugs in it are higher than if you programmed in a safer language, but what macho programmer will admit to being imperfect? ::Now, as for VB having good string handling... sorry, that's not true. It only has good string handling in comparison to languages which don't really have strings in them as fundamental data types at all. That does happen to include quite a few languages, including C and C++. However, VB's string operations are very weak compared to SNOBOL or MUMPS, to pick two other languages at random. User:Dpbsmith_ Visual basic#REDIRECTen:Visual Basic See other meanings of words starting from letter: VWords begining with Visual_Basic: Visual_BASIC Visual_Basic Visual_Basic Visual_basic Visual_Basic_.NET Visual_Basic_.NET Visual_Basic_for_Applications Visual_Basic_for_Applications Visual_Basic_for_Applications_programming_language Visual_Basic_for_Applications_programming_language Visual_Basic_programming_language Visual_Basic_programming_language Visual_Basic_Script |
These materials are based on Wikipedia and licensed under the GNU FDL
YouTube.com videos better site than Turbo Tax 2007 |
|
|