Home > .NET > A Sneak Preview of Visual Basic 2005 A Sneak Preview of Visual Basic 2005 Eugenia Loli 2005-04-21 .NET 36 Comments This article provides on overview of the new features in Visual Basic 2005 including, My Visual Basic, IntelliSense, Edit and Continue, AutoCorrect, Just My Code, Windows Forms enhancements, and more. About The Author Eugenia Loli Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker. Follow me on Twitter @EugeniaLoli 36 Comments 2005-04-21 8:29 am Anonymous They Should Remove A Feature: Capitalizing The First Letter Of Each And Every Keyword Makes The Code Unreadable For Me. 2005-04-21 8:33 am Anonymous I Mean, It Obviously Makes The Code Seem Vastly More Important And Readable. Besides, It Is The Basic Way(Tm). 2005-04-21 8:45 am Anonymous too many shifts-keystrokes, but it’s VB so what do you expect. In any case, I’m sure there’s lots of IDE features that open source will be copying. VB has made Microsoft a lot of money over the years, and it’s not from selling the IDEs. 2005-04-21 8:50 am Anonymous You bet when I used VB 6 it used to be great (except the bugs, crashes ans other wierd code behaviour) but now it seems even more easy and great, unfortunly I no longer use VB, not because I discovered any almighty OSS C compiler (yeah… C… just great… X-D) but because I’ve droped coding. But it’s a recomendable language for most projects, ’cause C and such .u.k a.. Get it? ^_^ 2005-04-21 8:51 am Anonymous I Would Write All Keywords in Upper Case, Like In The Ol’ Days Of Q(uick)Basic Or All Lower Case. Or, At Least, I Would Write “End if” instead of “End If” and “Dim xyz as Object” instead of “Dim xyz As Object”. That’s All. 2005-04-21 9:02 am Anonymous too many shifts-keystrokes, but it’s VB so what do you expect. Umm in VS.NET it does the caps for you, you only have to type in lower case and it will fix for you. As someone who does vb.net dev all day (ugh), i’m definitely looking forward to edit&continue and the autocorrect. Design time expression evaluation looks pretty cool too 2005-04-21 9:30 am Anonymous “My” namespace seems to be a perfect thing. I’m not a basic guy but examples are very clean and powerful. 2005-04-21 9:32 am Anonymous I wish .net code worked multiplatform, it’s a joke trying to learn x-platform with current software. No I don’t want to freeking learn thirty command switches to compile my app, I just want to press the play button – why does OSS make everything so pointlessly hard? 2005-04-21 9:41 am Anonymous Because so many unix heads have been indoctrinated into thinking that Emacs and Vim are the end-all to development tools. …now if someone would just develop a vi-plugin for VS.NET. I think VS2005 finally has the functionality via VSIP to make this happen. 2005-04-21 9:42 am Anonymous I’m a Linux Zealot, but one of the things I remember fondly when developing with Visual Basic 6 and Borland C++ was the data tips. The ability to look at variables values during a break in run-time. Especially cool to the way you can ‘drill’ down into complex data structures. This feature is unelievably useful. You can grok problems with you application so quickly, because you can literally look inside it to see exactly what its doing at run-time. VB 2005 even allows you to modify the values, how cool is that? I wish Linux had dev tools with a feature like this. Can MonoDevelop do this? Peace out. 2005-04-21 9:49 am Anonymous Does anybody knows if the new VS will finally support Refactoring ? That is the 1 major feature i REALLY miss from IDEA’s IntelliJ. 2005-04-21 10:43 am Anonymous gdb should be able to look at data in runtime. Though it is kind of a pain to use. There are frontends like kdbg that are a little easier to use than gdb, thankfully, and make it not too bad to look up data. 2005-04-21 11:20 am Anonymous Thats interesting, I’ll check out kdbg. Its perhaps an area that needs development. 2005-04-21 11:30 am Anonymous Yes 2005-04-21 12:48 pm Anonymous I wish .net code worked multiplatform Well, Microsoft surely has the engineering knowledge to do that, but obviously their management doesn’t like that idea 2005-04-21 12:55 pm Anonymous Keystrokes? What, asked the emacs zealot, did you find wrong with keystrokes? Seriously…Visual Basic is simply a great tool for small-medium projects, which, honestly, covers a lot of ground. Past all of the syntactic saccharine, though, my question is: why not take the C# plunge? This is not a troll, let me come at it another way: what benefit do I have with VB over C#? Legacy codebase maintenance? That is probably where it’s at. But, from a managerial perspective, fewer languages/tools == better, IHMO. 2005-04-21 1:17 pm Anonymous Try eclipse, I’ve only used the integrated debugger for java, but c/c++ should work nice too. The plugins for other languages is probably not as nicely integreated but there are many, ruby, python, haskell and ocaml adn latex plugins has passed by my radar. 2005-04-21 1:33 pm Anonymous Actually, VB6 was/is good for almost any project (regarding to size) and infacts many companies use it even for large projects. However, in the past, the main difference among VB and C++ was about the complexity of things you could do, meaning that VB6 was limited in things it could do. For example, you wouldn’t have wanted to subclass windows using VB to add your custom widgtes and/or functionalities. We could say that VB was for developers who didn’t need to extended or access advanced parts of OS while C++ was a must for others. That completely changed now. Don’t make mistake of believing VB.NET has same goal of VB6. Now C#, C++ and VB.NET are equivalent and share same power. Choosing one or other is mostly a matter of taste. 2005-04-21 2:31 pm Anonymous In the .NET space, that may be true, but there is a lot of power in C++ that extends beyond the .NET arena that VB and C# just don’t have. 2005-04-21 2:42 pm Anonymous VB, since version 1.0 and including VB.NET 2005, is case insensitive. you can type like this and The Editor Will Convert The Code To This. You can even write the code in all lower case if you like in Notepad and compiler it on the commandline and it will still compile. All the other languages that Microsoft supports are case sensitive (mostly becuase they have a C/C++ syntax). 2005-04-21 2:44 pm Anonymous Regarding the refactoring question: Look here: http://addressof.com/blog/archive/2005/04/20/1804.aspx and here: http://msdn.microsoft.com/vbasic/downloads/2005/tools/refactor/ 2005-04-21 3:08 pm Anonymous Could it be. I’m not discussing about which language is better but just emphasizing that while in the past VB programmers were somewhat “limited” as they were considered newbies (or simply not interested in getting advanced possibilities), this completely changed now. VB.NET developers can fully exploit full system capabilities now. Beside that, I agree that C++ language itself is very different than VB. However, C++ has something more (and something less) than C# too but C# was born to provide a different way of coding than C++. Last, notice that VB is evolving and somewhat it is gathering the possibilities of other languages. A silly examples can be: myvar+=1 (valid in VB.NET) myBool=(MyVar=MyVar2) (valid in VB.NET) So my point is: since most advanced features are now achieved thru framework (or compilers) instead of language features themselves (think about Generics, which can be used the same way by C# or VB.NET) and given that OO way is somewhat standardized now, differences among languages right now are blurring. I can easily switch from VB.NET to C# to Java to Actionscript (Flash) without much pain.. and infacts I do that. As for myself, I prefer to use VB.NET instead of C# mostly because I can’t case stand sensitivity of such language, provided that I can achieve same result in both ways. As I said, it’s mostly a matter of taste now. 2005-04-21 3:19 pm Anonymous Well… VB is pretty okay actually. Never thought I would say that but programming windows applications in it isn’t that hard. It’s very lengthy at times tho’, things that you could do easily in some languages takes quite a chunk of VB code to do. Luckily it’s a bit better in .NET (i think). 2005-04-21 4:33 pm Anonymous I’m everyday VB6 programmer. This automatic capitalization is actually very handy tool – I always name variables/methods in form, containing at least one capital letter (like “tStr” or “DoThis()”) and always type in lower case. If typed text doesn’t “autocapitalize” – clear indication of typing error (tstr>tStr, tsrt>tsrt). Well, this mechanism has drawbacks – if I happen to change capitalization in some local declarative statement (like Dim Tstr), then VB changes all similar declarations in all open files:) 2005-04-21 4:40 pm Anonymous Your right-casing comment is one of the ‘stealth’ features of the environment. You can type a symbolic constant in using lower case, and if the IDE forces it ToUpper(), then you know you’re good to go. OTOH, some of my more idiomatic layout fetishes ( I like to use line continuations heavily and align function calls on the , character ) get bulldozed by the IDE, so that’s a little unpleasant. 2005-04-21 4:49 pm Anonymous So, where is the Linux version? 😉 2005-04-21 5:16 pm Anonymous I don’t know what you’re getting at. I’ve never used VB or VB.NET ever. 2005-04-21 6:53 pm Anonymous it may be nice for making quick applications, but ugh…. the only reason MS needs a 64 bit GUI is because of VB programmers who want to write 64 bit programs and not want to lean how to separate the GUI from the logic. 2005-04-21 9:01 pm Anonymous I almost fell out of my chair laughing when I read your comment about VB.NET being as powerful as C++. Maybe you got confused by the little “exe” that it puts on your files after compilation… VB.NET is a vm language and even after compilation only runs as *interpreted* byte code. It runs in a little sandbox called the .NET framework. Everything you do in VB is constrained to the boundries of the framework. You can do a lot from a high-level perspective, yes. You can not, however, directly access specific memory addresses, directly manipulate hardware, write an application that doesn’t require a bloated 30 MB runtime, etc. etc. C++ compiles to machine language. There is no sandbox. What you can do in vb.net, I can do in C++ with a smaller final sized executable, lower memory usage, *much* better performance. Best of all, I don’t have to ship a 30 Meg runtime to all of my clients. Make no mistakes. VB is still a n00b language. Not because of the language itself so much as the crowd that it attracts. Anyone who is seriously interested in programming knows that if they want a low-level language, vb is out. And if they want a high-level simple language, there are dozens that are easier to use, less error prone, and more elegant than Visual Basic. VB is the radio-pop of the programming world. It’s for people that willfully don’t bother to know any better. 2005-04-21 10:00 pm Anonymous I’m not confused at all. You should read what I wrote paying more attention. Remarks you wrote don’t relate to C++ itself but the fact that you’re developing (or not developing) a managed program. Infacts your examples are pretty simplistic. Of course, when you’re using a managed framework, you know that you cannot access HW, you cannot read memory and stuff. That’s not a language limitation but the exact purpose of a managed environment. I guess that someone using a managed framework has already decided that she/he can accept that trade-off (or doesn’t care). FYI, .NET also includes managed C++, which makes “C++ compiles to machine language. There is no sandbox” simply not true in .NET world. It’s out of my goal to debunk your feeling that you’re a real man / programmer because you use C++. As it’s out of my goal to flame. However, I suggest that you verify your information. 2005-04-21 10:01 pm Anonymous Not to disagree with the major portion of your argument, but on the .NET runtime on Windows those bytecodes aren’t interpreted, they are translated to native code at load time and then run as native code. This makes these programs not a whole lot slower than precompiled C++. Most of the slowdown comes from array bounds checking and quick optimization, not from interpretation. Given that, you are right about the lack of direct hardware access and such. Still, it does make it more difficult for programmers to make code with nasty side effects. 2005-04-21 11:15 pm Anonymous Maybe someone can help me out here. Why does anyone use VB in the Visual .Net environment? I’ve coded VB for years, but in moving to .Net have picked up C# as the language of choice. Most examples are for C#, easy to learn (about as much as relearning VB for .Net) and as someone to be employed at various jobs in the future, would make more sense to get into C# than VB I would have thought? Beside porting older projects (which is still a project in itself), what are the benifits of VB over C#? By the way, I’m not saying C# and the .Net framework are my language/framework of choice, far from it, but when I need to code .Net, C# is the language I went with. 2005-04-22 1:59 am Anonymous Delphi Way better than VB and VB.net and it can do native win32 singe exes or it can do .net with Delphi for .net. All these people whining about VB classic should have switch a long time ago. 2005-04-22 1:24 pm Anonymous at leas Delphi, being built off of pascal, is a lot safer than VB and compiles to a native binary. 2005-04-22 4:05 pm Anonymous >>I wish Linux had dev tools with a feature like this. Take a look the the commercial editor “Slick Edit” (trial available). It does what you want plus lots more. For example, it handles integrated debugging using gdb. I use it everyday at work. No I don’t work for the company. Just like the product. 2005-04-22 4:47 pm Anonymous Anyone wanting to program in basic on windows should give BCX a look. It’s fast, it’s free, and it’s open source. Not as east as vb though.