Evolution of VB.Net

vis781

Well-known member
Joined
Aug 30, 2005
Messages
2,016
Location
Cambridge, UK
Programming Experience
5-10
This is just my take on the future for VB.Net. As we all know Vb.Net's greatest rival is C#, there is always much 'discussion' as to what language is better (faster, more professional etc..) and there are equally good arguments on both sides IMO. However since C# has is an ECMA standard language, and VB remains proprietary, it does make me wonder. I believe that this is because that in future versions of VS/.Net VB.Net will continue to become more complex. We've already seen it with the introduction of 2005 The 'Using' block, 'Generics', and 'Trycast' to name but a few. Are MS trying to push the boundries of VB.Net further and further? I believe so. It is the opinion of this programmer that VB.Net will become the future of .Net programming. Now i'm not trying to say that other languages will become obselete but i do think that VB is a 'pet project' of MS, something they plan to expand. Maybe i'm wrong here. but i'd love to be proved right?

Just in case anyone is interested in reading the language specification on vb.net, you can find it in the attached file....
 

Attachments

  • Specs.zip
    195.6 KB · Views: 25
I have a post with some links for info about the current future of VB in this thread, but I don't think these news/changes is VB specific vs C#. Who knows further ahead, if not VB got the take of being professional still it got the reputation for easiest RAD and fastest UI development, the development industry also knows time is money. I think in many fields it is not C# vs VB.Net, but managed vs unmanaged code, or MS platform only vs non-MS platform, or winapp vs webapp the decisions to make.

I would think there was much debate internally in MS pre-.Net as to what direction to take with all their development languages and .Net seems like a compromise because neither camp could agree on one common new language, ie a common .Net base but still separate languages for now. It's like everyone's saying "we don't agree about anything, but that library is nice, we can use that."
 
Agreed, managed vs ummanaged is the ultimate debate. I terms of speed of execution i suppose unmanaged is always going to be head and shoulders above managed code, however for me it is only the initial load time that has any real bearing. I checked out the the future links page, it would seem though that the biggest change will be the deep integration of XML (XLinq) but i'll reserve judgement on that for now. As for the framework, i'm pleaseed to say the 3.0 version is not that much different to 2.0 more of an addin if you ask me. Still the WPF is going to be a breath of fresh air for all those involved in 3D graphics, it's about time the framework had some proper functionality for this.
Overall the future .Net and VB looks really good, it's expanding so fast it's going to be a job to keep up!!!
 
I would think there was much debate internally in MS pre-.Net as to what direction to take with all their development languages and .Net seems like a compromise because neither camp could agree on one common new language, ie a common .Net base but still separate languages for now. It's like everyone's saying "we don't agree about anything, but that library is nice, we can use that."

I'm sure I've expounded on this before :D but I'll add a summary of my feelings:

.NET *is* one base language. Its market appeal is widened by providing 4 syntaxes encompassing a huge range of understanding amongst programmers. Provision of the syntaxes is largely a commercial ingenuity for microsoft, and whether or not people ever realise the fact that they are all the same thing under the hood, they still buy it. It's not that ignorance is required for this particular deal to work, but more that it doesnt matter whether the coders are ignorant or not.

Microsoft agreed about everything, because of .NET's grounding. As a retaliatory sting to the commercial snubbing they received on the Java thing, it made sense to take the unified concept of write-here,run-anywhere (java) and work it over to become write-anywhere,run-here. If anything the move achieved a greater market attraction than java did. The brilliance is furthered by people trying to port the CLR to other platforms (the MONO project: technically very possible; it is a form of VM, like java's VM) which diminishes java's stronghold of being multi-platform. Also, .NET could technically be expanded to other syntaxes. Providing a Ruby compiler capable of translating ruby code into MSIL is possible. Wehter Ruby.NET is commercially viable to attract any interest, i dont know.. If it were, MS probably would have done it, but there will always be someone who will think about something for the love of it, rather than the money..

http://www.google.co.uk/search?q="ruby.net"

One of the results asked "is microsoft freaking out about this?" - probably not. It gets people onto their platform, and theyve got the development dollars to provide new whizzbangs into their syntaxes that might draw a Ruby programmer over to the dark side (of giving dollars to MS) after successfully bringing them into the world of MS. Its a win/win for MS - they get people onto their platforms, using a language that is baseline Microsoft owned and they didnt have to do any development to achieve the extra customer base. .NET hoovers up! :D

@anyone, mostly in response to vis' comments:

The future of all .NET syntaxes is largely fixed in the base to which they facade; they cannot wander apart significantly but then, they dont need to. If the base CLR provided a low-level way to do everything, then any higher level construct can be represented. As Mr McIlhinney noted to me recently, the Using block is a simplification of a try/finally/dispose succession - a higher level construct that already has base line ingredients working. It can be provided in VB because the precompiler can handle it specific to VB and turn it into a base representation. If it were never provided in C# it still wouldnt be enough to say the two are different languages; they are just different syntaxes with preprogrammed shortcuts

I agree with vis, when he says the VB is more like the pet project; it was *vital* to provide it to capture the market share of programmers who are using VB and need an upgrade route they think they can understand (thinking you can do something is the first step to doing it). Features will be added to make the place more woolly and cossetting, maybe at the expense of performance, maybe not. It will remain proprietary for a few reasons, one of which is the pampering to the people with the money (customers) that any corp needs to do to keep bringing it in. Alienate your customers and you fail. The other reason is that VB is pretty much a monument to microsoft in the world of programming - there are other vendors of basic, but nothing like MS. The proprietaryness of it is a testament to MS' achievements in an increasingly standardising, genericising, every-man-is-doing-it arena. To put an overly-blunt perspective on it, it's a deserved ego trip and becomes self-perpetuationg as a result.

In some ways, this is the achilles heel; the non-ECMA-like issue that vis mentioned, just isnt going to get there in VB. As a syntax, it's still inconsistent and unclean, but it has to be for the users to get along with it. VBN may well become the future of .net programming - i'll clarify that by saying I think it may well become the majority language, harking back to that comment I made about it being a testament.. and if it does, it may well be through a trade on the ignorance (that doesnt currently happen) - universities may choose to teach the concepts of OO via VBN. For many the concepts will be lost and the understanding of a proprietary, unlike-any-other, language may be all that they are left with. They may never look beyond to see that it is actually .NET that they know.

I wonder whether VB will ever shake off its "basic" association (i.e. it's a noddy language) and be regarded as a professional language. It deserves to be, because it is from the same stable (just wears different clothes) as its professional brother C#, but even I (as a prorgrammer of both and mainly this year in a VBN professional context) still feel that C#'s cleaner, more consistent interface lends it the professional edge. Microsoft's insistence of throwing in extra simplifying features like Using, and molly-coddles like Option Strict=off isnt going to help to this end. Youre right that VB is going to expand; it always will. How much of this will be towards the professional remains to be seen. Traditionally, people are resistant to change, so I wonder what would happen if MS announced:

"Right, you lot.. In VB 2009 we've decided that you all need to sharpen up your habits and be less lazy and sloppy about your coding, so we've turned Option Strict on by default and you cant turn it off"

People would cry..
 
Last edited:
Back
Top