Is VB.NET dead?

C

clintonG

Yes, Hello Mr. Profound,

I'm inspired by your comments which reflect deep philosophical thoughts
Kevin and you know I enjoy hearing from you.

Figuratively speaking, let's take a ride on the Wayback Machine for a
moment. This topic of mine derives from the very first days of the beta when
the 1.0 framework was released. What was the big language thing everybody
talked about?

Unless you were hip to research.microsoft.com you wouldn't have even heard
of C# as there were no C# developers at the time so to speak. For the most
part. the only persons around in these microsoft.public newsgroups used C++,
ASP/VBScript and Visual Basic 6 as we migrated from inetserver.asp.general.
As I recall the most common topic at the time was the release of the C#
language in the context of its use with the framework.

The nucleus of many discussions was not "What's Your Favorite Book" or even
"Which Language Should I Use" (both of which were to come shortly
thereaftyer). That was the time of the birth of the question "Is VB dead?"
Yup. Yesiree. Wayback when and its still here ainna?

<%= Clinton
 
C

clintonG

But the syntax is *not* exactly the same. Even the punctuation is not
the same, and frankly the punctuation of a language is pretty trivial.

The punctuation is a considerable matter to neophytes learning OOP. It poses
a dilemma in fact. Similarly, it was a dilemma VB developers faced as
expressed by the topic of this news article, i.e Is VB dead? Which is
rhetorically alive and well is it not? Same question day one is still with
us.

If you really meant to say "Java and C# use curly braces, VB.NET uses
Begin and End, and Java/C# both use a semi-colon at the end of a
statement" then you should have said so - because that's about as
far as you can go saying that the languages are "exactly" the same.
Learning one of C#, Java or JavaScript does *not* give you "three
languages for the price of one" contrary to your original claim.

Read the first paragraph introducing JSON (http://www.json.org/) and explain
to me how the premise in that paragraph is an exaggeration (as I've snipped
your comment in that regard). Three for the price of one I've said. That
document gives us at least seven (7) siblings and acknowledges yet more all
of which share the same genealogy.

I believe the punctuation in these C-like languages is what makes the
languages semantically self-documenting whereas VB is verbose to ensure its
readability remained "Basic." How else would we agree that a language such
as C# for example could be considered to be elegant?

This topic will always seem to me to be a matter of lexical composition
unique to a specific corpus be it C# or JSON or VB but do we usually discuss
this using those formalities? Okay, I'll get allegorical and throw around a
fallacy of composition from time to time but so what? Like a piece of red
meat thrown into a room full of hungry dogs out come the pontificators. :)

<snip />
 
J

