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

C

Cor Ligthert [MVP]

Jon,
I'm sure that depends on how much it's measured. If you're counting
"people who've used VB" that may well be true, as it's often used by
people who *aren't* professional developers, who just need to scratch
an itch.

How do you count the enormous amount of people who make only Cxx snippets as
additions to games?
snip

(I suspect it also depends on whether you include HTML as a "computer
language :)

If you call SQL a program language, than HTML is it in my opinion as well.
It both are expressions or descripting languages. That probably you and for
sure me have another feeling about that, does not mean that they are not.

Cor
 
G

Guest

I am a C# developer since 2001 (Beta 1).
I think C# is more "dotnetized" than VB.NET. Having done project in
different areas - from daily data gathering applications, databases to
something like using serial-port for an assynchronous communication with an
industerial device - proves me that C# fits dot net better than all of other
ones.
I do not have real usful experiences with VB.NET. Only some little projects
and some migrations to C# (and so for J#).
 
J

jeremiah johnson

Cor said:
If you call SQL a program language, than HTML is it in my opinion as well.

If you think that SQL isn't a structured language, then I'm betting that
you've never seen an SQL query that was over 1k in size. I've seen SQL
queries that have been optimized down to 15 kilobytes in size.

SQL a language.

HTML is a markup language, not a programming language.
SQL is a query language, not a programming language.
 
H

Herfried K. Wagner [MVP]

jeremiah johnson said:
If you think that SQL isn't a structured language, then I'm betting that
you've never seen an SQL query that was over 1k in size. I've seen SQL
queries that have been optimized down to 15 kilobytes in size.

SQL a language.

HTML is a markup language, not a programming language.
SQL is a query language, not a programming language.

This depends on how you define programming language. SQL has a control
flow, instructions, etc., and thus is often considered a programming
language. HTML is very declarative and there is no control flow. Some
people might argue that a HTML document is still a set of instructions.
However, when doing so, the question arises if the BMP format is a
programming language too, because Bitmaps can be interpreted as both, a set
of data, and a set of instructions which tell the computer how to draw the
picture onto the screen.
 
H

Herfried K. Wagner [MVP]

Kaveh Shahbazian said:
I am a C# developer since 2001 (Beta 1).
I think C# is more "dotnetized" than VB.NET. Having done project in
different areas - from daily data gathering applications, databases to
something like using serial-port for an assynchronous communication with
an
industerial device - proves me that C# fits dot net better than all of
other
ones.

Well, I have to disagree. VB.NET is at least as .NETized as C#. Many
samples can be found for both, VB.NET and C#, which demonstrate that one
language is more .NETized than the other. VB.NET makes it easier to write
code which complies to the CLS than C# does. However, does it make VB.NET
more .NETized than C#? I think the whole discussion about .NETizedness
doesn't make much sense at all.
I do not have real usful experiences with VB.NET. Only some little
projects
and some migrations to C# (and so for J#).

I suggest to collect some experience with VB.NET.
 
C

Cor Ligthert [MVP]

Jeremiah,

??
HTML is a markup language, not a programming language.
SQL is a query language, not a programming language.

(Although SQL is original made as a Query language, does in my opinion now
more than alone queries, therefore I used expression).

Cor
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
How do you count the enormous amount of people who make only Cxx
snippets as additions to games?

I'm not sure what you mean - do you mean patches/cracks? If so, I don't
think there are *that* many people
If you call SQL a program language, than HTML is it in my opinion as well.

I wouldn't call HTML a programming language (although I would say that
SQL is - or rather, T-SQL, PL/SQL etc), but HTML *is* a computer
language IMO. They're not the same thing.
 
J

