C# v VB.NET - any research on usage?

C

Cor Ligthert [MVP]

Charlie,
I think that if MS are trying to get NET implemented it needs to be
reliable and easily distributed to end users. It doesn't need to be a
series of false starts where the end user's install package tells him he
needs something different on each machine he installs it on. I don't think
developers will sell their products as easily.
I can be confused, however this is in my opinion exactly one of the goals
Net is designed for.

However, there is a route to go, yo can not go direct from all traffic done
by horses to traffic done all by automobiles.

The Net managed languages create all the same code, which is can be used on
the framework it belongs to.

You can it see as a minor that there is an upgrade needed from Net 1.0 to
Net 2.0 if there are major improvements. However that is in fact the same as
that after Dos 1.0 there came 1.1 just to use the harddisk in a better way,
before that time there was not thought about a harddisk.

Where I find it probably like you strange that Server 2003 uses another Net
framework than is used on all modern Microsoft workstations operating
systems. However Rome was as well not build in one day.

Just my opinion.

Cor
 
K

Kevin Spencer

The .Net Framework installs without any issues. It doesn't even require a
reboot. Perhaps you are thinking of the SDK.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
A watched clock never boils.
 
H

Herfried K. Wagner [MVP]

Kevin Spencer said:
The .Net Framework installs without any issues. It doesn't even require a
reboot. Perhaps you are thinking of the SDK.

The problem I can think of is that users do not understand what the
advantages of the .NET Framework are and thus see no reasons to install it
on their machines. IMO it should be completely transparent to the user that
an application requires the .NET Framework. But when distributing
applications over the internet it's hard to make it transparent because
including the full .NET Framework package will significantly increase the
size of the installation package. People would not want to download 23 MB
only to run a little utility on their machines.
 
H

Herfried K. Wagner [MVP]

jeremiah johnson said:
My personal opinion is that when it was decided that a new platform was in
order, that a new language was in order as well. Anders(sp?) raised his
hand, said "I'll do it," and came up with C#. A home run, I believe.

I don't think so. I am sure that Microsoft researched how to make as many
as possible developers switch from non-MS development products to MS
products. One of the biggest competitors of Microsoft in the development
tools market was Sun Microsystems and the Java programming language and
framework. Thus it was pretty straightforward decision to create a
programming language which was similar to C# and focus marketing on this
language.

Classic VB developers, on the other hand, have already been Microsoft
customers. Thus it was not as important to market VB.NET and make media
aware of the existance of the language, and to spend as many resources in
development of VB.NET as on C#.
the VB people did not want to leave their armies of VB6 programmers
behind, so they created VB.NET in C#'s image (because it was so well
designed).

Personally, I do not think that C# is a well-designed language. But that's
not the point. From a technical POV VB.NET is not a successor of VB6.
Compatibility between VB6 and VB.NET was obviously not an important goal.
VB.NET was created so that the batallions of VB programmers out there
would not be left behind when .NET became the development platform of
choice for Windows.

The problem with this is that they left behind a large number of developers
and code assets (<URL:http://classicvb.org/petition/>).
 
J

jeremiah johnson

Kevin said:
You're joking I hope!

What about the other 18+ languages that have been developed for the .Net
Framework?

the only joke i'm speaking of is Visual Basic. (I've used it constantly
since version 2, but I'm stopping its use now that vs2005 and dotnet 2.0
are released.) I've always thought that 100% of the work I've done in
VB has been a waste of time, and if I could, I would trade back 100% of
the money I've earned programming in VB for the time I lost doing so in
a heartbeat.

The other languages developed for the dotnet framework do not apply to
my conversation.

My point is this:
Smalltalk & C begat C++.
C++ begat Java.
Java and C++ begat C#.
C# & Classic VB begat VB.NET.

C# is Java with everything I hate about Java removed.

VB.NET is C# with a different syntax tacked on; the design paradigms are
basically the same. VB.NET has some language features that C# does not
have, but they were added for legacy purposes: Classic VB programmers in
the world were used to those features.

I *do not* mean to anger any VB people here. You guys do seem to be a
touchy bunch, though.

This is my opinion, and I'm entitled to it. Just know that it is an
opinion based on years and years of experience, not just feelings or
prejudices.

And in regards to Classic VB: VB6 & its older brothers are going to see
something akin to what the Native Americans have seen over the years.
They're going to see themselves left behind because they failed to
progress as the rest of the world has. Before you curse my name, know
that I'm 1/8th Cherokee.

Jeremiah Johnson.
 
J

jeremiah johnson

Herfried said:
The problem I can think of is that users do not understand what the
advantages of the .NET Framework are and thus see no reasons to install
it on their machines.