Jon Skeet [C# MVP]

clintonG said:
The punctuation is a considerable matter to neophytes learning OOP. It poses
a dilemma in fact. Similarly, it was a dilemma VB developers faced as
expressed by the topic of this news article, i.e Is VB dead? Which is
rhetorically alive and well is it not? Same question day one is still with
us.

Regardless of how important it may seem to start with, knowing the
punctuation of C# certainly does *not* mean you know Java, or vice
versa. You may well be able to make intelligent guesses as to what some
code written in the "foreign" language means, but you could equally
easily get lost if the code uses some of the more advanced features.
More importantly, there's a huge difference between being able to make
educated guesses as to the meaning of existing code, and being able to
write *new* code in the language.
Read the first paragraph introducing JSON (http://www.json.org/) and explain
to me how the premise in that paragraph is an exaggeration (as I've snipped
your comment in that regard). Three for the price of one I've said. That
document gives us at least seven (7) siblings and acknowledges yet more all
of which share the same genealogy.

No, you're assuming that knowledge goes both ways. Just because a C#
programmer may be able to read JSON *doesn't* mean that everyone who
can read JSON can read (or write) C#.

Knowing C# does *not* mean you can write Java, or even read it. If you
truly got "three for the price of one" then every Java programmer would
be able to write C# with no extra work. That is simply not true - I've
given plenty examples of things they wouldn't know about.

That's leaving aside the whole "language is easier to learn than
framework" aspect which others have pointed out. I'd expect a competent
VB.NET programmer to be productive in C# earlier than a competent Java
programmer, because of the common framework.
I believe the punctuation in these C-like languages is what makes the
languages semantically self-documenting whereas VB is verbose to ensure its
readability remained "Basic." How else would we agree that a language such
as C# for example could be considered to be elegant?

I wouldn't like to guess what you mean by "semantically self-
documenting" but I'd be *very* surprised if you could take a Java
programmer with no C# experience and get them to write lambda
expressions with no extra learning...
This topic will always seem to me to be a matter of lexical composition
unique to a specific corpus be it C# or JSON or VB but do we usually discuss
this using those formalities? Okay, I'll get allegorical and throw around a
fallacy of composition from time to time but so what? Like a piece of red
meat thrown into a room full of hungry dogs out come the pontificators. :)

The problem is that you've *repeatedly* exaggerated the position here,
and I've called you on it before. Why keep on claiming that things are
"exactly the same" after differences have been pointed out to you?
 
F

Frans Bouma [C# MVP]

cody said:
What do you mean with that? In which point is VB more ambiguous than
C#? Maybe VB is more verbose than C#, but in change you do not need
semicolons which is also a good thing. Ideal would be a blend of
both. Maybe Python :)

foo = Bar(1)

what is Bar? Property? Array? Method? You don't know.

Another killer: say you have a C# library which defines an enum:
public enum EntityState
{
New,
Fetched,
Deleted,
OutOfSync
}

Now, in your VB.NET code you want to do this:
myEntity.Fields.State = EntityState.New

This won't compile, as 'new' has to be surrounded by '[]'. THis is
stupid, as the compiler already knows it's an enum and it's an enum
value.

There are more elements in VB.NET which are ambiguous, most of them
stem from the fact that they use () for practically everything, which
makes code pretty confusing to read.
Who is Erik Meijer?

You're funny :)

Tried google already? :) Haskell, Linq... ring a bell? ;)

FB


--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
C

clintonG

The problem is that you've *repeatedly* exaggerated the position here,
and I've called you on it before. Why keep on claiming that things are
"exactly the same" after differences have been pointed out to you?

I've continued primarily because you're making a mountain out of a mole hill
and not accepting the simple and relevant truth of what I've been saying all
along; people care about the syntax and grammar of a language and one of the
most contentious issues for those wanting to know "which language should I
learn?" or the immortal question "is VB dead?" are all uniquely relevant to
the readability of the C-like language features expressed by punctuation.
 
M

Marc Gravell

not accepting the simple and relevant truth of what I've been saying
all along
"truth" is subjective. Maybe the syntax and grammar matters to you,
but a lot of people are more interested in "what is the most effective
way to do <x>". Nothing to do with syntax.

If VB.NET diverges from C#, and starts being a truly superior tool in
some areas, then I would certainly consider using it for those areas.
As it is, C# is more convenient for many of my needs. This is nothing
to do with syntax.

As an example - with the right options, VB.NET is far more convenient
for late-binding against (for instance) COM objects, and if I was
doing a COM-centric app where I couldn't guarantee the API version on
the client, then VB.NET would perhaps be a reasonable choice for this
reason.

Marc
 
C

clintonG

I agree there are without question psychological factors involved but
neophytes new to OOP and programming in general are concerned with their
ability to read and understand the language. Its fear and uncertainty that
gnaws at a person's sense of self-esteem at the early stages of one's
involvement with software programming.

For others with previous programming experience I concede eventually there
may arise concerns about compilers and other idiosyncracies but its been my
experience to have been involved with and influenced by a lot of VB
developers and when C# was first being shown around they expressed the same
concerns I have focused on; the punctuation and the question which has
become immortal "Is VB dead?" and that goes right back to the beginning;
fear and uncertainty which are pyschological factors which affect all
decision making processes.