Jon Skeet [C# MVP]

Well, I have to disagree. VB.NET is at least as .NETized as C#.

I agree with the previous poster - and it's perfectly natural that C#
is more "dotnetized" as it was designed *specifically* for .NET.

VB.NET, however, has several "features" which I suspect wouldn't be
there if they weren't there for backward compatibility - in other
words, it has a large legacy to support. Hence all the functions...
 
C

Cor Ligthert [MVP]

Jon,
I'm not sure what you mean - do you mean patches/cracks? If so, I don't
think there are *that* many people
Did you ever play online games as Unreal, Quake or seen somebody busy with
Sims or whatever.

You probably would change your opinion than, the come with complete packs to
build 3D parts. This started by Duke Nukem 3D as far as I remember me.

There is an endless amount of these maps, build with languages very close or
complete the same as Cxx languages.

To give you one examle
http://www.unrealtournament.com/ut2003/maps.php
I wouldn't call HTML a programming language (although I would say that
SQL is - or rather, T-SQL, PL/SQL etc), but HTML *is* a computer
language IMO. They're not the same thing.

For me a programming language builds a DLL an EXE or whatever, but is not
direct processed. However that can be a personal idea about that.

For myself I don't call HTML a language, however it needs a very good
knowledge in what sequence the document tags have to be placed and what are
the attributes (properties) of those and where/how those can be used.

However, I think that this is very subjective.

Cor
 
C

Cor Ligthert [MVP]

Jon,
I agree with the previous poster - and it's perfectly natural that C#
is more "dotnetized" as it was designed *specifically* for .NET.
If that was true than they could have done it better and would not have used
that enormous bunch of legacy C code that is now in C#.

In my opinion are the Net program languages designed with developers (users)
in mind.

Just my opinion.

Cor
 
H

Herfried K. Wagner [MVP]

Jon Skeet said:
I agree with the previous poster - and it's perfectly natural that C#
is more "dotnetized" as it was designed *specifically* for .NET.

VB.NET has been designed *specifically* for .NET too. Remember the huge
discussion about VB.NET vs. a real VB7? Compatibility to VB6 obviously had
not been one of the goals of VB.NET's language designers.
VB.NET, however, has several "features" which I suspect wouldn't be
there if they weren't there for backward compatibility - in other
words, it has a large legacy to support. Hence all the functions...

Nobody is forced to use these functions. C# suffers from legacy syntax like
'switch', which has been taken from C and then "fixed" with ugly hacks,
distinction of identifiers' names only by their case, which stands against
the rules of the CLS and can be considered a feature copied over from C for
reasons of legacy support too, ...
 
K

Kevin Spencer

SQL, any flavor of it, is indeed a programming language. There are 3
specific features that all programming languages share in common:

1. Sequence
2. Selection
3.Iteration

SQL has all of these, and in fact, is compiled. SQL is a set of instruction
code that is specifically tailored for databases.

HTML, on the other hand, contains no instruction code whatsoever. Neither is
it compiled. It is a *markup* language that contains text *specifications*
(daata) used *by* applications for the purpose of displaying the HTML. There
is no sequence, selection, *or* iteration in HTML. It requires a programming
language such as JavaScript to manipulate HTML elements. And in fact,
neither JavaScript nor CSS actually manipulate HTML elements. They
manipulate objects in the logical Document Object Model which is created by
the application that reads the HTML. The HTML itself remains unchanged.

It might better be argued that XML *can be* a programming language, in the
form of XSLT, XAML, and other extensions of XML that contain processing
instructions, sequence, selection, and iteration. On the other hand, XSD is
not a programming language, as it is simply a set of definitions in a
schema. The difference between a programming language and a markup language
is that a programming language contains *process and data*, while a markup
language contains *only* data.

In other words, words mean things. Words are what distinguishes one idea
from another. They identify ideas. Once the meaning of a word is twisted
beyond definition, there is no meaning left. Black becomes White; One
becomes Zero; Right becomes Wrong. And none of these words mean anything at
all.

Pretzel Logic is not logic at all. It is simply rhetoric. It is truly sad
when the rhetorician falls for his own rhetoric, particularly when that
person makes a living as a programmer. Such a person would be better suited
as a politician or a salesperson. A computer will never be convinced that 1
== 0.

--
HTH,

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

