My turn to rant. I mostly skimmed over these posts, so feel free to skim this one over too, becuase it would only be fair.
OOP is the new wave of the future. Trust me, once you learn how OOP operates, you can basically program in any OOP lanaguage you want. For example, the fact that I know VB.NET makes my Java course so much easier, whereas other people in my class are sitting there typing String HelloWorld = New HelloWorld(String "Hello world") - semicolon left out intentionally.
It's a large shift from a procedural language like VB6, whose behind the scenes methods cover things up and make the language easier. Trust me - I came from vb6, and I knew the pain of switching to .NET.
I used to be in the exact same position as you, ranting about .NET. Now I realize I said that "I loved .NET when I first got it" (or something along those lines) - but it took me some time to really appreciate the language. I felt a little
quirky using it. What bothered me almost instantly was the fact that a lot of code was generated for you. I immediately got confused upon opening "Windows Form Designer Generated Code." And also the other thing that bothered me was that each event had 'strange' arguments (lol, things like "ByVal sender As Object, ByVal e as System.KeyEventArgs). And it took a long time to figure out how to show a new form.
Now, once I got into actually coding and making applications with this - I found it great. I recently opened up VB6 (after about 2 years!) and found that it was kind of
weird I guess.
Learning an OOP language really reforms you (and could spoil you if you switch back to a procedural language). In VB.NET you could say something like form1.FormBorderStyle = FormBorderStyles.None. I don't exactly remember how to do this in vb6... but I
think (don't quote me on this), it was something like form1.FormBorderSTyle = BorderStyles_None (again, I haven't done vb6 in a few years). Dim c as Color = Color.Blue... .NET keeps it simple.
Now, about the whole Microsoft sucks when it comes to documentation rant. I think it's safe to say that there's a general consensus that agrees with this. They
do document some things well, true, but other things they tend to leave blank or keep it (very) vague.
Moving to a more OO style give much more long term benefits in terms of reuse, maintainability and architectural design choices
Very true. Gone are the days where you program large modules, nowadays everything is divided into several classes.
Edit: Your comment about the pricing, heh, sorry - that's what monopolies do (ex: Google bumped my pagerank down becuase I didn't have google ads on my site (they did this to a lot of people - now it's no longer first when you search, it's backed up by a ProgrammersHeaven link which links to my site)).
Who among you has not wanted to take a baseball bat to the monitor at some point? Submit yourself for sainthood, and/or psychiatric evaluation, but don't make excuses for Microsoft's sloppiness and arrogance.
Been there, done that (well...almost). I wholeheartedly agree with the 'slopiness and arrogance' part. And you are right though - there's no excuse for that. And it's quite annoying when they change some source code for the next version, and then they switch it back for the version after that (see DirectX). They can really let you down.
It sucks in the beginning (trust me, I know where you're coming from). Microsoft can drive you nuts sometimes. Keep an open mind.
My advice:
Improvise. Adapt. Overcome. (Clint Eastwood, Heartbreak Ridge)
-The Pentium Guy