Of a group up to a dozen and a half or so VB developers I associated with at
the time not one ever said a word about compilers or any other such concern.
It was always first and foremost about curly braces, semi-colons, case and
so on; the punctuation unique to C# and the fear that they would have to
change what they had become comfortable with because nobody at the time
really knew the answer to what has become an immortal question "Is VB dead?"

Its also amusing to look back and remember how several were very concerned
about learning another new language that puzzled them. It was called HTML
:)
 
C

cody

comments inline
foo = Bar(1)

what is Bar? Property? Array? Method? You don't know.

Indeed very funny. Maybe it makes reading sourcecode harder. But it
abstracts the code in a certain. You can change Bar() from an array to a
property or method which returns a collection without needing to change
the client code, syntax stays the same :)
Another killer: say you have a C# library which defines an enum:
public enum EntityState
{
New,
Fetched,
Deleted,
OutOfSync
}

Now, in your VB.NET code you want to do this:
myEntity.Fields.State = EntityState.New

This won't compile, as 'new' has to be surrounded by '[]'. THis is
stupid, as the compiler already knows it's an enum and it's an enum
value.

Maybe you can call, like it is in C#, the parameterless constructor on
every value type including enums to create its default value (which is
always 0). Then it would make sense.
There are more elements in VB.NET which are ambiguous, most of them
stem from the fact that they use () for practically everything, which
makes code pretty confusing to read.


You're funny :)

Tried google already? :) Haskell, Linq... ring a bell? ;)

Then maybe VB.NET will be a lot more *functional* in future (pun intended)
 
J