Jon Skeet [C# MVP]

If that was true than they could have done it better and would not have used
that enormous bunch of legacy C code that is now in C#.

There are no legacy C functions in C#. It uses C syntax, but I don't
see that as a legacy issue aside from a couple of specific places (in
particular, the switch statement). The rest is there because people
like it, not because they're trying to use C code as C# code.
In my opinion are the Net program languages designed with developers (users)
in mind.

Absolutely - we just disagree about what exactly that means, I suspect.
 
M

m.posseth

Hmmm


HTML

Hyper Text Markup Language

do i need to say more ???

well i guess that someone called it a language ,,,,,, however a programming
language ??? i guess this is a mather of personall taste

about SQL

Well i wrote myself Transact SQL that had so manny logic that it could
replace a externall business logic component so :) i guess that if it is
capable of that , that you could call it a programming language


Regrds


Michel Posseth [MCP]





Kevin Spencer said:
SQL, any flavor of it, is indeed a programming language. There are 3
specific features that all programming languages share in common:

1. Sequence
2. Selection
3.Iteration

SQL has all of these, and in fact, is compiled. SQL is a set of
instruction code that is specifically tailored for databases.

HTML, on the other hand, contains no instruction code whatsoever. Neither
is it compiled. It is a *markup* language that contains text
*specifications* (daata) used *by* applications for the purpose of
displaying the HTML. There is no sequence, selection, *or* iteration in
HTML. It requires a programming language such as JavaScript to manipulate
HTML elements. And in fact, neither JavaScript nor CSS actually manipulate
HTML elements. They manipulate objects in the logical Document Object
Model which is created by the application that reads the HTML. The HTML
itself remains unchanged.

It might better be argued that XML *can be* a programming language, in the
form of XSLT, XAML, and other extensions of XML that contain processing
instructions, sequence, selection, and iteration. On the other hand, XSD
is not a programming language, as it is simply a set of definitions in a
schema. The difference between a programming language and a markup
language is that a programming language contains *process and data*, while
a markup language contains *only* data.

In other words, words mean things. Words are what distinguishes one idea
from another. They identify ideas. Once the meaning of a word is twisted
beyond definition, there is no meaning left. Black becomes White; One
becomes Zero; Right becomes Wrong. And none of these words mean anything
at all.

Pretzel Logic is not logic at all. It is simply rhetoric. It is truly sad
when the rhetorician falls for his own rhetoric, particularly when that
person makes a living as a programmer. Such a person would be better
suited as a politician or a salesperson. A computer will never be
convinced that 1 == 0.

--
HTH,

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

