VB.Net design compromise
-
READ this, what utter crap, VB should be binned! MS Restores VB6 Functionality to VB.NET Microsoft announced today that it's making changes to Visual Basic.NET to make it more compatible with VB6. Details on the changes, outlined below, will be presented at VBITS in Chicago and New York While VB.NET includes many features developers have long requested, including inheritance, better threading, and structured error handling, the new features come at the price of changes to VB's core syntax. Given the tremendous pressure felt throughout Microsoft to ship .NET Framework and Visual Studio.NET, making fundamental changes at this point is a significant concession to core VB users. These changes will all be implemented in the Visual Studio.NET Beta 2, Ari Bixhorn, Microsoft Visual Basic Product Manager, informed VBITS and VBPJ. Changes include: *The Value of True: In VB6, when True is coerced to a signed integer, the result is -1. For consistency with other .NET languages, VB.NET was going to change the value of True to 1. Instead, it will be left at -1. Note that when a True value is passed from VB.NET to other .NET languages, it will be passed as 1. *Behavior of Boolean Operators: Microsoft intended to change And, Or, Not, and XOr to logical-instead of bitwise-operators, with new operators taking over bitwise duties. These have been restored to their previous functionality, both logical and bitwise, as has operator precedence. In addition, a planned short-circuiting capability has been removed from these operators, and has been reassigned to new operators: AndAlso and OrElse. *Declaring Arrays: For consistency with other languages, Microsoft intended to change the way VB declared arrays, so that you would specify the number of elements in the array: Dim a(10) As Integer would create a ten-element array, with an upper bound of 9. This conflicts with the VB style of declaring arrays, where Dim a(10) As Integer creates an eleven-element array with an upper bound of 10. The traditional declaration technique has been restored. Says Bixhorn, "These changes are really for [developers] maintaining an existing code base and doing new development. They want consistency. They don't want to have to look at a line of code and have to remember whether it's correct for .NET or VB6." According to Bill Vaughn, President of Beta V Corporation and a keynote speaker at this month's VBITS Chicago
-
READ this, what utter crap, VB should be binned! MS Restores VB6 Functionality to VB.NET Microsoft announced today that it's making changes to Visual Basic.NET to make it more compatible with VB6. Details on the changes, outlined below, will be presented at VBITS in Chicago and New York While VB.NET includes many features developers have long requested, including inheritance, better threading, and structured error handling, the new features come at the price of changes to VB's core syntax. Given the tremendous pressure felt throughout Microsoft to ship .NET Framework and Visual Studio.NET, making fundamental changes at this point is a significant concession to core VB users. These changes will all be implemented in the Visual Studio.NET Beta 2, Ari Bixhorn, Microsoft Visual Basic Product Manager, informed VBITS and VBPJ. Changes include: *The Value of True: In VB6, when True is coerced to a signed integer, the result is -1. For consistency with other .NET languages, VB.NET was going to change the value of True to 1. Instead, it will be left at -1. Note that when a True value is passed from VB.NET to other .NET languages, it will be passed as 1. *Behavior of Boolean Operators: Microsoft intended to change And, Or, Not, and XOr to logical-instead of bitwise-operators, with new operators taking over bitwise duties. These have been restored to their previous functionality, both logical and bitwise, as has operator precedence. In addition, a planned short-circuiting capability has been removed from these operators, and has been reassigned to new operators: AndAlso and OrElse. *Declaring Arrays: For consistency with other languages, Microsoft intended to change the way VB declared arrays, so that you would specify the number of elements in the array: Dim a(10) As Integer would create a ten-element array, with an upper bound of 9. This conflicts with the VB style of declaring arrays, where Dim a(10) As Integer creates an eleven-element array with an upper bound of 10. The traditional declaration technique has been restored. Says Bixhorn, "These changes are really for [developers] maintaining an existing code base and doing new development. They want consistency. They don't want to have to look at a line of code and have to remember whether it's correct for .NET or VB6." According to Bill Vaughn, President of Beta V Corporation and a keynote speaker at this month's VBITS Chicago
April Fools was last Sunday. Please tell me someone simply got their dates mixed up. Is there a source for this story? My first thought was "Oh My God" - but then after thinking about it my thoughts are: a) Who among us (C++ developers) would move to VB.NET instead of C#? C# is as easy to program as VB is (IMO, easier), yet retains a C++ feel. If I've gotta write managed code (or ASP.NET pages) I'll use C#, when I write native apps, I'll use C++/MFC. If VB.NET ever wanders into my world then would have written a DevStudio macro to tack on ';'s to the end of each VB line and remove the
call
statements. Viola! - C#. b) Many VB developers are simply guys and girls who have been forced to do programming simply to get a job done. They learn as much as they need to, and no more. Asking these people to relearn an entire new paradigm could kill a fairly large market. c) Now those of us getting old and tired and who want to laze about in their arm-chairs coding C# instead of gnarly obfuscated C++ can feel like we are more of a Man, and less of a closet VB programmer. We again have reason to point and laugh at VBer's :) I would hate to be in the VB Product Manager's shoes at the moment :eek: Still - this all assume that what was reported is true. I did a bit of a ferret around but couldn't see anything official-like. cheers, Chris Maunder -
April Fools was last Sunday. Please tell me someone simply got their dates mixed up. Is there a source for this story? My first thought was "Oh My God" - but then after thinking about it my thoughts are: a) Who among us (C++ developers) would move to VB.NET instead of C#? C# is as easy to program as VB is (IMO, easier), yet retains a C++ feel. If I've gotta write managed code (or ASP.NET pages) I'll use C#, when I write native apps, I'll use C++/MFC. If VB.NET ever wanders into my world then would have written a DevStudio macro to tack on ';'s to the end of each VB line and remove the
call
statements. Viola! - C#. b) Many VB developers are simply guys and girls who have been forced to do programming simply to get a job done. They learn as much as they need to, and no more. Asking these people to relearn an entire new paradigm could kill a fairly large market. c) Now those of us getting old and tired and who want to laze about in their arm-chairs coding C# instead of gnarly obfuscated C++ can feel like we are more of a Man, and less of a closet VB programmer. We again have reason to point and laugh at VBer's :) I would hate to be in the VB Product Manager's shoes at the moment :eek: Still - this all assume that what was reported is true. I did a bit of a ferret around but couldn't see anything official-like. cheers, Chris Maunderhi chris, the closest i came across is http://www.zdnetindia.com/techzone/news/stories/18594.html and i think its real .... cheers kannan
-
hi chris, the closest i came across is http://www.zdnetindia.com/techzone/news/stories/18594.html and i think its real .... cheers kannan
-
READ this, what utter crap, VB should be binned! MS Restores VB6 Functionality to VB.NET Microsoft announced today that it's making changes to Visual Basic.NET to make it more compatible with VB6. Details on the changes, outlined below, will be presented at VBITS in Chicago and New York While VB.NET includes many features developers have long requested, including inheritance, better threading, and structured error handling, the new features come at the price of changes to VB's core syntax. Given the tremendous pressure felt throughout Microsoft to ship .NET Framework and Visual Studio.NET, making fundamental changes at this point is a significant concession to core VB users. These changes will all be implemented in the Visual Studio.NET Beta 2, Ari Bixhorn, Microsoft Visual Basic Product Manager, informed VBITS and VBPJ. Changes include: *The Value of True: In VB6, when True is coerced to a signed integer, the result is -1. For consistency with other .NET languages, VB.NET was going to change the value of True to 1. Instead, it will be left at -1. Note that when a True value is passed from VB.NET to other .NET languages, it will be passed as 1. *Behavior of Boolean Operators: Microsoft intended to change And, Or, Not, and XOr to logical-instead of bitwise-operators, with new operators taking over bitwise duties. These have been restored to their previous functionality, both logical and bitwise, as has operator precedence. In addition, a planned short-circuiting capability has been removed from these operators, and has been reassigned to new operators: AndAlso and OrElse. *Declaring Arrays: For consistency with other languages, Microsoft intended to change the way VB declared arrays, so that you would specify the number of elements in the array: Dim a(10) As Integer would create a ten-element array, with an upper bound of 9. This conflicts with the VB style of declaring arrays, where Dim a(10) As Integer creates an eleven-element array with an upper bound of 10. The traditional declaration technique has been restored. Says Bixhorn, "These changes are really for [developers] maintaining an existing code base and doing new development. They want consistency. They don't want to have to look at a line of code and have to remember whether it's correct for .NET or VB6." According to Bill Vaughn, President of Beta V Corporation and a keynote speaker at this month's VBITS Chicago
There are some people who like the new VB (myself included), and there are some people who like the old (VB6) VB. The solution to make everybody happy is simple: either add a compiler option allowing the programmer to compile in VB6 or VB.NET format, or use an inline text statement, such as:
Option Explicit
Option VB6Frankly, I prefer C++, but program in VB at work, and thus, I do stay involved with the VB world. Jamie Nordmeyer Portland, Oregon, USA
-
READ this, what utter crap, VB should be binned! MS Restores VB6 Functionality to VB.NET Microsoft announced today that it's making changes to Visual Basic.NET to make it more compatible with VB6. Details on the changes, outlined below, will be presented at VBITS in Chicago and New York While VB.NET includes many features developers have long requested, including inheritance, better threading, and structured error handling, the new features come at the price of changes to VB's core syntax. Given the tremendous pressure felt throughout Microsoft to ship .NET Framework and Visual Studio.NET, making fundamental changes at this point is a significant concession to core VB users. These changes will all be implemented in the Visual Studio.NET Beta 2, Ari Bixhorn, Microsoft Visual Basic Product Manager, informed VBITS and VBPJ. Changes include: *The Value of True: In VB6, when True is coerced to a signed integer, the result is -1. For consistency with other .NET languages, VB.NET was going to change the value of True to 1. Instead, it will be left at -1. Note that when a True value is passed from VB.NET to other .NET languages, it will be passed as 1. *Behavior of Boolean Operators: Microsoft intended to change And, Or, Not, and XOr to logical-instead of bitwise-operators, with new operators taking over bitwise duties. These have been restored to their previous functionality, both logical and bitwise, as has operator precedence. In addition, a planned short-circuiting capability has been removed from these operators, and has been reassigned to new operators: AndAlso and OrElse. *Declaring Arrays: For consistency with other languages, Microsoft intended to change the way VB declared arrays, so that you would specify the number of elements in the array: Dim a(10) As Integer would create a ten-element array, with an upper bound of 9. This conflicts with the VB style of declaring arrays, where Dim a(10) As Integer creates an eleven-element array with an upper bound of 10. The traditional declaration technique has been restored. Says Bixhorn, "These changes are really for [developers] maintaining an existing code base and doing new development. They want consistency. They don't want to have to look at a line of code and have to remember whether it's correct for .NET or VB6." According to Bill Vaughn, President of Beta V Corporation and a keynote speaker at this month's VBITS Chicago
Look at it from another prospective. If .NET is truly language-agnostic then compromises like this are only natural. What do you expect them to say? "Yes it supports multiple languages, only some basic operations behave differently under .net". Why should a framework affect a keyword? What if I want to develop a library that works in both .NET and VB6? Anyway, even though it doesn't affect me (not my kind of language anyway) it looks to me like the decision to preserve the original behavior is totaly legitimate, and as more languages will become .NET-aware it's very likely we'll see them do the same thing.
-
What a shame, a truely good idea would be to drop VB from .Net altogether, oh well we sit in hope :) So now that means we're gonner see even more lame programs, .Net making VB even easier to develop horrid applications.
Knuckle. What sort of closeminded attitude is that? I've been a programmer for 15 years, and have happily concentrated in VB for the last 4 (hey I used to be COBOL, Pascal, and others)... I acknowledge that it doesn't do everything C++ can do, but it does a heck of a lot and it does it well. I'm currently lead developer on a 100% VB app that is sold as a retail shrink-wrapped product that is best of breed, and the users can't tell that it wasn't written in a "hardcore" language like C++. I don't bag any other languages out (except Java but that's just for fun), so why do others? I'm glad they're including VB in .Net. The changes are quite drastic in some ways, but I find some of the backtracking a bit odd, or piecemeal. 1. True value - I've always believed that any programmer who has used literals instead of the constants of True or False is just trying to make it hard for themselves and for anyone trying to maintain their code in the future. If they used the constants they wouldn't be in this situation. 2. Arrays - This is a piecemeal solution. One of the attributes of declaring an array was that x(10) would give you x(0) to x(10) - but the other nice one was being able to declare x(10-20). Basic was originally designed to be a language that "thought" the same way people think, not the way computers think. So computers start counting at 0, but people start counting from 1. I have a lot else I could say here, but I think I'll leave it.
-
April Fools was last Sunday. Please tell me someone simply got their dates mixed up. Is there a source for this story? My first thought was "Oh My God" - but then after thinking about it my thoughts are: a) Who among us (C++ developers) would move to VB.NET instead of C#? C# is as easy to program as VB is (IMO, easier), yet retains a C++ feel. If I've gotta write managed code (or ASP.NET pages) I'll use C#, when I write native apps, I'll use C++/MFC. If VB.NET ever wanders into my world then would have written a DevStudio macro to tack on ';'s to the end of each VB line and remove the
call
statements. Viola! - C#. b) Many VB developers are simply guys and girls who have been forced to do programming simply to get a job done. They learn as much as they need to, and no more. Asking these people to relearn an entire new paradigm could kill a fairly large market. c) Now those of us getting old and tired and who want to laze about in their arm-chairs coding C# instead of gnarly obfuscated C++ can feel like we are more of a Man, and less of a closet VB programmer. We again have reason to point and laugh at VBer's :) I would hate to be in the VB Product Manager's shoes at the moment :eek: Still - this all assume that what was reported is true. I did a bit of a ferret around but couldn't see anything official-like. cheers, Chris MaunderHello, the codegurus around the world. ;) I heard that the previous 100 MS developers came back to MS because of the worst ecnomical situation. Microsoft is willing to hire these 100 developers again. So, I think that the devloping speed of the software in Microsoft is fater than we expect now. As a result, Microsoft can respond the complaint about VB.NET from the current VB developer around the world as fast as possible. :rolleyes: Last, almost of Microsoft VB.NET developers know both C++ and VB, they can't expect that VB developers in the world are scared to these change of VB.NET, I guess. Have a nice day! -Masaaki Onishi-
-
Knuckle. What sort of closeminded attitude is that? I've been a programmer for 15 years, and have happily concentrated in VB for the last 4 (hey I used to be COBOL, Pascal, and others)... I acknowledge that it doesn't do everything C++ can do, but it does a heck of a lot and it does it well. I'm currently lead developer on a 100% VB app that is sold as a retail shrink-wrapped product that is best of breed, and the users can't tell that it wasn't written in a "hardcore" language like C++. I don't bag any other languages out (except Java but that's just for fun), so why do others? I'm glad they're including VB in .Net. The changes are quite drastic in some ways, but I find some of the backtracking a bit odd, or piecemeal. 1. True value - I've always believed that any programmer who has used literals instead of the constants of True or False is just trying to make it hard for themselves and for anyone trying to maintain their code in the future. If they used the constants they wouldn't be in this situation. 2. Arrays - This is a piecemeal solution. One of the attributes of declaring an array was that x(10) would give you x(0) to x(10) - but the other nice one was being able to declare x(10-20). Basic was originally designed to be a language that "thought" the same way people think, not the way computers think. So computers start counting at 0, but people start counting from 1. I have a lot else I could say here, but I think I'll leave it.
>>Basic was originally designed to be a language that "thought" the same way people think, not the way computers think. So computers start counting at 0, but people start counting from 1. Well, Only Christians and VB programmers starts counting from 1 ;P You have a point here, if you want the last item of an array you have to use myarray[sizeof(myarray)-1]. That "minus 1" looks strange. I had a problem myself when staring C with that. But now i learn to work with this and sometimes i found it very smart. It makes a lot of algorithms look better, and saves me from a lot of "plus 1" :) for ex. when you want to iterate an array instead of writing: for(int i=1;i<=sizeof(myarray);i++){myarray[i]=0}; you write the following: for(int i=0;i
-
Hello, the codegurus around the world. ;) I heard that the previous 100 MS developers came back to MS because of the worst ecnomical situation. Microsoft is willing to hire these 100 developers again. So, I think that the devloping speed of the software in Microsoft is fater than we expect now. As a result, Microsoft can respond the complaint about VB.NET from the current VB developer around the world as fast as possible. :rolleyes: Last, almost of Microsoft VB.NET developers know both C++ and VB, they can't expect that VB developers in the world are scared to these change of VB.NET, I guess. Have a nice day! -Masaaki Onishi-
Huh, what's that? You say "almost of Microsoft VB.NET developers know both C++ and VB, ..." I assume you mean "almost all of Microsoft..." And I need to ask how the hell can you even remotely back that up? Are you saying only those VB programmers who know C++ would think of upgrading to VB.NET? That would shut out a vast number of VB developers from using VB.NET. I only know C++ enough to read it but not enough to code it confidently. I know VB like the back of my hand. What am I doing at the moment? I have Visual Studio.NET Beta and am furiously coming to terms with the changes in VB.NET whilst at the same time looking at C#. I don't agree that MS should have backed out some of these changes, but I realise why they're doing it.
-
>>Basic was originally designed to be a language that "thought" the same way people think, not the way computers think. So computers start counting at 0, but people start counting from 1. Well, Only Christians and VB programmers starts counting from 1 ;P You have a point here, if you want the last item of an array you have to use myarray[sizeof(myarray)-1]. That "minus 1" looks strange. I had a problem myself when staring C with that. But now i learn to work with this and sometimes i found it very smart. It makes a lot of algorithms look better, and saves me from a lot of "plus 1" :) for ex. when you want to iterate an array instead of writing: for(int i=1;i<=sizeof(myarray);i++){myarray[i]=0}; you write the following: for(int i=0;i
So, I'm both... shoot me :) I think the way VB does arrays is the better way. It's just one of the things that Basic was supposed to do for the programmer - make it easier to understand. So, if I want an array of 10 ints, I can then just use X(10). OK, eleven elements are defined, and I don't use the 0th element, but I know my ten elements are from 1 to 10... sounds logical to me. Can I ask why using 0-based arrays saves you from a lot of "plus 1" stuff? I honestly want to know.