Such will be the case with Windows Vista.

It is also the case on any network where the System Admin has any sense
at all.
 
K

Kevin Spencer

VB.NET is C# with a different syntax tacked on; the design paradigms are
basically the same. VB.NET has some language features that C# does not
have, but they were added for legacy purposes: Classic VB programmers in
the world were used to those features.

You're making a leap of assumption here. VB.Net resembles C# just as all 20
of the .Net languages resemble C#, not because it was developed from C#, but
because it was developed for the CLI. It is the CLI that determines what
languages can and cannot do, and how they do them.

All programming languages do similar things, and in fact, for the most part,
do exactly the same things, using differnt syntax. With the .Net platform,
there is a structure that languages must support. Each language uses its own
syntax to support that structure. The .Net CLR is not C#; it is MSIL. And
what you may be seeing as a resemblance to C# is the fact that both
languages employ the CLR, use the same classes, and call the same functions.
An "if" statement, by any other syntax, would select as sweet.
This is my opinion, and I'm entitled to it. Just know that it is an
opinion based on years and years of experience, not just feelings or
prejudices.

Whether or not one is *entitled* to an opinion is not relevant to anything
other than one's ego. It is the effect of being attached to opinions that
makes the difference in one's life, whether or not and to what degree one
will be successful. Over-attachment to opinions impedes one's ability to
gain knowledge, as knowledge is not based on opinion, but on fact. Success
is dependent largely upon knowledge, and slightly upon luck. Ergo, ego and
opinions are things not to be cherished or defended, but dangers to the
quest for knowledge, and should easily be abandoned when they impede that
quest.

At best, an opinion should be regarded as a working assumption, something
that may (or may not) be useful in absence of fact, or better data. It
should be held lightly, and regarded with suspicion.

Or, as my Uncle Chutney would say, "Opinions are like a**holes. Not only
does everybody have one, but they all stink. Only a dog would find one
interesting."

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
A watched clock never boils.
 
J

jeremiah johnson

Kevin said:
Or, as my Uncle Chutney would say, "Opinions are like a**holes. Not only
does everybody have one, but they all stink. Only a dog would find one
interesting."

well I'm certainly glad I didn't touch a nerve there. OF COURSE
everyone has an opinion! You do realize that everyone knows that, don't
you?

Yes, everyone's opinion stinks, but also, everyone LOVES their own
particular brand of stink. I don't see a lot of people leave a room in
which when they've just stated their own opinion.

If you're trying to insinuate that I've somehow e-farted in a crowded
room, then I should let you know that a lot of people I know agree with me.

Or, as Voltaire used to say, "A witty saying proves nothing."
 
K

Kevin Spencer

Yes, everyone's opinion stinks, but also, everyone LOVES their own
particular brand of stink.

That is an assumption based upon your limited experience. Personally, I find
my opinions embarassing, and try to avoid showing them in public, like my
a**hole. One cannot avoid having them, but they are best kept covered. It is
impossible to prevent one from slipping out from time to time, but like
farting, it is something which should be suppressed as much as possible,
unless one is in private. People who are truly dedicated to the quest for
truth and knowledge do not hold their own opinions in high esteem. They are
well aware of the sinister nature of opinions, and attachment to them.
If you're trying to insinuate that I've somehow e-farted in a crowded
room,
I wasn't trying to insinuate anything at all. I was speaking very clearly
and exactly. Everyone has opinions. Everyone expresses opinions. However,
opinions are not useful, except as I stated, as working assumptions in the
absence of fact or better data, and highly untrustworthy.
then I should let you know that a lot of people I know agree with me.

The fact that people agree with an opinion does not in any way enhance the
validity of such. In the 1800's, most people in the southern United States
agreed that slavery was a darned good idea. Most white people that is. There
are groups of radical Moslems today who agree that annihilating the nation
of Israel is a good idea. And of course, there were quite a few Germans in
the late 1930s with similar opinions.

Or, as Voltaire used to say "As long as people believe in absurdities they
will continue to commit atrocities."

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
A watched clock never boils.
 
J

Jon Skeet [C# MVP]

<snip most stuff>

I'm afraid I haven't got time at the moment to reply to everything in
here - and I suspect we're not going to agree anyway. (Blame
Civilization IV for my lack of time, by the way - I probably won't be
posting much for the next week or so!) However, I thought I'd fill in
this one bit:
I am not sure what you are talking about. It would be great if you could
provide some more details.

From the VB docs:

<quote>
The Visual Basic runtime and the .NET Framework evaluate Nothing
differently when it comes to strings. Consider the following example:

