Hey, formlesstree4,
Thanks for your response.
I respect your opinions, and here is my take on your thoughts.
Response1:
I somewhat agree with you in that statement. I have never thought of vb.Net as a continuation of vb6, but I have also never thought of it as its successor any more than a truck is a successor to a car. They're just different animals. Unfortunately, they threw out the "simplicity layer" at the front end, and lost some of there market share with it. I see no logical reason why vb.Net could not have been a sort of context aware language, that just by recognizing how much verbosity the user includes, alerts the framework that he has chosen either a stripped down, less flexible usage of a method, or an "all-balls" approach.
We are both correct. In my original attachment, I stated,
My Response1, above, is in keeping with that quote. By eliminating a dual-layer (or even multi-layer) approach to vb.Net, MS essentially created a socket wrench kit and eliminated the 1/2" and 9/16" sockets...The two most-used sockets in a tool kit.
To help newcomers migrate to this different form of vb (I'll just call it, vb.Netx, from now on), the Help System could have been organized by listing the stripped-down syntax first, followed by the verbose syntax, followed by a discussion on the merits of both, and when to use either. If I know I am only going to use an event procedure for only one control, I do not need to fuss with that deeper level of control, but such a Help System will always make the user aware that there is a deeper layer he can take advantage of, if necessary.
That is only true for the DEFAULT event for that control, as I stated in the attachment:
That is especially true since, most controls have a LOT of associated events.
For instance, double-clicking a button will create the default button_Click() procedure. But what if I don't WANT the Click event handler? What if I wanted a MouseHover event instead? To make matters more complicated, and using mouse events as an example, the arguments are not always the same:
Code:
Private Sub Form1_Mouseup(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
End Sub
Private Sub Form1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseEnter
End Sub
Therefore, your argument,
does not hold. A multi-layer approach to syntax does not "break" style, but offers the user a practical choice, and double-clicking a control will only create the default event handler, but not the zillions of others.
I completely agree. But there are times that even though, for example, drawing lines to a control with the Line method is dog slow compared to a pure API set of code, that is not really an issue when the graphics are simple. If on the other hand, I will be drawing THOUSANDS of lines to a control, then I am in trouble. But context is everything. If I need to build a really quick calculator with light graphics support (and I do a LOT of that), there should be no need for me to worry about the Paint event and the code that goes with it. BUT, I want to know that the language will allow me to go deeper when I require it (I occasionally build large apps that need that level of control. Traditionally for me, I then lean on the API rather than vb.Net because it seems to me to be about the same level of work involved). That puts the ultimate level of control in the user's hands where the language does not force him into one style or another. This is where vb.Net's "flexibility" becomes inflexible.
In your response to my statement, "...there is no function in vb.net that cannot be duplicated in some vb6" where you say,
I refer you back to my attachment, where I state:
---------------
At any rate, I appreciate the debate...and your willingness to read the attachment, and your time. I piss people off some times, but one thing I can always say about the time you guys spend helping us all out with programming questions means you are all under-appreciated by some. But not me.