Why the hell is VB.NET considered a bad language? I can build stuff with it pretty damn quickly and it runs at the same speed as a similar C# app. What's the deal with the VB hate? I am currently self-teaching C# (good book!
http://www.amazon.com/dp/1430242337/?tag=neogaf0e-20 ) but I am not noticing a big deal so far. Hmm.....
http://stackoverflow.com/questions/66130/whats-so-bad-about-vb-net
http://blogbybob.com/post/2009/11/03/Why-VBNET-is-a-Bad-choice.aspx
http://www.dreamincode.net/forums/topic/146987-is-vbnet-really-that-bad/
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=133684
http://weblogs.asp.net/fbouma/archive/2003/11/12/37199.aspx
Some of the above links are super old, fyi.
Draw your own conclusion. But I think you're going to be dissatisfied no matter what, since you're arguing with nobody in particular.
My answer: the differences between most languages are not that huge, all things considered. Since programmers are often working with their head down in the trenches, and they're human beings, they tend to magnify small differences and become attached to insignificant things. It's religious.
People naturally make judgments about things when they have a limited amount of information. For example, this guy walking down the street is dressed a certain way, so I'm going to avoid him because he might be crazy. But just because you've perceived a correlation between a certain dress and mental illness doesn't 't make it reasonable. Yet, this is how the human brain works when on autopilot. People do this a hundred times a day, and programming is no exception. People judge VB.NET and its programmers based on perceived, correlated information like poor skills, weird syntax, second-hand information they heard somebody says once, etc. Because they're humans and they're not being mindful.
IMO I think programming languages are mostly evolving in great directions these days. People are starting to embrace lots of different and useful paradigms like functional programming and declarative programming, and they're rejecting things that haven't worked that well in the past. If you look at C# in .NET 1.0 vs C# 5 (.NET 4.5) they've added tons of great stuff like parametric polymorphism, closures, type inference, lambda expressions, first class function objects, creating types on-demand, etc. Newer languages come with a lot of this stuff out of the box, and they often also include things like first class tuples, pattern matching, destructuring, option/maybe/either types, etc.
There's nothing "wrong" with languages that are missing some of these features, but I will tell you that it's hard going back once you've started using some better tools. Not to say VB.NET is necessarily missing a lot of this stuff; I'm just going off on a tangent.
I think languages like haskell, scala, rust, and go have bright futures, and exposing yourself to some of the alternative ways of programming that are out there makes you a far better programmer.