Microsoft was quite literally founded on Basic. Few of us who were doing software development in the 90′s could argue that Visual Basic successfully lowered the bar for entry such that just about anybody could write a simple program. I would even go so far as to say that Visual Basic was a key to the success of Windows in the 90′s and 00′s. While Visual Basic developers have been occasionally lambasted by their semicolon adoring counterparts for relying on wizards and code generators, few could argue with the speed to delivery and the suitability of VB for rapid prototyping back then.
But time does march on. When you attend conferences and watch demos today, it looks fairly clear that JavaScript is the new easily accessible and ubiquitous language for rapid prototyping and fast time to production. Given the amount of tooling that is available and the non-proprietary nature of the language itself it would seem to be a better alternative for a hobbyist developer to pick up. What’s more, with Windows 8 making JavaScript and HTML 5 a first class development experience for Windows 8 apps, one has to ask if we really need Visual Basic anymore.
What do you think? Is Microsoft simply reluctant to shoot the dying horse it rode in on or is Visual Basic still a trusted companion with life left in her?
VB.net is heavily used in line of business apps in the corporate world. While I have no source to back this up, I suspect that VB users outnumber their C# counterparts 2 to 1. A while back Scott Hanselman wrote a blog post about what he called the, “Dark Matter Developer”. Like the mysterious dark matter that physicists believe must exist in order for the universe to work the way they believe it does, the dark matter developers are the vast numbers of programmers who are unobservable directly because they rarely bring attention to themselves by blogging, contributing to popular open source projects, etc. but are critical to the way the modern world functions. I speculate that a sizable percentage of those are VB developers.
In that vein, at my workplace, we have 3 darkmatter developers and all 3 of them are VB centric.
Part of the problem (in their eyes) is that the public dev community focuses on c# and the community tends to look down on vb developers. This has created an embarrassment in my coworkers to not publicize their work out of fear of “persecution”.
They don’t go to conferences or user groups either due to most of the time the sessions are in c#.
I doubt VB is going anywhere but the community could be a little better in making VB devs more welcome.
“They don’t go to conferences or user groups either due to most of the time the sessions are in c#.”
God forbid they learn anything new!
As a developer in the corporate world, i can confirm that. VB is widely used.
Why? Is it easier? Yes. We are not “dumb ass kids” that never tried any other language, but in a environment where speed is key, we would be dumb if we didn’t take advantage of some of the “perks” of VB, as it takes a lot of stuff out of the way and lets us focus on what we need to accomplish.
“Part of the problem (in their eyes) is that the public dev community focuses on c# and the community tends to look down on vb developers. This has created an embarrassment in my coworkers to not publicize their work out of fear of “persecution”.
They don’t go to conferences or user groups either due to most of the time the sessions are in c#.”
You should try to go to a conference or a community meeting and say you’re a VB developer… Suddenly your the fat kid in high school that no one ever talks to, and when is talked about, is never on a positive note.
I ‘m mostly self-taught. My one and only programming class was DOS BASIC back in 1983. After that I taught myself QuickBasic and then Visual Basic.
I’ve written lots of handy little programs in VB for AutoCAD drafting and automation, and I was able to build up a nice collection of reusable code.
I was disappointed when the new generation of VB (dot net) wasn’t backward compatible. I kinda understood why, it just seemed wrong to leave so many of us out in the cold. I’ve used VB since ’96, and I have a ton of code that’s pretty much useless in VB.Net, so what’s an old geek to do?
I just finished an online course in Intro to C#, and I know that in time, I’ll get back up to snuff, but it’s a whole new world. I could really THINK in VB. I could work out the steps in my head, and the code would often run perfect on the first try. I’m gonna miss that.
Luckily, I don’t do this for a living, but it makes what I do much more efficient, and I really enjoy the process of programming – at least I used to.
I think the only way us VB guys can change that is to put our code out there. For example, if you find a NuGet package that is hosted on one of the public source code sites such as github or CodePlex, that you use which distributes some actual C# code instead of just binaries, fork it, write a VB version of the C# files and submit a pull request. Give the project owner a reasonable amount of time to respond, and if they don’t respond, create your own NuGet package with the VB code.
I strongly believe that Microsoft shall focus on platform specific languages, because Microsoft power comes just from there- they ultimate tools for development on hardware specific platforms with closed source.
Nah… the hook is .NET. Doesn’t matter what language you are on, if you tap into .NET, they’ve got you.
Why would somebody want to kill vb? I can’t understand how you can measure and base things on what community wants and that community does! VB is still and I hope will be the easiest language that exist for newbies to learn. C# C# so what it is not rocket science I is just another programming language. Where is not need to debate which one is better not until JIT and CLI exits…. just my thoughts.
It’s called evolution. People shouldn’t learn an “easy” language, why do you insist that things should be easy? Programming is intellectual work.
If an intellectual challenge rather than a positive result is the goal, you should have written your post in Proto-Indoeuropean.
You sir, are a nitwit. Programming isn’t for “Intellectual challenge”. It is to get a job done. quickly and effectivley. Read the responses of all of these professionals that write the code that makes the world run so fools like you can have the time to enjoy your intellectual challenge.
If the market feels that there is a need, then we need it. Also if there is a community you can’t kill it.
Microsoft is going to focus on JS and HTML5, but still there is a lot of legacy code in VB. Just another legacy language that has to be maintaned.
What a silly (and snobby) article and question. VB is used by lots of people who have to DIY their own solutuons – not pros, but they can’t afford to pay you stuck up “real” (yeah, right) programmers. Get stuffed.
At last – some horse / common sense. Just about any sensible engineer with little or no software training can get into VB and make real things fly, the steps to do real work using C, F, Java etc. are by comparison HUGE and thus somewhere off the table. A well written VB .exe is good for most practical tasks, and once compiled does the same job ….
You sound like a butthurt VB programmer who just got called out for using a deprecated language.
Wow, what an intelligent, thought out reply. Move out of your mum’s basement already.
How true… partnered with a couple ‘software architects’ to set up my wife’s web business (both had impressive resumes), and a year later the prototype I developed to prove the concept in 6 months is light years ahead of what they’ve produced in a year.
Option #3. I don’t use it, but I appreciate that there are very good developers out there who do.
Honestly it doesn’t really affect me because I don’t use VB (any more): so my opinion is actually irrelevant.
JavaScript and HTML5 is really far from 1st class development languages.
I would say that they are not even reached the 2nd class yet.
Maybe they will.. eventually in the far future – between 2018-2024, but there is time till then.
I actually see HTML5 as the thing which causing more issues than fixing.
It is expensive as development, it is unstable, it is unreliable, it is very easily hackable, it is not actually cross-platform, it is not yet reached point of quality, and one of the worst ever features – it is exposed code – something which is close to “NEVER TO BE USED” for enterprise class applications, which development usually cost millions of $, and the source code shall never be available to public. At the moment Flex is few billion times better than HTML, and it is not even close to VB features. Actually I would say that Microsoft shall get rid of HTML5 ASAP since it is nothing which Microsoft were standing for.
Been a developer about 14 years now, companies ranging through online share trading platforms, property conveyancing and financial services. The reality is that many companies have applications dating from the Rapid Prototyping, VB-centric era of the 90′s that the O.P. refers to. Their size and complexity grows, and business requirements steamroller over development best practices (separation of concerns, iterative refactor and improvement) – and you end up with a beast of a VB (6.0 or .NET) application that is seen as a maintenance headache, but the language isn’t to blame for this.
The knock-on effect of course, is that VB developers are needed to keep these applications alive.
Must agree with k4gdw on the concept of “Dark Matter Devs” – it’s not glamorous or headline-grabbing but back-office tools, winforms-applications for specialist platforms etc, things businesses need to work internally (as opposed to web-based technologies for their customers) are crucial, and still extremely prevalent in the industry.
VB and those who know it are going to be around a while yet, IMO.
Not sure why we are always trying to define what the world “needs”. What I can tell is what I see in my context that the world “uses”. And let me tell you that VB applications still generates lots of money. Not because being VB. But many companies still runs business (or part of it) through applications that (even when they could be rewriten in any other language) are built with this technology. Not only because “if it is not broken, don’t fix it”, but also because adding a feature or fixing an issue is usually not so complicated as rebuilding from the ground up.
Also, I’d like to ask you what you ment by “Visual Basic”. As a technology, as far as I can tell MS is not selling VB 6 development tool long ago and Visual Basic (as a language) has managed to live up in .NET framework and supports many different other technologies. Clearly VB script is not as popular as Javascript (won’t discuss the reasons) but that doesn’t necessarily means that js is a better designed or more effective language. Those are, I think, totally different discussions.
When I see bloggers whining about VB… Pisses me off… I’ve been using C,C++, js, VB, SQL, you name it, etc for years.
VB.NET has some advantages that most people only discover by using it.
It can do MORE than C#. Over the years, I’ve met many of the C limitations and laughed at the inexperienced wannabes who think C is so much better.. But never used VB. They just read a blog like this one.
It’s not about semi columns. The syntax being prettier in VB, is just esthetics, which most coders don’t give a F about.
VB.NET is actually more powerful than C. There’s so many things VB can do that C can’t.
Criticism of VB does not come from a deep study, but from misconceptions and a lack of programming experience with it.
Many times, I’ve found things that VB can do, that C can’t. Never seen it the other way around.
“VB.NET is actually more powerful than C. There’s so many things VB can do that C can’t.”
Like what? I’m actually curious. I work in an office that uses C#.Net and VB.Net and we all get along just fine. Are you comparing VB.Net to just C? That seems a little ludicrous. I think you meant C#.Net but I don’t like to make assumptions.
The trouble is Microsoft does not want VB and therefore they are always going to support C# better than VB. This will, gradually, cause VB developers more and more difficulty as time marches on.
I would say to VB developers, have a look at C#, it is not at all difficult and is an additional valued skill in the marketplace. Using .Net is much more difficult than using C# and VB .Net developers are using that all the time.
My main issue with VB .Net and C# .Net is that they are slow; this is why Win32 is still valued in the marketplace. Having said that, the applications where speed is such an issue are in the minority of Windows based development.
Of course, the other thing is that the writer of the article assumes that there is no programming happening other than for the web. Well, there is life outside the web and smartphone apps as well, HTML5/Javascript is not that much use there !
You’re a big boy now. Start using your semi colons
Personally, along with many others, I’d identify Office not VB as the reason Windows became a success. VB at the time was awesome though – I remember getting VB1 and it really did change the game for development. Nothing before was anywhere like as user-friendly.
You really can’t compare JS/HTML development with VB development for easy of use and rapid prototyping. Hooking an click-handler to a button is a double-click in VB. In JS…
Further, JavaScript may be more deeply flawed than VB… (although it does have its Good Parts)
1. Lack of support for proper numerics.
2. Mistyping a variable name introduces it to the global namespace.
3. Semicolon insertion can passively change the meaning of code based on line breaks.
The list goes on.
The reason I use it is simply because I need to do both desktop apps AND web apps, and MSoft only recently introduced cross language support into their free desktop applications. Now that I have the choice to switch to C#, I probably won’t, because I don’t write code every day. VB syntax is a little bit easier to remember, and I’m fine with that, because I’m an engineer who just needs specific tools related to my work, not a developer on a deadline.
I’m a sysadmin, not a full time developer so I guess that I’m one of the dark matter guys. For me VB makes total sense because I can write ASP, ASPX, VBS, HTA, EXE, and Excel macros all in essentially the same language. I don’t build products, I build support tools to run the business. The script and VBA side has stagnated and I would really like to see MS do a levelset of VB to bring all platforms to the same (.Net) level.
I am one of those “Dark Matter” programmers. I wrote my first professional program in GW-Basic in 1979. (When it was microsoft’s only product.) I have been working professionally in all of the versions of Basic ever since. I have never seen the need to switch to another language for the simple reason that I can do everything I need to do in VB. (OK I use VS2010 Web forms to generate the ASP.net code I need to do web sites, but the code behind is all VB.)
For all the VB haters out there here’s a message. “Wake up! it’s just syntax!” It i not the language you use it is the result that you accomplish. If I can produce better results, faster than you can, who’s going to be most successful? If you don’t like the syntax I use then tough toenails to you.
Finally, the Visual Basic I am using today bears verry little resemblance to the GW Basic I started out with. It is almost a new and different language thah happens to have the same name.
And really, wasn’t this the point behind .net? that you could use any .net language that you feel comfortable with?
It’s all Microsoft. Isn’t it?
VB is a great tool and I use it all the time. We are developing almost everything around VB.net.
There are 100′s of options to program in. My team like VB.Net. We can link with any C# class that we want to use. Why would you want to kill it.
Hi Jim
I agree with you and everything you and others have said about VB(A)(.NET), but there is an aspect to your question that should be mentioned in this discussion: “Why would you want to kill it.”
Looked at purely from the Microsoft point-of-view, since that is the company owning and maintaining the langauge and all tools that work with it: Money.
It costs money to maintain these things. For every new version of the .NET Framework and VIsual Studio each programming language has to be maintained and tested. Fewer programming languages = fewer costs.
And if we mix Java Script/HTML5 into the equation, since these are open source they cost MS nothing in terms of development, unlike the proprietary languages.
So is it any wonder that Microsoft is interested in no longer developing these languages and would rather leverage the work of someone else?
I’ve got 18 years of IT experience as a programmer, DBA, and college instructor, along with a BA and MS–both in Computer Science and I program in VB.NET. I program in whatever is used in my place of employment–started off with C, dBASE IV, and Pascal. Moved into MS Access VBA and VB6. Then transitioned into VB.NET. (That’s all for desktop apps–I was creating web pages in 1994 and have developed web apps in Classic ASP and ASP.NET). I’ve also taught VB6, and Java at the community college level. My philosophy is that one can pick up any language in a couple of weeks as long as one knows how to problem solve using computer programming.
Having said that, I’ve heard that “VB is easy” or “I’ll make this a C# shop if you hire me” and on the other side, “There’s hardly any difference between C# and VB nowadays.” I know plenty of “real” programmers, other than myself, who use VB–Brian Knight, author of many SQL Server books, being one of them (oh yeah, this “real” VB programmer also has 12 years of SQL Server experience under her belt as well).
Makes me sick to see how looked down upon VB is. I am a single developer and own my own software company. My software is faster, better, cheaper and less buggy than other software in my vertical market that is put out by large companies with large numbers of developers. I use only VB6 and somehow me all by my lonesome have become #2 in my market. My software is more stable and has more features and I can make changes faster than the other companies.
BTW I make high 6 figures and have for over 14 years… look down on that!
You go, Rak5! Rock that VB6!
If one looks at the new Windows Store Apps Certification, http://www.microsoft.com/learning/en/us/mcsd-windows-store-apps-certification.aspx, there is a C# track, but no VB track. Is this the handwriting on the wall?
I use VB.NET every day and continue to prefer it to C# for a number of reasons. First, let’s clear something up. I use Option Strict = On 100% of the time. Everyone else should do the same, period. So your survery question is bogus. Now, for the reasons I use VB.NET. The editor in VB is much smarter than C# editor. When I type an IF statement, it automatically puts and END IF. Why can’t the C# editor put beginning and ending curly braces for me? When I forget a semicolon in C# it puts a red squiggly there to tell me I forgot it. If the it’s smart enough to tell me I forgot it, why not just put it there? In VB.NET I can use With End With and everything in between I can just say . = value1 . = value2 … and so on instead of repeating the objectname over and over object. = value1 object. = value2. And in VB.net because it’s case insensitive I can just type away in lowercase and as I hit enter it will fix the case for me for objects and reserved words and such and I keep on going. No muss no fuss. Events and delegates are super easy in VB.NET as well. Oh, and one more thing, in VB.net there is a small horizontal line separator between properties and methods in a class. It makes reading source SO much easier. I wish C# had that. On the last C# project I worked on, I found a little add-in for C# that put a little red-line between methods. That made it easier to see the beginning and end of a method. I can work in C# and I imagine that someday a project I work on will require me to do so. But, I still prefer VB.NET and always will until the C# editor becomes smarter.
Ok, it took out my less than and greater than signs so some of my examples look strange… You get the idea.
“Why can’t the C# editor put beginning and ending curly braces for me? When I forget a semicolon in C# it puts a red squiggly there to tell me I forgot it. If the it’s smart enough to tell me I forgot it, why not just put it there?”
The answer to that is that in C# these things are optional, depending on what follows. If there’s only one statement following the if clause no brackets are required. C# code can continue to additional lines after you press Enter – without needing an underline like in VB.NET – so it doesn’t presume to type a semi-colon for you. And C# is case-sensitive: you can have variable and method names such as method, Method, meTHOD, etc. and they’re all unique.
I suppose you could say it’s a question of philosophy, but this is how C# programmers want their world, just as VB people want theirs a different way.
Much of the “fight” between the two camps comes from these different ways of looking at HOW one works, rather than what the language actually does. After all, in the .NET world it all compiles to the same ILT and JIT, in the end…
That’s not the case. The semi-colon is strictly a matter of syntax while the braces implies the semantic. For a text editor is very easy to tell that the first word of every sentence goes in upper case, how? because immediately before there was a period. no period, no uppercase. But can a text editor tell when the argument you are writing down should go on a new paragraph?
Yepp, and with JavaScript it will be getting really worse. Curly braces, brackets, “this”, all together with an html whatever language mix (not to mention different browsers, different libraries …)
While I do the vast majority of my programming now in JavaScript and C#, I will always have a warm spot in my heart for VB. I started coding in BASIC on my Commodore 64 and after going through GW-Basic and QuickBasic, I ended up using Visual Basic. While I prefer C# because it is cleaner to use, VB is a great way to learn programming and if learned well, can still be used very successfully. All this ” is better than ” is a waste of time. If your preferred language gets the job done, that is all that counts.
Well before VB, there were two styles of programming. 1. Don’t continue unless I tell you to. 2. Continue until I tell you to stop. VB is in the first, C# is in the second. There is nothing wrong with either style. VB.Net and C#(.Net is implied) produce exactly the same end result. Leave the poor VB developers alone, they happen to like a style that used to comprise over 50% of the programmers. Man, Msft produced Fortran.Net. 99% of my programming used to be in FORTRAN. I left the language because the community left the demand for it in the past. Let the community use demand to determine the language winner. (And we are the poorer for the loss.) Doesn’t mean I miss programming in FORTRAN.
I do both C# and VB.NET development and I really like VB.NET more because of the language specifics: in contrast with the expectation that more human like look of the source code must be writtern longer, because it contains more text, I actually write less, when I code in VB.NET – Visual Studio completes every word I type after the second letter, and in the cases, when I need write the hole word – in the most cases, it is real human word, that i can write only with letters, I do now need to press shift and { or }, I do need to press the shift to write “not”… And so on…
It is true that most of the code out there is in C#, but there were few times, that we needed to translate a code to C#, in most cases both languages lives well side by side in a project…
VB or not VB shouldn’t be the question. I program in many languages, and really don’t get too hung up between them (other than when I get the odd syntax mix up
).
Whether or not VB has a future just comes down to its commercial position, the longevity of the platform and architecture to support it, and the price point of programmers, their coding efficiency, defect density and all that jazz. As with most programming languages it wont just die – it will go on until no one but enthusiasts or computer scientists care.
Where I see the problem with VB is that it was branded as a language for non-programmers. Today this couldn’t be further from the truth – its a fully mature language.
It has lost its heritage, though, and this is leaving a gap. Programming for the masses has lost that original BASIC spirit. We’re still programming in languages with too much deviation from BASIC’s pseudo-syntax of natural language. Don’t get me wrong – I don’t mind semi-colons
What I do mind is languages which have constructs only there for the compiler, not for me as a programmer. You can see a deviation from simplicity even in VB under .Net which didn’t provide intrinsic data types, provides an unnatural class structure, convoluted methods for data access etc – everything became part of the framework, not the language. This isn’t a problem for an average programmer, but try teaching someone a new language from scratch: you soon see what the problems are. Add in the internet (a wealth of bad examples) and pow, the next generation of bad programmers are born.
What we need is a MORE simplistic and natural language to get young programmers hooked. I for one would then recommend they jump right into machine code (so they know whats REALLY happening) and then let them play around with abstract or functional languages to suite.
You’ve got to salute Microsoft for trying to bring programming to the masses with the original BASIC. However, as an “easy” route into programming, its days are numbered, as its now a mature development platform.
I can’t find the like button. . .
P.S. I’m actually a C# programmer but I happen to agree with your post.
My team is five professional deveopers. It’s all in VB. We specialize in manufacturing and test automation and image processing.
We’ve occasionaly contracted with outside professionals who develop in C#. The results were so poor that we no longer consider being a C# developer to be anything noteworhy.
If a customer comes to me and requests code be delivered in C#, we develop in VB, run it through a VB to C# translator, test and deliver. So, not all the C# code out there was written in C#.
The poll question is misleading. Our standards require the team to set Option Explicit On, Option Strict On, Option Compare Text and Option Infer Off.
There is so much VB code in the world it will never die completely. That code needs to be maintained, and would cost millions to rewrite in a newer language for very little benefit. I do think that VB has gotten a bad rap lately for not being a “real” language like C#. Fact of the matter is, VB can do anything C# can do because both languages compile to the same code. They are part of the .NET framework. I’ve heard alot of people say that VB leads to sloppy code, unlike a more structured language like C#. No, bad programmers lead to sloppy code. Any VB programmer worth anything knows to turn on both Option Explicit and Option Strict to have decent code. That eliminates most all of the problems people have with VB.
As a professional software developer for more than 30 years, I prefer visual basic over c# simply because I find English more natural and productive. C# is backwards with curly braces and semicolons that are just a time wasters. Another interesting observance is that most c# comments are directly portable to vb code. Your mileage may vary, but I know I get the job done much faster using vb.
Dark Matter VB hacker here,
I have a living VB desktop enterprise WAN app of over 120 users, which is responsible for the real-time collaboration, control and integrity of the core ‘value add data’ of our engineering company.
Interestingly this ‘temporary fix’ app of seven years was born from sheer immediate need caused by corporate ‘paralysis by analyses’ and internal politics. At the time of writing the app my title was ‘engineer ‘. VB was a natural fit because of its ease of use. My title is developer now but when I am around ‘real developers’ I stay quiet, lest I be discovered of my VB stink and no IT degree.
With the great push of apps moving to the cloud and mobile, I hope that someone can keep it simple for end users to be able develop the ‘we need it now’ apps born from sheer immediate need. HTML5 and JavaScript do not seem as easy, to quickly comprehend and develop as VB.
Long Live VB
Thanks for making the case for the continued life of COBOL! lol
VB should live. Its intuitive, easy to write, does not hurt your eyes like C Syntax and makes development much faster. Using VB, one can concentrate on solving the problem instead of worrying about the nuisances of syntax. Its my opinion that C# should be put to rest.
I am one of the 2:1 majority. I’ve been developing in BASIC-VB since 1971. I’ve also developed in COBOL, FORTRAN IV , 360 Assembler and more recently in JavaScript, HTML5 and B4A. As a life long contractor I get paid to deliver. No delivery, no pay it’s just that simple. I rarely comment in spaces like this – I just go about earning my living, supporting my family. I spend 20% of my time on R&D. I am always looking for products that make my life easier and more productive- C# and it’s various flavors is not it. It takes way too much time to simple tasks. I chuckle at the C# snobs.Get over yourselves. To paraphrase Bill Clinton, “it’s about the money [economy] stupid”. If I wake up tomorrow and there is a better product that is easy to use, just as powerful and cost efficient (it’;s been many years since I had to pay for a VB compiler or SQL Server Express) then of course I will use it but until then VB and B4A will remain my primary development languages.
Having used both extensively, VB.NET and C# (.NET, obviously) are almost the same thing by now. By far the biggest differences are syntax and (to a small degree) tooling. VB != (or, I suppose for this conversation would be more appropriate) VB.NET, and you don’t really make clear which one you mean.
Fundamentally, at a language design level, VB.NET and C# are virtually indistinguishable apart from syntax and a few minor differences (eg., C# lambdas, VB.NET case insensitivity).
As Benaiah Mischenko says, VB.NET and C# are virtually indistinguishable. I can find no good reason for preferring one or the other, whatever I want to do I can do it as easily in VB or in C#. It is simply a matter of aesthetic preference. To me the VB form: -
If X > Y Then
Z = X
Else
Z = Y
End if
looks better, and is more readable and obvious, than the C# form
if (X > Y) {
Z = X;
} else {
Z = Y;
}
But this is only a personal preference, others will prefer C#. Perhaps an advantage of C# is that it makes JavaScript more familiar. Or is this a disadvantage, entrapping you in false assumptions about the way that JavaScript works?
Don’t assume a moral superiority for one view over the other, and suggest that VB should be discontinued: there is a huge amount of good work being done around the world in VB.
Microsoft should bring the two forms together. You should be able to mix languages in one project, to click an option in Visual Studio to change the code from one form to the other, use lambdas in VB, and so on. Perhaps they could also address the real problems that are in both languages, like the several inconsistent ways in which the concept of nothing is implemented – Null, Nothing, DBNull, .HasValue, Empty, etc.
Many a C# developer would probably prefer
Z = X > Y ? X : Y;
Does it really matter? Probably not, especially using tools like Visual Studio for coding. When intellisense is available, there is less value in abbreviated syntax.
There is no superior language, at the end of the day. There are only profitable languages (to those who design them and/or write compilers).
At the end of the day, the people who seem to make the most difference are those who learn and use good Object Oriented principles with OO languages. Those are the things that set good developers apart from hackers.
Anyone ever hear about COBOL anymore? Well there’s still tons of it out there… because it solved business problems. VB developers are so numerous because vb solves business problems quickly. Prototypes get hardened into live apps for internal use, and a raft of them even sold. You never hear too much from these developers mainly because they’re primarily business people who have jobs besides programming. They’re often more senior than you’d think and don’t have the time for too many conferences etc. this means that the efforts of following the improvements in VB as a language is about as much they can afford in time and won’t make the effort to learn C#. They’ve come in from VBA in Excel then Access and until Microsoft switches VBA off, VB.NET will continue to be fed with a strong following.
Pingback: Does the world still need VB ? - resources about .NET technology - DotNet Boards
I am a RF Engineer. I design radios and RF amplifier. I started using QuickBasic 4.5 then moved to VB3, VB5, VB6, VB .NET 2003, and now VB .NET 2008. I don’t consider myself a programmer but I write programs to automate test of radios (control the test equipment and radio during testing) which has saved me many hours in the lab. I have gone as long as 3 years without writing code (it depends on the project I am on) and I find the C syntax too cryptic. VB lets me write code that anyone with some knowledge of programming can read. If someone wants to know how I am testing a feature on the radio I can just have them read the code. My code is my test procedure. The hardest change for me was the move from VB6 to VB .NET and OOP. For me VB .NET is the best choice.
As Mr. Spock would say “Fascinating”. So many snobbish replies, essentially knocking Visual Basic. IMO, VB was probably the best product Microsoft ever marketed (certainly, a heck of a lot better than “Metro”). While I haven’t done anything with VB in a few years, it was a nice quick way of developing GUI S/W where performance was not the chief criteria. Over the years, I have used various languages – Assembler, C, C++, JAVA, PL/1, COBOL, Forth, APL, REXX, Smalltalk, Javascript, HTML. etc., plus a few you probably never heard. Every language I have ever used had its own merits. Back in the DOS days, I had PC DOS, which included REXX and it was, like BASIC, a nice quick way of getting a job done. However, the one language which was great for rapid prototyping (and even production when available) was APL. Once you learned the language, you could whip up a program in a few short hours and debugging was a breeze. I still have a set of key caps with the character set.
I wish MS had called VB.Net something else. People (who should know better) lump VB, VBA and VB.Net all together when in actual fact VB.Net is conceptually light years ahead of the old VB. The syntax may look similar but that’s where it ends. Its OO all the way in VB.Net whereas it was only ever a late in the day bolt-on in VB and VBA. I agree with one of the posters above, I wish that when MS decided to preserve VBA they’d at least updated the language syntax to match VB.Net. Okay it wouldn’t be managed code but it would at least offer a logical stepping stone to VB.Net. Now we have a mess, VB.Net is dragged down by its association with the rotting carcass that is VBA. But having said that, just because you develop in VB6 or VBA doesn’t make you a bad developer!
If the future is HTML5 and JS then I don’t find it very enticing – HTML5 is a markup language and other is just for writing snippets of script. I don’t regard either of them as ‘proper’ languages. They’ve both been bent to do things they were never designed to do.
“HTML5 is a markup language and other is just for writing snippets of script. I don’t regard either of them as ‘proper’ languages.”
THANK YOU! Markup and embedded scripting are not tools to develop applications. If HTML5 and JS are the supposed future, what can we expect even farther down the road, DOS batch files and ASCII text?
There is an elite group of ‘professional’ software writers who are terrified that anything should appear easy, undermining their arcane craft.
My task is to give mechanical engineers an aptitude for running up simple code to perform a simple task. In the ‘good old days’ Quick Basic was the answer, with easy I/O to interface to sensors and actuators. A pendulum could be balanced with a couple of dozen lines of clearly understandable code. A single file held the code in text form, easy to paste into an assignment report.
VB6 served a similar purpose, offering simple yet more sophisticated grapical output in exchange for some complication of the I/O. Once again the ‘meat’ was held in a .frm file, though a .vbp was also needed to define layout and controls.
From there it has all been downhill. ‘Drag and drop’ has indermined any hope of fundamental understanding. Wizards pervade the undergrowth of auxiliary files needed to make the simplest application run.
Yes, JavaScript is useful for simulations but Canvas has a heap of illogicalities.
My first programs were written in Edsac Autocode, half a century ago. I migrated through Algol, Fortran, Lisp and Basic in a host of dialects, and felt that in QB and VB the languages for pedagogy had reached a peak. Now the Tower of Babel threatens.
Oh, God, here we go again with the ‘how many angels fit on the head of a pin’ type of programming argument.
All of the C# and VB jihadis are strapping on their verbal suicide vests. Why publish such a useless article?
If not for any other reasons, VB should continue to exist to support the evolution of the thousands of programs written with it.
I make my everyday living from a fairly large, 13 years old business application that I still maintain and modify. It is written in VB6, not VB.Net.
I am writing extensions for it using HTML+JS+CSS+PHP, and eventually those extensions will end up being a full replacement for the application.
Software companies should commit to their customers by commiting to the tools that we, the customers, bought from them.
I don’t mind curly braces or semicolons, and I do HATE Option Strict (which doesn’t event exist in VB6).
I didn’t adopt VB until vesion 5 because it allowed me to use interfaces and late binding, and I passionately LOVE JavaScript.
If any C# or VB .NET developer has the judgmental attitude that “my language is superior, and the other is inferior or lesser, and means something unkind/unvaluable about them” (as an unexamined generalization/stereotype, no less), then that’s simply snobbery, and therefore is also in denial that it’s snob behavior/mindset. Then again, when did a snob ever give a sh-t that he’s a snob, or be interested in enlightening himself for the purpose of being a wiser more understaning respectable human being ? If a language works (gets the job done) for what a developer prefers (for whatever reasons and historical causes/reality), why all the rampant meaning-making madness ? The business perspective is most mature (i.e. a language will survive as long as it works, is used and profitable); other arguments and narrow-minded judgements are infantile residue. If it matters, I’ve used both VB.NET and C#, and I like both – it’s not emotional, yet it’s a passion.
Amen.
I have been coding for 15 years and have only ever used VB (VBA, VB6, VB.NET). I don’t/can’t read bracket languages (Java, C#, etc.), nor do I ever want to learn to do so. There’s no need. I’m plenty productive in the latest/greatest all using just VB. I don’t apologize for it – it’s a great language. I don’t know if C# or Python or SmallTalk are great – they might be. But I don’t care, they won’t help me on the job tomorrow or even in 6 months. I also speak Chinese fluently and I’ve never saw a need to learn Spanish. That might be a great language, as may Estonian. But I don’t care.
I don’t judge bracket coders. Or Spanish speakers. Or pho-snobs.
I’m on the flip side. I code in C++/C# all day and learning VB at this point in my career would only hinder me, I feel. That doesn’t mean I think VB is a terrible language or that it shouldn’t be supported. A lot of people use it. My brother-in-law used it in his Intro to Computer Science class in High School. Trying to wrap my head around the syntax to help him with it was actually quite a challenge, but I rather enjoyed it. I spent more time critiquing his teacher’s coding techniques (or lack thereof) rather than complaining about the syntax I wasn’t accustomed to.
I don’t judge VB coders. There’s no need. I find that bugs and poor features in an application are not introduced by the language but by the person developing them.
Also, pho is some good stuff.
Do we still need COBOL? Yet it still lives on…………..
As a VB.NET developer (and MVP) I like the vote statement: No Way! Set Option Strict On Forever!
I’ve voted of course for the other option as a VB developer, but I really advice every .NET developer to set Option Strict On, and on Visual Studio level! It has nothing to do if you want to develop with VB or C# or X, you always should work in the Option Strict On mode. It says something about quality and with both languages you can achieve the same.
The article is obviously written by:
a – someone who doesn’t use VB
b – someone who is contemplating switching to another language
c – someone influenced by others to think that VB is not worthy
And the question is really two questions:
Individual – Should I continue to develop in VB[.Net]?
Corporate – Should Microsoft drop VB[.Net] altogether?
For the Individual question, it is a question of jobs and pay and what you prefer. Supply and demand in your area and area of expertise. Last I checked, there was a premium for C# developers. But I have a job (stable, I think), and I’m not looking for that marginal increase that also comes with unknown risks. You make your own decision.
Could it be that the proliferation of C# articles and resources is a result of VB developers not needing as many crutches? (Ducks and runs…
)
Someone said that picking up a new language only takes a couple of weeks. Sure you can write some lines of code pretty quickly, but you’ll be making beginner mistakes. You’ll be focused on the mechanics of the language instead of the task at hand. Any project where you use “new technology” (new to the developer), you should apply a factor of 2.5 to the duration and effort. It takes several months to get reasonably comfortable, a year or so to become proficient, and probably two to five years to become fully expert in a new language/technology. The .Net framework may make the transition from VB.Net to C# a little easier, but the same considerations remain.
Having seen languages come and go, I have seen many more languages come than go. I expect VB.Net to stay around for quite some time. I expect C# to stay around, possibly longer. But for now, they are both here and no magic wand or Redmond proclamation is going to make either of them disappear.
Consider the “critical mass” principle. Once something (a product, an opinion, etc.) reaches this point, it gains a “life of its own” that is hard to control. VB Classic, VB.Net and C# are all in this category. Another poster stated that he thought there may be a 2:1 ratio of deployed VB/VB.Net code to C# code in use in businesses today. I do believe that was the case a couple of years back, but do your own research. More technology in the “critical mass” stage is obsoleted by a shift in technologies than by a parallel product doing the same thing. Mobile computing may be such a shift, but it is a little early to tell what will be standing 10 years from now.
What I do know is that changing languages is not simply a question of popularity. It is easy to throw away something that is not being used. It is a whole other story to pull the rug out from under a business. Converting an app that a business has built its business and sometimes parts of its infrastructure around is very costly and timeconsuming. And it doesn’t add any business value.
Resources such as time, analysts, developers, and other project team members are at a premium in most businesses. You have only so many people, so many tasks that your business needs addressed, and so much time to get it done. Resource allocation is key. Converting from one language to another is like painting your car because it is dirty. It is expensive, time consuming, unneccessary, and doesn’t add any value to your car. All it needs is a wash.
There are plenty of business apps out there still running under VB6. The cost to convert them is too high and the benefit is not worth it. Note that the cost is not just in rewriting each line or recompiling in a new version. It is retesting. Redistribution. Retesting. Replacing third party elements. Retesting. Revamping related infrastructure. Retesting. Did I mention Retesting?
The push to rid the world of VB probably originated somewhere in Redmond and was eagerly picked up by C# developers. It is interesting to look back at the initial launch of C# – Microsoft’s intended Java/JavaScript killer. They couldn’t get into that market, so they created their own – and quite succsessfully. VB developers have never been held in high esteem by those who thought they were using a “superior” language. We just get the job done. In my 21 years with VB, there are two areas I have encountered where I need to look elsewhere – mimicking some C structures to interface with a C-only library, and implementing an efficient version of a specific algorithm which I no longer remember the name or details of. In both cases, a slight detour elsewhere integrated nicely into my app.
To me, VB is kind of like the iPhone of computer languages – without the cool factor. It does what I want it to do with minimal surprises. *It just works.* I’m not knocking C#, but there are times it is just difficult to do simple things. And while better than C/C++, C# still invites convoluted notation with potential side-effects.
Will JavaScript and HTML5 replace VB? I think the answer is the same as the answer to whether it will replace C#. Will more people learn JavaScript and HTML5? Probably. Will fewer people learn VB? Possibly. Will HTML5 reach critical mass? Maybe.
If I have a choice between a native app (iPhone Objective-C, Windows VB/C#/etc.) and a connected app (iPhone WebKit, Windows(8) HTML5*/JavaScript), in most cases I will choose a native app.
Just to be clear, this article was written by a 4-time Visual Basic MVP
Asking the question doesn’t mean I don’t still love VB.
Asking the question in this way gives the question legitimacy. So are you:
b – someone who is contemplating switching to another language
c – someone influenced by others to think that VB is not worthy
or did you just try to stir up a discussion (:-))?
Many good comment BTW.
I’ve heard all of this before… first it was C, then PowerBuilder, then Delphi, then Java, then C# and now it’s JavaScript. Really?!?!? For such a “second rate language”, there sure seems to be a ton of stuff out there “gunning” to “replace it”. Having a choice of languages is just that, choice. At the end of the day, an end user of a product doesn’t give a rats ass about what it was written in. I can say that I’ve been able to deliver rich experiences utilizing BASIC through all of these phases and I suspect, one way or the other, I’ll continue to do so through the coming JS ***FAD*** phase; while left pondering as to what the NEXT one to join the list will be. I’ll just leave it at that.
Nearly 20 years of coding here across several languages. Lots of good comments from people. Personally, I think the issue is with those C# developers who think they are holier than though. The fact that people have to feel like dark matter developers is ridiculous. Comments such as “you are big boy now so use semi-colons” and insinuating that if a person isn’t using C# then they aren’t intelligent just shows a lack of knowledge itself. I have actually been at conferences before where the speaker asked for a show of hands of people using VB or C# and a couple of guys made jokes about VB developers.
A language is a language and the executable in the end and functionality for a user are the same. You can’t put out anything more exciting with C# then you would for other languages. You never see VB developers degrading C# developers. This mentality is fairly childish, immature. not professional, and borders on being a bully. Feel free to prove me wrong if you have seen otherwise.
Some more comments/discussions can be found here
https://groups.google.com/forum/?fromgroups#!topic/microsoft.public.vb.general.discussion/hX7SLzyFljo
GrayHat, thanks for the heads up. I’ve read through many of the posts on the Google group and felt a response was called for. But I prefer to keep the discussion here where the question originated.
“I think the person who wrote that rubbish does not understand anything at
all about VB. He thinks everyone lives in a web page.”
Not at all. As a former VB MVP with experience using VB since version 5 (and other flavors of Basic long before that) I think I have a pretty good idea of what its strenghts and weaknesses are. So don’t be too quick to discount the question just because you think I’m an idiot or that I hate VB. Neither is the case.
“That’s the crux of the issue to my mind. The author is on
the web-app bandwagon, glibly parrotting the current prattle
and jargon, presumably in hopes of collecting Google adwords
fees. ”
I don’t think we advertise with Google and even if we did, its not something that I am involved with. And it’s not ME who is on the web-app bandwagon, it’s Microsoft or so it would seem by the demos they give at conferences and online. When was the last time somebody from Microsoft did a demo using Visual Basic?
“Microsoft has waged a systematic
dis-information campaign aimed at “slipping an RT mickey” to
Windows users in hopes that they won’t notice. Part of that
plan is to refer to Metro web-apps as “modern apps” or “Windows 8
apps”, in order to cast the Metro hijack of Win8 as the real
Win8. The author — knowingly or unwittingly — has gone along
with that confusion, never even drawing a distinction between
Windows software and scripted webpage applets, bought mainly
for tablets and phones through the Microsoft store.”
The confusion between “Metro” apps and desktop software was created by Microsoft. Show me something that clearly demonstrates that Microsoft is actively pushing desktop apps in Windows 8 versus Metro apps. WinRT (the runtime not the OS version) *IS* the future of application development in Windows. Microsoft has wanted and needed to get away from Win32 for years and this is how they’re going to do it. By promoting scripted web apps on Win8 and NOT promoting VB apps there seems to be a distancing of Microsoft from VB, intentional or otherwise.
Ultimately the question I would NOW ask from all of those who have commented is this. While almost all of the comments are PRO VB, why are only half of the votes PRO VB? Let’s hear from some of the people who voted NO so we can find out why they think VB should go away.
I’m one of the posters in the Usenet thread. I’d like to mention something here that you didn’t touch on: VB itself isn’t the problem, the problem really is Microsoft’s handling of VB’s end-of-life.
It’s true that MS really wants people to jump on the .Net bandwagon. I have no problem with that, but I feel that there are enough people to warrant continued VB development, even if it’s outside of Microsoft.
MS has their share of open source projects. I believe that they would find many developers happier to write for Windows if they released VB’s source, and there would be at least *some* increase in people buying Windows.
Failing that, as I said in the Usenet thread, the community (such as it is) could very well write its own VB-compatible compiler (which would please me to no end).
As for the “pro-VB” vs “no VB”, I imagine that most people who think VB should die feel something along the lines of “VB? Meh.” while we pro-VB people are rabid.
last year I worked with delphi 7 not vb 6 in a company that develop app for banks and companies in egypt. I found that banks and companies that need high security level refuse to setup frame works .
SO, I think that VB6 and C++ and all com language will live as long as their is a place to sell their apps. unless Microsoft provide more security to their customers !!!!
Pingback: Traditional Programming Language Job Trends – February 2013 | Regular Geek
Frankly, I don’t think it matters if we want or need Visual Basic anymore. Microsoft will do what is most profitable for themselves.
Just think about the huge amount of tools (Visual Basic, Visual Fox Pro) and frameworks (COM, DAO, ADO, Web Services, LINQ2SQL) Microsoft has said are the mainstream, and later killed or villified. Worse yet, there are the ones they tell us to stop using, and then change their minds a few years later, such as ODBC.
Microsoft will choose to do whatever they deem best. Their reasoning is unfathomable. And, because we have all bought into their product line, we will get in line, and toe the line to the tune they play.
If we don’t like it, then I guess it’s time to start contributing to open systems projects. Oh no! Microsoft has beaten us there too. Now it’s time for them to make Hadoop better, with a Microsoft twist.
Oh no!! What about someone like me triggering to learn VB? Does it mean no future hope on working in the line to speak that language(VB)? As a newbie in programming, aspiring to speak differ languages; c, java, c#, c , php, javascript, python, html5, because in the end having a lingua franca in these languages gives a very good lift in the science of computer. Those who are, knows what I mean. Still does it mean I shouldn’t bother learning VB? Can’t VB write apps beyond win32 sys at least latest versions?
There is no better language to start learning to code than Visual Basic. Once you learn one language it is much easier to learn a new language. I would advise you ignore those who compare languages especially when you start out. However, I would advise that you make sure you work on understanding the object oriented nature of Visual Basic. Have a look at the following playlist of videos on the object oriented nature of the language:
Here’s the thing. VBnet, from a human factors standpoint, still seems superior to C# or other C-Form languages, and I can write in it amost as fast as I can think and type. Moreover, there’s no significant object difference between the capabilities of C# and vb.net.
http://channel9.msdn.com/Series/Windows-Store-apps-for-Absolute-Beginners-with-C-/Part-1-Series-Introduction
Bob Tabor: “While I began with VB, I haven’t seen a lot of docs / videos / articles / books using VB for Win8 or other recent technologies. Increasingly, it feels to me *personally* like C# would be a good investment.”
Sounds like Bob thinks VB.NET is on the way out.
Microsoft Visual C# .NET, a new programming language based on Microsoft .NET technology, claims faster and easier development that saves time and money. This article gives an introductory, practical look at programming in C#. To fully utilize the C# language capabilities for test and measurement, you need to have a good understanding of how this language interacts with the Microsoft .NET framework. With a thorough discussion of C# and the object-oriented approach, this article explores how Microsoft C# impacts Visual Studio programming and whether or not it’s right for your test and measurement application development.
At first I´d like to thank you for your good article.
I get a lot of information.
In my opinion we still need Visual Basic, but it has to change some features.
With these changes it will be better Than Java.