Jon Skeet [C# MVP]

clintonG said:
I've continued primarily because you're making a mountain out of a mole hill
and not accepting the simple and relevant truth of what I've been saying all
along; people care about the syntax and grammar of a language and one of the
most contentious issues for those wanting to know "which language should I
learn?" or the immortal question "is VB dead?" are all uniquely relevant to
the readability of the C-like language features expressed by punctuation.

So why keep hiding a truth (that C#, Java and JavaScript all have
similar style) behind a falsehood (that the syntax is exactly the same,
and that by learning one of them you've learned all of them)?

Your point isn't improved by making wildly untrue claims - it's
diminished.
 
C

clintonG

So why keep hiding a truth (that C#, Java and JavaScript all have
similar style) behind a falsehood (that the syntax is exactly the same,
and that by learning one of them you've learned all of them)?

Your point isn't improved by making wildly untrue claims - it's
diminished.

I've already conceded I was using misleading terminology and now use as
correct terminology as possible that being he term "punctuation." I'll
continue advocating adopting C# for the pragmatic reasons I've noted and
nobody except anally retentive nitpickers have ever had a problem
understanding what I've tried to convey regardles of the incorrect use of
the term syntax when I should have been using the term punctuation. It seems
the notion of loosely-coupled applied to English syntax and grammar as well
as it does to a programming language.

If you want to follow me around and start pontificating about all the
vagaries fine with me but you need to back off a bit and take the
responsibility of doing all of the needless writing and explaining yourself.

<%= Clinton
 
K

Kevin Spencer

I don't think VB is dead, nor do I think it ever will be. I don't use it
myself, but I don't have a complete Snap-On tool set for working on my car.
I don't want to work on my car; I just want to drive it. So, I have a jack,
some few wrenches, and a few other necessities that will help me get where
I'm going in a pinch. I find working on cars boring, but some people find it
fascinating. I do find working on software fascinating, however, and I try
to keep up with the latest software technology, as well as having a regular
Snap-On tool set for developing software.

What I'm driving at with this analogy is that there are levels to just about
any technological task you can name, and requirements for people to work at
all of those levels, not just at the extremely technical end. The tools used
by the different people at different levels are by design differently made,
and differently used.

There's a nice Wikipedia article on the BASIC language and its
history/evolution. One of the most salient points about the language is its
name, which is an acronym for "Beginner's All-purpose Symbolic Instruction
Code." It was developed at a timer when computers and operating systems were
becoming a lot more powerful, and the programming languages were all quite
technical. However, there was emerging a level of need for those who didn't
want to or could not delve too deeply into the technology, and who could be
accomodated by a higher-level, less-technical syntax, which could not do as
much on a technical level, but could accomplish much on a less-technical
level.

It became exremely popular when it was discovered by business people that
they could fairly easy write macros and small programs that could automate
tasks without having to spend an arm and a leg for a deeply-technical
programmer. And all of this was a good thing.

Of course, as time went by, consumer demand for more and more power in
computing led to the extension of the language, first into Visual Basic, and
ultimately to VB.Net. However, it eventually became clear that many of the
less-technical people using the language were losing their way in the
increasing complexity that arose from such power. It seems to me that the
original intent of the BASIC language was beginning to be overlooked.

I think that what we're seeing now is an adjustment period, a gradual
recognition that simpler tools are still needed, that it is too expensive to
hire deeply-technical people to write macros for business applications, and
that there is some confusion as a result of the consumer-driven acquisition
of greater programming power for tools that were originally intended for
consumers, not for technicians. It is not always a good idea to give people
everything they ask for. In my experience, the typical computer user has
little or no idea what computers can do, nor what it takes to make them do
it. In other words, consumer expectation in general widely exceeds reality.

But this does not mean that VB does not have a place, if it can find it
again where it was originally intended to be. The need for low-to-mid-level
development at a low-to-mid-level cost is still around, perhaps more than
ever. I think that Microsoft is realizing this, and making certain
adjustments; hence, we see less VB in the more technical documentation that
is released by Microsoft. In the meantime, they continue to work on creating
tools that straddle the line between ease of use and power.

All that any of us can do individually is to find out the level at which
they feel comfortable, to be completely honest with one's self, without any
characterization or arbitrary evaluation. Everyone is good at some things,
and poor at others. Everyone has a niche in this world, and the happiest of
us are those who find their niche. We are not all rocket scientists, we are
not all beauty queens, and the rocket scientists are usually the least
likely to be beauty queens (and vice versa). I will never have the figure of
Charles Atlas, but on the other hand, I don't particularly want one.

I think we're all Bozos on this Bus.

--
HTH,

Kevin Spencer
Microsoft MVP

DSI PrintManager, Miradyne Component Libraries:
http://www.miradyne.net
 
J

Jon Skeet [C# MVP]

clintonG said:
I've already conceded I was using misleading terminology and now use as
correct terminology as possible that being he term "punctuation."

But even that's still wrong, if you say that C# and Java use exactly
the same punctuation. At least, they often use the same symbols for
completely different purposes, as I've explained already.
I'll continue advocating adopting C# for the pragmatic reasons I've noted and
nobody except anally retentive nitpickers have ever had a problem
understanding what I've tried to convey regardles of the incorrect use of
the term syntax when I should have been using the term punctuation. It seems
the notion of loosely-coupled applied to English syntax and grammar as well
as it does to a programming language.

Do you really think it's nitpicking to point out that you *don't* get
"three languages for the price of one" when you learn *one* of C#, Java
or JavaScript? You give the impression that once you've learned one,
you can write in all the others.

That is simply misleading - not in a "well, there are details" kind of
way, but in a "that's completely wrong" kind of way. It's like saying
that just because French and German use largely the same alphabet, that
once you know one you know the other.
If you want to follow me around and start pontificating about all the
vagaries fine with me but you need to back off a bit and take the
responsibility of doing all of the needless writing and explaining
yourself.

I'm not "following you around". I'm posting on a group that I've always
posted on... and I don't feel the need to "back off" from correcting
your incorrect statements.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top