Dim MyString As String = "This is my string"
Dim stringLength As Integer
' Explicitly set the string to Nothing.
MyString = Nothing
' stringLength = 0
stringLength = Len(MyString)
' This line, however, causes an exception to be thrown.
stringLength = MyString.Length
The Visual Basic .NET runtime evaluates Nothing as an empty string;
that is, "". The .NET Framework, however, does not, and will throw an
exception whenever an attempt is made to perform a string operation on
Nothing.
</quote>

So in other words, VB.NET is effectively working "against" how the
framework itself wants to work (and how all other managed languages are
likely to work). I seem it remember that with strings,

If x = Nothing
gives a different answer from
If x Is Nothing

As I say, I'd call these "quirks" and I *suspect* (admittedly not
coming from a position of much knowledge of VB6) that it's for
compatibility reasons, *not* because that's because it's actually what
the team would have done if VB6 hadn't been a consideration.
 
J

Jon Skeet [C# MVP]

Kevin Spencer said:
What's your reasoning for that? I can't imagine anyone either thinking
that C# is a changed VB or believing that other people would. It's
*much* more likely that they'll think C# is a derivative of Java, which
it basically is...

Now, I wouldn't say that, any more than I would say that the .Net platform
is a derivative of the J2EE platform.

From my observations, Microsoft has been using some of the syntax (the dot
separator, for example) for quite some time now, and it really is a much
clearer syntax than the traditional C++ syntax. Furthermore, and this is
merely conjecture on my part, I can't help but notice that the '#' character
can be viewed as a combination of 2 "++" sequences, implying that C# is
"C++[++]". In the time-honored tradition of C's extensibility, I would
suppose that C# is intended as such, an extension of C++.

There are plenty of ways C# (and .NET itself) derives from Java -
things like immutable strings, the "lock on anything" (which is
unfortunate), the lock statement itself, the "no header file" style,
the manner of declaring member access (no blocks of access etc). It was
noticeable that no mention of Java was made in the early documents of
where the ideas for C# came from, despite it being blatantly obvious.

I suspect we may not have had .NET at all if it weren't for Java - and
Java's certainly improving due to .NET too. Competition's great :)
 
K

Kevin Spencer

Hi Jon,
I suspect we may not have had .NET at all if it weren't for Java - and
Java's certainly improving due to .NET too. Competition's great :)

Competition is indeed a good thing. However, saying that C# came from Java
is like saying that the .Net Framework came from J2EE. I believe that, in
designing the .Net Framework, and C#, Microsoft did one of the things they
do best. They looked at *all* of the existing programming technologies,
analyzed their strengths and weaknesses, thought of a number of enhancements
and improvements, took the best of all of it, and built new software. This
is, interestingly enough, also one of the things that made Rome such a
powerful empire - the ability to take existing technologies, borrow,
enhance, combine, and extend, and come up with something more powerful
overall than the rest.

For further evidence of this idea: I've heard it said that C# was derived
from Delphi as well. This of course, comes from Delphi developers. And after
all, the chief software architect at Microsoft, Anders Hejlsberg, was the
chief architect for the team at Borland that created Delphi.

So, my point is that C# most certainly *borrows* from Java, as it does from
Delphi and other great programming languages, but so did C borrow from
Pascal. This is different than saying it was *derived* from Java. It
actually excellently extends C in the best C tradition, IMHO.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Complex things are made up of
Lots of simple things.

Jon Skeet said:
Kevin Spencer said:
What's your reasoning for that? I can't imagine anyone either thinking
that C# is a changed VB or believing that other people would. It's
*much* more likely that they'll think C# is a derivative of Java, which
it basically is...

Now, I wouldn't say that, any more than I would say that the .Net
platform
is a derivative of the J2EE platform.

From my observations, Microsoft has been using some of the syntax (the
dot
separator, for example) for quite some time now, and it really is a much
clearer syntax than the traditional C++ syntax. Furthermore, and this is
merely conjecture on my part, I can't help but notice that the '#'
character
can be viewed as a combination of 2 "++" sequences, implying that C# is
"C++[++]". In the time-honored tradition of C's extensibility, I would
suppose that C# is intended as such, an extension of C++.

There are plenty of ways C# (and .NET itself) derives from Java -
things like immutable strings, the "lock on anything" (which is
unfortunate), the lock statement itself, the "no header file" style,
the manner of declaring member access (no blocks of access etc). It was
noticeable that no mention of Java was made in the early documents of
where the ideas for C# came from, despite it being blatantly obvious.

I suspect we may not have had .NET at all if it weren't for Java - and
Java's certainly improving due to .NET too. Competition's great :)
 

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