Jon Skeet [C# MVP]

Herfried K. Wagner said:
VB.NET has been designed *specifically* for .NET too. Remember the huge
discussion about VB.NET vs. a real VB7? Compatibility to VB6 obviously had
not been one of the goals of VB.NET's language designers.

I would say it was a goal - just not one which was as high up the
agenda as might have been desirable.

Do you believe that if they'd designed the language from scratch with
*no* reference to VB6, there'd have been quite so many similarities?
Nobody is forced to use these functions.

No, but they're there. They're part of the language, and you really
need to know they're there if you want to read VB.NET code, because
even if you choose not to use it, other people will.
C# suffers from legacy syntax like
'switch', which has been taken from C and then "fixed" with ugly hacks,

Duly acknowledged in many places. The switch statement was one of the
C# design team's worst moments, IMO.
distinction of identifiers' names only by their case, which stands against
the rules of the CLS

Only for public/protected members, I believe - and if you want to be
CLS-compliant, you can always include the appropriate attribute and get
warnings or errors if you do the wrong thing. It's about as hard to do
as, say, turning option strict on...
and can be considered a feature copied over from C for
reasons of legacy support too, ...

No - because there's no legacy support. There's no C to C# conversion;
no-one (in their right mind, anyway) tries to directly convert C code
to C# code, because they're idiomatically so different. A lot of the
syntax is the same, but a lot is different too. (Heck, where exactly
are class declarations in C anyway?)
 
J

Jon Skeet [C# MVP]

Did you ever play online games as Unreal, Quake or seen somebody busy with
Sims or whatever.

You probably would change your opinion than, the come with complete packs to
build 3D parts. This started by Duke Nukem 3D as far as I remember me.

There is an endless amount of these maps, build with languages very close or
complete the same as Cxx languages.

To give you one examle
http://www.unrealtournament.com/ut2003/maps.php

Ah, mods. I still believe there are far fewer people doing that than
have been using VBA/VB professionally just occasionally.
For me a programming language builds a DLL an EXE or whatever, but is not
direct processed. However that can be a personal idea about that.

That would discount things like Ruby and Perl. I think you're pretty
much on your own if you only count compiled languages as programming
languages.
For myself I don't call HTML a language

What do you think the "L" stands for?
 
J

Jon Skeet [C# MVP]

Kevin Spencer said:
SQL, any flavor of it, is indeed a programming language. There are 3
specific features that all programming languages share in common:

1. Sequence
2. Selection
3.Iteration

Do standardised SQL include "IF" etc? I thought the DML parts of
standardised SQL were only select/insert/delete/update. I could well be
very far off base there - I've rarely had to distinguish between
standard SQL and whatever dialect I'm using at the time.
SQL has all of these, and in fact, is compiled. SQL is a set of instruction
code that is specifically tailored for databases.

HTML, on the other hand, contains no instruction code whatsoever. Neither is
it compiled. It is a *markup* language that contains text *specifications*
(daata) used *by* applications for the purpose of displaying the HTML. There
is no sequence, selection, *or* iteration in HTML. It requires a programming
language such as JavaScript to manipulate HTML elements. And in fact,
neither JavaScript nor CSS actually manipulate HTML elements. They
manipulate objects in the logical Document Object Model which is created by
the application that reads the HTML. The HTML itself remains unchanged.

Absolutely. And that's why I didn't try to argue that it's a
programming language. It's a language which is almost solely used on
computers, however, which is why I think it's reasonable to call it a
"computer language".

Pretzel Logic is not logic at all. It is simply rhetoric. It is truly sad
when the rhetorician falls for his own rhetoric, particularly when that
person makes a living as a programmer. Such a person would be better suited
as a politician or a salesperson. A computer will never be convinced that 1
== 0.

I'm not sure whether or not I'm the target here, but please don't think
I believe that HTML is a programming language. I haven't said that, and
I wouldn't. Maybe you were aiming at Cor instead though, in which case
this is mostly a wasted post :)
 
K

Kevin Spencer

I'm not sure whether or not I'm the target here, but please don't think
I believe that HTML is a programming language.

Oh no, Jon. I was agreeing with you! Backing you up. Sorry if you
misunderstood.
Do standardised SQL include "IF" etc? I thought the DML parts of
standardised SQL were only select/insert/delete/update. I could well be
very far off base there - I've rarely had to distinguish between
standard SQL and whatever dialect I'm using at the time.

Yes, in fact. I co-authored a book about it several years ago, and have done
quite a bit of database application work in the past (still do, from time to
time, but am rather over it). The ISO standard includes if statements, case
statements, and looping statements. It's come a long way since all it did
was fetch cursors.
I wouldn't. Maybe you were aiming at Cor instead though, in which case
this is mostly a wasted post :)

It seemed wise to back you up rather than to argue directly with any
individual. As to what is a waste, well, this is a public newsgroup. I tend
to offer information for anyone that may be happening to read a thread. You
never know when seeds of knowledge will find purchase.

:)

--
HTH,

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

Herfried K. Wagner [MVP]

Jon,

Jon Skeet said:
I would say it was a goal - just not one which was as high up the
agenda as might have been desirable.

VB.NET has been marketed as VB6' successor, but from a technical point of
view I don't see many similarities. Behavior of the language's syntax has
been altered in many occasions, thus I believe that it has not been one of
the main goals when designing the language. "Micrsosoft.VisualBasic.dll" is
a nice add-on which makes using VB.NET easier for VB6 programmers. However,
"Microsoft.VisualBasic.dll" is a managed library, and from a technical
standpoint there are no reasons for avoiding its use.
Do you believe that if they'd designed the language from scratch with
*no* reference to VB6, there'd have been quite so many similarities?

No, I do not believe that. But to you believe they had designed the C#
language from scratch with *no* reference to C/C++ and Java, there would
have been quite so many similarities? It's petty clear that Microsoft
didn't attempt to reinvent the wheel. It's hard to position a new
programming language on the market if nobody is familiar with its syntax.
No, but they're there. They're part of the language

No, they are part of a library. They are not part of the language. It's
not guaranteed that all implementations of the language provide this
library. Some of the methods of the library are not avalilable on
handhelds, etc. So they are clearly an add-on.
and you really need to know they're there if you want to read
VB.NET code, because even if you choose not to use it, other people will.

The .NET Framework and .NET technology is the infrastructure programming
languages can be built on. The 'using' statement, for example, is simply a
wrapper around a method call and error handling code. Some .NET programming
languages do not provide an equivalent keyword as part of their syntax. So,
people using another .NET programming language will have problems to
understand C# or VB.NET code too.
No - because there's no legacy support. There's no C to C# conversion;
no-one (in their right mind, anyway)

Well, there is a Java to C# conversion wizard available. Maybe they didn't
copy C but copied Java instead... I don't think this argument makes much
sense.
 
C

Charlie Tame

May I add my 2c here since I am a total newcomer but recognize talent when I
see it :)

Bearing in mind your comments and leaving them for others to read I will add
my observations below.

Herfried K. Wagner said:
Jon,



VB.NET has been marketed as VB6' successor, but from a technical point of
view I don't see many similarities. Behavior of the language's syntax has
been altered in many occasions, thus I believe that it has not been one of
the main goals when designing the language. "Micrsosoft.VisualBasic.dll"
is a nice add-on which makes using VB.NET easier for VB6 programmers.
However, "Microsoft.VisualBasic.dll" is a managed library, and from a
technical standpoint there are no reasons for avoiding its use.


No, I do not believe that. But to you believe they had designed the C#
language from scratch with *no* reference to C/C++ and Java, there would
have been quite so many similarities? It's petty clear that Microsoft
didn't attempt to reinvent the wheel. It's hard to position a new
programming language on the market if nobody is familiar with its syntax.


No, they are part of a library. They are not part of the language. It's
not guaranteed that all implementations of the language provide this
library. Some of the methods of the library are not avalilable on
handhelds, etc. So they are clearly an add-on.


The .NET Framework and .NET technology is the infrastructure programming
languages can be built on. The 'using' statement, for example, is simply
a wrapper around a method call and error handling code. Some .NET
programming languages do not provide an equivalent keyword as part of
their syntax. So, people using another .NET programming language will
have problems to understand C# or VB.NET code too.


Well, there is a Java to C# conversion wizard available. Maybe they
didn't copy C but copied Java instead... I don't think this argument
makes much sense.

1. the NET framework is associated with various misconceptions ranging from
Bill Gates wanting to take over the world to problems with the MS Passport.
I don't think it is recognized as a virtual machine in the same way that
Java is yet by most of the public users, it is seen as some kind of network
related system that's not really connected with local software. Unfortunate
naming perhaps, but since programs written using it require a download I
think it will suffer delays in real widespread usage. I know quite a few who
decline the NET framework updates offered because they don't want more
invasive MS stuff. Yes I am serious, that is what I see.

2. I have written a couple of apps in C#, more educational then useful
although one I'm quite pleased with, but having taken these apps to work to
try on various machines and combinations I am finding various "Can't
install" problems that would discourage me from asking others to test them.
Of course this was done using a beta but I hope MS can bring things together
so that when real live applications hit the streets they will not cause the
less knowledgeable user to have too much trouble, this is bad for the
reputation.

3. I'm finding the C# language a bit easier than C++ but as a complete
novice I am not sure how much is due to the IDE and how much is actually
easier. I do wonder how it will get used though if it proves to be
problematic for users since people tend to err on the side of unfavorable
comparisons against something they are used to.

Anyway, my 2c, the original question was interesting.

Charlie
 

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