Connecting Tech Pros Worldwide Forums | Help | Site Map

Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)

Arjang
Guest
 
Posts: n/a
#1: Nov 21 '05
http://www.codeproject.com/useritems/CSharpVersusVB.asp



Earl
Guest
 
Posts: n/a
#2: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


While I agree with the central premise that the C# "culture" will always be
considered "better" than the VB.Net "culture", the writer of this article
makes leaps of logic that would cause any application he wrote to fail, and
further, goes down the slippery slope of making derogatory comparisons
between "classic" VB and C# rather than between VB.Net and C# (without even
acknowleding to himself that he did so!). Despite the apparent soundness of
his thesis, his logic is extremely faulty.


"Arjang" <ArjangATmailDOTcom@NotTheRealPart.zorg> wrote in message
news:uA9dRZOXFHA.3760@TK2MSFTNGP15.phx.gbl...[color=blue]
> http://www.codeproject.com/useritems/CSharpVersusVB.asp
>[/color]


Cor Ligthert
Guest
 
Posts: n/a
#3: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Arjang,

This paragraph in the article shows everything about its quality.
------------
80% of C# programmers are good, while 80% of VB programmers are not good.
This is not to say that everyone who programs in VB is less skilled than
everyone who programs in C#. This is to say that (a) the VB syntax and
semantics is designed to attract less skilled programmers and, in
combination with other factors examined above, this has created a culture
that is populated with less skilled programmers and (b) because VB syntax
and semantics make it more difficult to avoid common programming errors and
hence to program well
-------------.

Beside that the author is comparing Apples with computers, does he in the
rest of is article and his conclusion not take the impact of his sentence.

This sentence of him means that there are enormous much more good VB
programmers than that there are good C# programmers?

This article shows for me something as a person who is in doubt if he took
the right choose, however tries to proof the world that he did.

Cor


Larry Lard
Guest
 
Posts: n/a
#4: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)



Arjang wrote:[color=blue]
> http://www.codeproject.com/useritems/CSharpVersusVB.asp[/color]

Poor article: badly written, false in many places, many logical
fallacies (the 'appeal to authority' invocation of Wirth is almost a
canonical example), can't decide whether he is writing about VB6 or
VB.NET, and he doesn't even know when to use 'less' and when to use
'fewer'.

--
Larry Lard
Replies to group please

Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#5: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


"Arjang" <ArjangATmailDOTcom@NotTheRealPart.zorg> schrieb:[color=blue]
> http://www.codeproject.com/useritems/CSharpVersusVB.asp[/color]

I recently posted my comments on technical points laid out in the article in
German (for those who are able to understand German):

<URL:http://www.google.es/groups?selm=OqgqdipRFHA.2736%40TK2MSFTNGP09.phx.gb l>

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Robin Tucker
Guest
 
Posts: n/a
#6: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Yes, I have to admit to being interested with the first few paragraphs but
then thrust into the conclusions well before the arguments or logic merited
any.

Having said that, I have read quite a few articles recently that say a C#
programmer will generally get paid more than a VB.NET programmer. This does
my gnads in slightly, if only because I spent a while trying to persuade my
manager that I should write "this software" in C# as it is functionally the
same as VB.NET, but looks a little more like C++ ;). I failed and now call
myself a VB.NET programmer (as I had to learn one or the other in order to
code it). Should I regret this in the future? I suppose I should learn the
C# syntax - it can't be so difficult, apart from the annoying semi colons I
need at the end of each statement, but as I was previously a C and then C++
programmer, I can't really complain too much about this.

No, thinking about it, the fact that variables are not case sensitive and I
don't need semi colons at the end of statements are perhaps the two major
bonus points of VB.NET over C# ;)



"Arjang" <ArjangATmailDOTcom@NotTheRealPart.zorg> wrote in message
news:uA9dRZOXFHA.3760@TK2MSFTNGP15.phx.gbl...[color=blue]
> http://www.codeproject.com/useritems/CSharpVersusVB.asp
>[/color]


Cor Ligthert
Guest
 
Posts: n/a
#7: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Herfried,

The first sentence was in my opinion enough.

Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
basierenden, ebenso inrichtigen Implikationen. Ich habe mir die Mühe
gemacht, die Punkte aus dem Abschnitt "Propagation of Culture in .NET"
genauer anzusehen und zu kommentieren:

:-)

Cor


Robin Tucker
Guest
 
Posts: n/a
#8: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Someone please translate ;)

"Cor Ligthert" <notmyfirstname@planet.nl> wrote in message
news:uHEa7VTXFHA.3716@TK2MSFTNGP12.phx.gbl...[color=blue]
> Herfried,
>
> The first sentence was in my opinion enough.
>
> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
> basierenden, ebenso inrichtigen Implikationen. Ich habe mir die Mühe
> gemacht, die Punkte aus dem Abschnitt "Propagation of Culture in .NET"
> genauer anzusehen und zu kommentieren:
>
> :-)
>
> Cor
>
>[/color]


Cor Ligthert
Guest
 
Posts: n/a
#9: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Robin,

In my opinion is there only one big benefit from VBNet above C#, which is
the in my opinion superior IDE from VBNet.

Don't be afraid to start with C# when you know the classes from Net than it
is a piece of cake. You will however be astonished when you have done VBNet
how primitive the IDE from C# is.

Cor


Cor Ligthert
Guest
 
Posts: n/a
#10: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Robin,

With the change to get comments from two language sides.
[color=blue][color=green]
>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
>> basierenden, ebenso inrichtigen Implikationen.[/color][/color]

The article is lard by m.E. with not realistic bias and gives therefore the
same results.
[color=blue][color=green]
>>Ich habe mir die Mühe
>> gemacht, die Punkte aus dem Abschnitt "Propagation of Culture in .NET"
>> genauer anzusehen und zu kommentieren:
>>[/color][/color]

I have taken the effort, the points from the part "Propagation of Culture in
..NET" better to investigate and to comment.

Just a try

:-)

Cor


Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#11: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Cor,

"Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=blue][color=green][color=darkred]
>>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
>>> basierenden, ebenso inrichtigen Implikationen.[/color][/color]
>
> The article is lard by m.E. with not realistic bias and gives therefore
> the same results.[/color]

"m.E." = "IMO".

;-)

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Roger
Guest
 
Posts: n/a
#12: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


> In my opinion is there only one big benefit from VBNet above C#, which is[color=blue]
> the in my opinion superior IDE from VBNet.[/color]

Yes, it formats and aligns the code. Very good.
Roger


jcastro
Guest
 
Posts: n/a
#13: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)




"Roger" <roger@pcsrevenuecontrol.com> wrote in message
news:e0vd2iXXFHA.1356@TK2MSFTNGP10.phx.gbl...[color=blue][color=green]
>> In my opinion is there only one big benefit from VBNet above C#, which is
>> the in my opinion superior IDE from VBNet.[/color]
>
> Yes, it formats and aligns the code. Very good.
> Roger
>[/color]

The "main" difference into VB.net and C# is to in C# you need to press
ctrl+space ;-)



Robin Tucker
Guest
 
Posts: n/a
#14: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


well, thats a pain in the ass isn't it? wtf should I have to do that????


"jcastro" <eng3d(arroba)softhome.net> wrote in message
news:eANDtBZXFHA.2288@TK2MSFTNGP14.phx.gbl...[color=blue]
>
>
> "Roger" <roger@pcsrevenuecontrol.com> wrote in message
> news:e0vd2iXXFHA.1356@TK2MSFTNGP10.phx.gbl...[color=green][color=darkred]
>>> In my opinion is there only one big benefit from VBNet above C#, which
>>> is
>>> the in my opinion superior IDE from VBNet.[/color]
>>
>> Yes, it formats and aligns the code. Very good.
>> Roger
>>[/color]
>
> The "main" difference into VB.net and C# is to in C# you need to press
> ctrl+space ;-)
>
>
>[/color]


Aaron Smith
Guest
 
Posts: n/a
#15: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Cor,

Is the lack of IDE features for C# the same in the VS 2005 Beta 2?

Aaron

Cor Ligthert wrote:[color=blue]
> Robin,
>
> In my opinion is there only one big benefit from VBNet above C#, which is
> the in my opinion superior IDE from VBNet.
>
> Don't be afraid to start with C# when you know the classes from Net than it
> is a piece of cake. You will however be astonished when you have done VBNet
> how primitive the IDE from C# is.
>
> Cor
>
>[/color]


--
---
Aaron Smith
Remove -1- to E-Mail me. Spam Sucks.
Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#16: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


"Aaron Smith" <thespirit-1-@smithcentral.net> schrieb:[color=blue]
> Is the lack of IDE features for C# the same in the VS 2005 Beta 2?[/color]

The IDE support for C# (except the lack of a background-compiler for C#) is
AFAIS better than the support for VB in VS 2005 :-(((.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Cor Ligthert
Guest
 
Posts: n/a
#17: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Herfried,[color=blue]
>
> The IDE support for C# (except the lack of a background-compiler for C#)
> is AFAIS better than the support for VB in VS 2005 :-(((.
>[/color]
I find the main point of VBNet, the backgroundcompiler, which include for me
as well autocomplete. What are the new benefits from the IDE from C# that
outclasses VBNet.

Cor


Aaron Smith
Guest
 
Posts: n/a
#18: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Herfried K. Wagner [MVP] wrote:[color=blue]
> "Aaron Smith" <thespirit-1-@smithcentral.net> schrieb:
>[color=green]
>> Is the lack of IDE features for C# the same in the VS 2005 Beta 2?[/color]
>
>
> The IDE support for C# (except the lack of a background-compiler for C#)
> is AFAIS better than the support for VB in VS 2005 :-(((.
>[/color]

I had heard a rumor that MS took a lot of time with VB in 2003, but they
were going to catch C# up in 2005. Maybe it wasn't a rumor after all? I
had just heard that a lot of the C# developers were a little mad that
they spent a lot more time refining VB than C#...

--
---
Aaron Smith
Remove -1- to E-Mail me. Spam Sucks.
Doug Taylor
Guest
 
Posts: n/a
#19: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


On Fri, 20 May 2005 12:47:54 +1000, "Arjang"
<ArjangATmailDOTcom@NotTheRealPart.zorg> wrote:
[color=blue]
>http://www.codeproject.com/useritems/CSharpVersusVB.asp
>[/color]
There are a few inaccuracy in the article as regards the history of
Borland Pascal, which it claims was the first commercially available
Pascal.

For the record USCD was available prior to Borland Pascal 3 and of
course Anders and Niels Kompass Pascal 1 and 2 predate Phillipe Kahn
persuading them to remarket the company as Borland (appearing to be
American rather than European) and selling the product cheaply, if I
remember correctly the UK price was £35 as compared to £250 for
version 2, with a restrictive license.

Doug Taylor
Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#20: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Cor,

"Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=blue][color=green]
>> The IDE support for C# (except the lack of a background-compiler for C#)
>> is AFAIS better than the support for VB in VS 2005 :-(((.[/color]
>
> I find the main point of VBNet, the backgroundcompiler, which include for
> me as well autocomplete. What are the new benefits from the IDE from C#
> that outclasses VBNet.[/color]

C# will have much better IntelliSense, more syntax-highlighting and code
formatting options, SmartTags for inserting 'using', ...

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Robin Tucker
Guest
 
Posts: n/a
#21: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Will intellisense automatically stick a semi-colon at the end of a
statement? ;)

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:uC$27l7XFHA.2508@TK2MSFTNGP15.phx.gbl...[color=blue]
> Cor,
>
> "Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=green][color=darkred]
>>> The IDE support for C# (except the lack of a background-compiler for C#)
>>> is AFAIS better than the support for VB in VS 2005 :-(((.[/color]
>>
>> I find the main point of VBNet, the backgroundcompiler, which include for
>> me as well autocomplete. What are the new benefits from the IDE from C#
>> that outclasses VBNet.[/color]
>
> C# will have much better IntelliSense, more syntax-highlighting and code
> formatting options, SmartTags for inserting 'using', ...
>
> --
> M S Herfried K. Wagner
> M V P <URL:http://dotnet.mvps.org/>
> V B <URL:http://classicvb.org/petition/>[/color]


Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#22: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


"Robin Tucker" <idontwanttobespammedanymore@reallyidont.com> schrieb:[color=blue]
> Will intellisense automatically stick a semi-colon at the end of a
> statement? ;)[/color]

AFAIK no, but it will help you to type keywords, similar to how it's
currently available for parts of VB.NET's 'Declare' statement.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Cor Ligthert
Guest
 
Posts: n/a
#23: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Robin,

For me is not the adding of a semicolon, however inteligent keeping the
opening and clossing of paragraphs.

I like every day more that when I set an "if then" that there is than
automaticly created an end if. I see that with VBNet I even am nesting more
than I did in past.

I wished that in C# was that when I typed an "{" there was automatic an "}"
in place.

Cor


Michael C#
Guest
 
Posts: n/a
#24: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


If you want a blast from the past, how about Turbo Pascal 5.5?
http://community.borland.com/all/0,1435,museum|0|30,00.html

"Doug Taylor" <Doug.TaylorNTP@tayNOSPAMmade.demon.co.uk> wrote in message
news:0bo391tn8au53l43frqjluhqojaq5qisfq@4ax.com...[color=blue]
> On Fri, 20 May 2005 12:47:54 +1000, "Arjang"
> <ArjangATmailDOTcom@NotTheRealPart.zorg> wrote:
>[color=green]
>>http://www.codeproject.com/useritems/CSharpVersusVB.asp
>>[/color]
> There are a few inaccuracy in the article as regards the history of
> Borland Pascal, which it claims was the first commercially available
> Pascal.
>
> For the record USCD was available prior to Borland Pascal 3 and of
> course Anders and Niels Kompass Pascal 1 and 2 predate Phillipe Kahn
> persuading them to remarket the company as Borland (appearing to be
> American rather than European) and selling the product cheaply, if I
> remember correctly the UK price was £35 as compared to £250 for
> version 2, with a restrictive license.
>
> Doug Taylor[/color]


Robin Tucker
Guest
 
Posts: n/a
#25: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Yes, i have learned over time that nesting is generally bad for readability
and maintainability in any case. I try to unitise tests, even if it means
the same test might be repeated twice in a block - as a stupid noddy example
(note, I tend to do this when there are 2 or 3 or more nesting levels,
rather than this examples):


If aThing and not bThing Then
' Do thing 1
End If



If aThing Then
' Do thing 2
End If



rather than:


If aThing Then

If not bThing Then
' Do thing 1
End If

' Do thing 2

End If


"Cor Ligthert" <notmyfirstname@planet.nl> wrote in message
news:%23XYLkE8XFHA.796@TK2MSFTNGP09.phx.gbl...[color=blue]
> Robin,
>
> For me is not the adding of a semicolon, however inteligent keeping the
> opening and clossing of paragraphs.
>
> I like every day more that when I set an "if then" that there is than
> automaticly created an end if. I see that with VBNet I even am nesting
> more than I did in past.
>
> I wished that in C# was that when I typed an "{" there was automatic an
> "}" in place.
>
> Cor
>
>[/color]


Cor Ligthert
Guest
 
Posts: n/a
#26: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Robin,

In your sample is in my opinion not much need for nesting.

However, there are a lot of situations, where a good nested written program
is much more readable than those from people who have force themselves not
to use that.

However just my thought,

Cor



Doug Taylor
Guest
 
Posts: n/a
#27: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


On Tue, 24 May 2005 15:36:19 +0200, "Cor Ligthert"
<notmyfirstname@planet.nl> wrote:
[color=blue]
>Robin,
>
>In your sample is in my opinion not much need for nesting.
>
>However, there are a lot of situations, where a good nested written program
>is much more readable than those from people who have force themselves not
>to use that.
>
>However just my thought,
>
>Cor
>
>[/color]
I would agree with Cor, but it is a matter of personal preference, I
prefer nesting rather than having complicated if clauses, I find I'm
less likely to make mistakes that way. I find it easier to read my
intentions later and easier to comment the code.

Doug Taylor

Robin Tucker
Guest
 
Posts: n/a
#28: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)



Yes, it's better for reading intentions to use nesting. But changing the
intention may be more difficult. I think IF nesting complexity is a common
quality metric (although it all depends on the situation).



"Doug Taylor" <Doug.TaylorNTP@tayNOSPAMmade.demon.co.uk> wrote in message
news:u7d691dsdfg0ude4oco0ue11ls8u6n865d@4ax.com...[color=blue]
> On Tue, 24 May 2005 15:36:19 +0200, "Cor Ligthert"
> <notmyfirstname@planet.nl> wrote:
>[color=green]
>>Robin,
>>
>>In your sample is in my opinion not much need for nesting.
>>
>>However, there are a lot of situations, where a good nested written
>>program
>>is much more readable than those from people who have force themselves not
>>to use that.
>>
>>However just my thought,
>>
>>Cor
>>
>>[/color]
> I would agree with Cor, but it is a matter of personal preference, I
> prefer nesting rather than having complicated if clauses, I find I'm
> less likely to make mistakes that way. I find it easier to read my
> intentions later and easier to comment the code.
>
> Doug Taylor
>[/color]


Charles D. Quarles
Guest
 
Posts: n/a
#29: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Hi Doug,

"Doug Taylor" <Doug.TaylorNTP@tayNOSPAMmade.demon.co.uk> wrote in message
news:0bo391tn8au53l43frqjluhqojaq5qisfq@4ax.com...[color=blue]
> On Fri, 20 May 2005 12:47:54 +1000, "Arjang"
> <ArjangATmailDOTcom@NotTheRealPart.zorg> wrote:
>[color=green]
>>http://www.codeproject.com/useritems/CSharpVersusVB.asp
>>[/color]
> There are a few inaccuracy in the article as regards the history of
> Borland Pascal, which it claims was the first commercially available
> Pascal.
>
> For the record USCD was available prior to Borland Pascal 3 and of
> course Anders and Niels Kompass Pascal 1 and 2 predate Phillipe Kahn
> persuading them to remarket the company as Borland (appearing to be
> American rather than European) and selling the product cheaply, if I
> remember correctly the UK price was £35 as compared to £250 for
> version 2, with a restrictive license.
>
> Doug Taylor[/color]

I bought a copy of Apple Pascal ca 1984. This was a version of the UCSD
pcode system. I paid $500 US for it ;) back then. What a world :).

Charles


Earl
Guest
 
Posts: n/a
#30: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


How about translating the entire post!?

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:u2kAjJUXFHA.1240@TK2MSFTNGP14.phx.gbl...[color=blue]
> Cor,
>
> "Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=green][color=darkred]
>>>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
>>>> basierenden, ebenso inrichtigen Implikationen.[/color]
>>
>> The article is lard by m.E. with not realistic bias and gives therefore
>> the same results.[/color]
>
> "m.E." = "IMO".
>
> ;-)
>
> --
> M S Herfried K. Wagner
> M V P <URL:http://dotnet.mvps.org/>
> V B <URL:http://classicvb.org/petition/>[/color]


Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#31: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


"Earl" <brikshoe@newsgroups.nospam> schrieb:[color=blue]
> How about translating the entire post!?[/color]

I feel sorry, but I currently don't have enough time to do that...

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>
Michael C#
Guest
 
Posts: n/a
#32: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


http://babelfish.altavista.com/

Not overly accurate translations, but it makes most articles 20 - 60% more
interesting :) LOFL

"Earl" <brikshoe@newsgroups.nospam> wrote in message
news:%23ci9L$KYFHA.4000@TK2MSFTNGP10.phx.gbl...[color=blue]
> How about translating the entire post!?
>
> "Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
> news:u2kAjJUXFHA.1240@TK2MSFTNGP14.phx.gbl...[color=green]
>> Cor,
>>
>> "Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=darkred]
>>>>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
>>>>> basierenden, ebenso inrichtigen Implikationen.
>>>
>>> The article is lard by m.E. with not realistic bias and gives therefore
>>> the same results.[/color]
>>
>> "m.E." = "IMO".
>>
>> ;-)
>>
>> --
>> M S Herfried K. Wagner
>> M V P <URL:http://dotnet.mvps.org/>
>> V B <URL:http://classicvb.org/petition/>[/color]
>
>[/color]


Michael C#
Guest
 
Posts: n/a
#33: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Here's a rough translation (I did my best, chalk up minor mistakes to
artistic license... major ones to ignorance. Please forgive if I didn't
get it quite right) :)
IMO, this article [http://www.codeproject.com/useritems...pVersusVB.asp]
is shaped by unfounded prejudices and based upon implications that are
"off-track". I went through the trouble to thoroughly study and comment on
the points made in "Propagation Of Culture in NET":
| 1. VB by default allows support for late binding. Although it can be
| turned off with "Option strict", the culture is such that it's usually
| left on. This leads to numerous difficult to catch errors. C# binding
| is always early.

This has no foundation. In the professional field most developers work with
'option Strict on'. If 'option Strict' is switched off, then usually from
technical considerations, it is to access a COM object model approximatley
like the one in [MS] Office. Here, a useful secondary(?) functional
characteristic is called a disadvantage.

| 2. VB still supports the old "On error goto" construct. This leads to
| sloppy or non-existent error handling. C# supports only the superior
| try.catch error handling.

Why does the existence of one additional error handling construct lead to
sloppier or non-existent error handling? VB.NET supports the superior
C#-style 'try...catch[...finally]' with ' Try...Catch...Finally'. In error
handling, VB.NET is superior to C#, since it makes a different construct
available, which covers a better diversity of applications.

| 3. VB supports optional parameters. Although VB developers often
| list this as an advantage, it is a disadvantage because the use of
| optional parameters weakens the contract between the caller and
| the method, allowing the developer to slacken his analysis and get
| away with it until bugs creep in. [note: C# param array construct is
| not the same as optional params]

Again this is not correct. VB supports optional parameters as a
secondary(?) functional characteristic. Sometimes within implementations
optional parameters prove useful. Don't forget there is also the "Overloads
Hell". You can compare the overloads of 'MessageBox.Show' with 'MsgBox',
with the former one must scroll through numerous overloading pages, until
you find the correct one, whereas you will find only one signature form with
'MsgBox' with several optional parameters. It is not disputed that
overloaded, in some cases is advisable. Instead of using too many
overloaded methods, however, optional parameters with their own, more
appropriate and more specific names are also provided. In no case there is
only one ideal solution.

| 4. VB supports the legacy VB functions, with reference to Microsoft.
| VisualBasic.dll. Many of these functions are slow and they should all
| be avoided in favor of the .NET framework. However many VB programmers
| still use them. In new VB projects, this dangerous namespace is included
| by default.

There are no recommendations on the part of Microsoft not to use
functionality from "Microsoft.VisualBasic.dll". "Microsoft.VisualBasic.dll"
can be seen as "language extension" of VB.NET and is just as
sensible/clear(?) as 'using' in C#. The namespace 'Microsoft.VisualBasic'
is in no way "dangerous", even if some of the functions are somewhat slower
than those of the .NET Framework, some of the functions in this namespace
are not provided at all in the .NET Framework (mathematics of finance,
'Left', 'right', 'fixed', 'Split' with character sequences as disconnecting
switches, etc...) and/or these functions are faster than those of the .NET
Framework.

| 5. VB allows implementation of interfaces with methods of different
| names, making it confusing and difficult to find the implementation. C#
| does not.

Due to the explicit implementation syntax of VB.NET ('Implements') it is
obvious which method of the class implements which interface method. In C #
this is not obvious, since the definition (?) of a method does not say
whether it was implemented as a method of an interface or established as
new.

| 6. VB supports background compilation. While this speeds the
development
| cycle for small projects, it slows down the IDE in large projects,
contributing
| at least in part to the culture tending to gravitate toward small
projects.

That applied unfortunately to VB.NET 2002, in version 2003 the situation was
substantially corrected. In VB it will probably still give some
improvements in regard to the speed of the background compiling to [VB.NET]
2005. If necessary, re-referencing projects (clean reference) can also give
an improvement.

| 7. C# namespaces are managed in way that makes programmers aware
| of namespaces and their importance. VB namespaces are managed in a
| way that hides them from the programmers by default. Careful attention
| to namespace management is a fundamental tenet of strong application
| design and its importance cannot be overestimated.

Using namespaces in VB.NET exactly the same as in C# prevents absolutely
nothing.

An unprofessional (?) developer will write bad code in both C# and VB.NET, a
good developer can write good code in in both programming languages.
Optional operators of a programming language are an advantage if they
support the professional user in his/her work. They are not bad, because a
fool does not know to use them correctly.

Translated from post by M S Herfried K. Wagner, M V P

"Earl" <brikshoe@newsgroups.nospam> wrote in message
news:%23ci9L$KYFHA.4000@TK2MSFTNGP10.phx.gbl...[color=blue]
> How about translating the entire post!?
>
> "Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
> news:u2kAjJUXFHA.1240@TK2MSFTNGP14.phx.gbl...[color=green]
>> Cor,
>>
>> "Cor Ligthert" <notmyfirstname@planet.nl> schrieb:[color=darkred]
>>>>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und darauf
>>>>> basierenden, ebenso inrichtigen Implikationen.
>>>
>>> The article is lard by m.E. with not realistic bias and gives therefore
>>> the same results.[/color]
>>
>> "m.E." = "IMO".
>>
>> ;-)
>>
>> --
>> M S Herfried K. Wagner
>> M V P <URL:http://dotnet.mvps.org/>
>> V B <URL:http://classicvb.org/petition/>[/color]
>
>[/color]


Earl
Guest
 
Posts: n/a
#34: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Pretty darn good translation, from the looks of it! Thanks Michael.

"Michael C#" <xyz@abcdef.com> wrote in message
news:NkQke.199$HP1.35@fe08.lga...[color=blue]
> Here's a rough translation (I did my best, chalk up minor mistakes to
> artistic license... major ones to ignorance. Please forgive if I didn't
> get it quite right) :)
> IMO, this article
> [http://www.codeproject.com/useritems...pVersusVB.asp] is shaped by
> unfounded prejudices and based upon implications that are "off-track". I
> went through the trouble to thoroughly study and comment on the points
> made in "Propagation Of Culture in NET":
> | 1. VB by default allows support for late binding. Although it can be
> | turned off with "Option strict", the culture is such that it's usually
> | left on. This leads to numerous difficult to catch errors. C# binding
> | is always early.
>
> This has no foundation. In the professional field most developers work
> with 'option Strict on'. If 'option Strict' is switched off, then usually
> from technical considerations, it is to access a COM object model
> approximatley like the one in [MS] Office. Here, a useful secondary(?)
> functional characteristic is called a disadvantage.
>
> | 2. VB still supports the old "On error goto" construct. This leads to
> | sloppy or non-existent error handling. C# supports only the superior
> | try.catch error handling.
>
> Why does the existence of one additional error handling construct lead to
> sloppier or non-existent error handling? VB.NET supports the superior
> C#-style 'try...catch[...finally]' with ' Try...Catch...Finally'. In error
> handling, VB.NET is superior to C#, since it makes a different construct
> available, which covers a better diversity of applications.
>
> | 3. VB supports optional parameters. Although VB developers often
> | list this as an advantage, it is a disadvantage because the use of
> | optional parameters weakens the contract between the caller and
> | the method, allowing the developer to slacken his analysis and get
> | away with it until bugs creep in. [note: C# param array construct is
> | not the same as optional params]
>
> Again this is not correct. VB supports optional parameters as a
> secondary(?) functional characteristic. Sometimes within implementations
> optional parameters prove useful. Don't forget there is also the
> "Overloads Hell". You can compare the overloads of 'MessageBox.Show' with
> 'MsgBox', with the former one must scroll through numerous overloading
> pages, until you find the correct one, whereas you will find only one
> signature form with 'MsgBox' with several optional parameters. It is not
> disputed that overloaded, in some cases is advisable. Instead of using
> too many overloaded methods, however, optional parameters with their own,
> more appropriate and more specific names are also provided. In no case
> there is only one ideal solution.
>
> | 4. VB supports the legacy VB functions, with reference to Microsoft.
> | VisualBasic.dll. Many of these functions are slow and they should all
> | be avoided in favor of the .NET framework. However many VB programmers
> | still use them. In new VB projects, this dangerous namespace is
> included
> | by default.
>
> There are no recommendations on the part of Microsoft not to use
> functionality from "Microsoft.VisualBasic.dll".
> "Microsoft.VisualBasic.dll" can be seen as "language extension" of VB.NET
> and is just as sensible/clear(?) as 'using' in C#. The namespace
> 'Microsoft.VisualBasic' is in no way "dangerous", even if some of the
> functions are somewhat slower than those of the .NET Framework, some of
> the functions in this namespace are not provided at all in the .NET
> Framework (mathematics of finance, 'Left', 'right', 'fixed', 'Split' with
> character sequences as disconnecting switches, etc...) and/or these
> functions are faster than those of the .NET Framework.
>
> | 5. VB allows implementation of interfaces with methods of different
> | names, making it confusing and difficult to find the implementation. C#
> | does not.
>
> Due to the explicit implementation syntax of VB.NET ('Implements') it is
> obvious which method of the class implements which interface method. In C
> # this is not obvious, since the definition (?) of a method does not say
> whether it was implemented as a method of an interface or established as
> new.
>
> | 6. VB supports background compilation. While this speeds the
> development
> | cycle for small projects, it slows down the IDE in large projects,
> contributing
> | at least in part to the culture tending to gravitate toward small
> projects.
>
> That applied unfortunately to VB.NET 2002, in version 2003 the situation
> was substantially corrected. In VB it will probably still give some
> improvements in regard to the speed of the background compiling to
> [VB.NET] 2005. If necessary, re-referencing projects (clean reference) can
> also give an improvement.
>
> | 7. C# namespaces are managed in way that makes programmers aware
> | of namespaces and their importance. VB namespaces are managed in a
> | way that hides them from the programmers by default. Careful attention
> | to namespace management is a fundamental tenet of strong application
> | design and its importance cannot be overestimated.
>
> Using namespaces in VB.NET exactly the same as in C# prevents absolutely
> nothing.
>
> An unprofessional (?) developer will write bad code in both C# and VB.NET,
> a good developer can write good code in in both programming languages.
> Optional operators of a programming language are an advantage if they
> support the professional user in his/her work. They are not bad, because
> a fool does not know to use them correctly.
>
> Translated from post by M S Herfried K. Wagner, M V P
>
> "Earl" <brikshoe@newsgroups.nospam> wrote in message
> news:%23ci9L$KYFHA.4000@TK2MSFTNGP10.phx.gbl...[color=green]
>> How about translating the entire post!?
>>
>> "Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
>> news:u2kAjJUXFHA.1240@TK2MSFTNGP14.phx.gbl...[color=darkred]
>>> Cor,
>>>
>>> "Cor Ligthert" <notmyfirstname@planet.nl> schrieb:
>>>>>> Der Artikel ist geprägt von m.E. unzutreffenden Vorurteilen und
>>>>>> darauf
>>>>>> basierenden, ebenso inrichtigen Implikationen.
>>>>
>>>> The article is lard by m.E. with not realistic bias and gives therefore
>>>> the same results.
>>>
>>> "m.E." = "IMO".
>>>
>>> ;-)
>>>
>>> --
>>> M S Herfried K. Wagner
>>> M V P <URL:http://dotnet.mvps.org/>
>>> V B <URL:http://classicvb.org/petition/>[/color]
>>
>>[/color]
>
>[/color]


Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#35: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Addendum:
[color=blue][color=green]
>> How about translating the entire post!?[/color]
>
> I feel sorry, but I currently don't have enough time to do that...[/color]

Based on the requests, I'll translate and extend my critique and post it in
a few hours.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Doug Taylor
Guest
 
Posts: n/a
#36: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


On Tue, 24 May 2005 16:45:29 -0500, "Charles D. Quarles"
<cdquarles@msn.com> wrote:
[color=blue]
>Hi Doug,
>
>"Doug Taylor" <Doug.TaylorNTP@tayNOSPAMmade.demon.co.uk> wrote in message
>news:0bo391tn8au53l43frqjluhqojaq5qisfq@4ax.com.. .[color=green]
>> On Fri, 20 May 2005 12:47:54 +1000, "Arjang"
>> <ArjangATmailDOTcom@NotTheRealPart.zorg> wrote:
>>[color=darkred]
>>>http://www.codeproject.com/useritems/CSharpVersusVB.asp
>>>[/color]
>> There are a few inaccuracy in the article as regards the history of
>> Borland Pascal, which it claims was the first commercially available
>> Pascal.
>>
>> For the record USCD was available prior to Borland Pascal 3 and of
>> course Anders and Niels Kompass Pascal 1 and 2 predate Phillipe Kahn
>> persuading them to remarket the company as Borland (appearing to be
>> American rather than European) and selling the product cheaply, if I
>> remember correctly the UK price was £35 as compared to £250 for
>> version 2, with a restrictive license.
>>
>> Doug Taylor[/color]
>
>I bought a copy of Apple Pascal ca 1984. This was a version of the UCSD
>pcode system. I paid $500 US for it ;) back then. What a world :).[/color]

Which translates to around $2000 in todays money.

Doug.[color=blue]
>
>Charles
>[/color]

Herfried K. Wagner [MVP]
Guest
 
Posts: n/a
#37: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


You'll find the translation below:
[color=blue]
> http://www.codeproject.com/useritems/CSharpVersusVB.asp[/color]

This article is IMO stamped by a number of unfounded prejudices and thus
includes some incorrect conclusions. I have taken some of the points made
in the section "Propagation of Culture in .NET" and commented them:

| 1. VB by default allows support for late binding. Although it can be
| turned off with "Option strict", the culture is such that it's usually
| left on. This leads to numerous difficult to catch errors. C# binding
| is always early.

This point doesn't apply to professional development. In a professional
environment, almost all developers work with 'Option Strict On', which will
make VB.NET more type-safe than C#. If 'Option Strict' is turned off, this
decision is based on technical considerations, for example, to ease access
to COM object models like those of Microsoft Office. The author of the
article constructs a disadvantage out from an additional, useful feature.

| 2. VB still supports the old "On error goto" construct. This leads to
| sloppy or non-existent error handling. C# supports only the superior
| try.catch error handling.

I don't see any reasons whe the existance of an /additional/ language
construct for error handling leads to sloppier code or non-existant error
handling. VB.NET supports 'Try...Catch' including 'When', which is superior
to C#'s 'try...catch' error handling structure. VB.NET provides advantages
over C# in matters of error/exception handling capabilities because it
provides constructs which match better with the different afforfances of
error/exception handling.

| 3. VB supports optional parameters. Although VB developers often
| list this as an advantage, it is a disadvantage because the use of
| optional parameters weakens the contract between the caller and
| the method, allowing the developer to slacken his analysis and get
| away with it until bugs creep in. [note: C# param array construct is
| not the same as optional params]

That's wrong too. VB.NET supports optional parameters as an additional
feature. Optional parameters provide advantages when used inside
implementations, and are thus useful in some situations. Don't forget that
methods using optional parameters do not suffer from the "overloads hell".
When comparing 'MsgBox' to 'MessageBox.Show' usability for the latter in
VS.NET is bad because you'll have to pick the right overload from a long
list. On the other hand, 'MsgBox' is a function with many optional
paramters, but usability doesn't suffer. While overloading makes sense in
some cases, I would not see it as a general replacement of optional
parameters, because makes writing code harder and will lead to
less-descriptive code. One other solution to this problem is to give the
methods more specific names instead of overloading a single, generic name.
Altogether there is not a single "best" solution, but there are many good
solution for different cases -- and optional parameters are one of them.

Overloading vs. Object Technology
<URL:http://www.inf.ethz.ch/personal/meyer/publications/joop/overloading.pdf>

| 4. VB supports the legacy VB functions, with reference to Microsoft.
| VisualBasic.dll. Many of these functions are slow and they should all
| be avoided in favor of the .NET framework. However many VB programmers
| still use them. In new VB projects, this dangerous namespace is included
| by default.

Wrong. Microsoft has never published a recommendation not to use
functionality implemented in
"Microsoft.VisualBasic.dll". "Microsoft.VisualBasic.dll" can be seen as a
"language extension" of the core VB.NET programming language. It's as
useful as 'using' in C# because it provides a shortcut to existing
functionality of the .NET Framework. Additionally 'Microsoft.VisualBasic'
contains functionality which is not present in the .NET Framework, like
support for financial mathematics, 'Left', 'Right', 'Fix', 'Split' with
support for strings as separators, ..., and it's absolutely not "dangerous"
to use this functionality. Some of the functions provided in
'Microsoft.VisualBasic' are even faster than their .NET Framework
counterparts.

| 5. VB allows implementation of interfaces with methods of different
| names, making it confusing and difficult to find the implementation. C#
| does not.

Wrong again. VB.NEt supports are more explicit syntax for interface
implementation ('Implements <interface>.<method>') than C#. This syntax
makes it more obviosu which method of the class implements which method of
an interface. In C# that's not obvious because there is no way to decide
whether or not a method implements a method of an interface or simply
extends the class without taking a look at the base class.

| 6. VB supports background compilation. While this speeds the
development
| cycle for small projects, it slows down the IDE in large projects,
contributing
| at least in part to the culture tending to gravitate toward small
| projects.

This was true for VB.NET 2002, but in version 2003 there were significant
speed improvements. In VB 2005 there will likely be some additional
improvements for background compilation. Splitting up the solution into
multiple projects can lead to an improved experience too.

| 7. C# namespaces are managed in way that makes programmers aware
| of namespaces and their importance. VB namespaces are managed in a
| way that hides them from the programmers by default. Careful attention
| to namespace management is a fundamental tenet of strong application
| design and its importance cannot be overestimated.

There is absolutely nothing that prevents one from using namespaces in
VB.NET the way they are used in C#.

Conclusion: An unprofessional developer will write bad code in both C# and
VB.NET, a good deveöoper will be able to write good code in both programming
languages. Optional additional language features are an advantage if the
assist a professional developer with his/her work. They are not bad only
because an unprofessional developer doesn't know how and when to use them.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://classicvb.org/petition/>

Michael C#
Guest
 
Posts: n/a
#38: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Sorry I butchered it so badly :) The newer "technical" terms mess me up
quite a bit. It took me three passes to figure out "namespaces" (I kept
seeing "name area" LOL). Thanks for the good translation!

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:uzhDh6UYFHA.3184@TK2MSFTNGP15.phx.gbl...[color=blue]
> You'll find the translation below:
>[color=green]
>> http://www.codeproject.com/useritems/CSharpVersusVB.asp[/color]
>
> This article is IMO stamped by a number of unfounded prejudices and thus
> includes some incorrect conclusions. I have taken some of the points made
> in the section "Propagation of Culture in .NET" and commented them:
>
> | 1. VB by default allows support for late binding. Although it can be
> | turned off with "Option strict", the culture is such that it's usually
> | left on. This leads to numerous difficult to catch errors. C# binding
> | is always early.
>
> This point doesn't apply to professional development. In a professional
> environment, almost all developers work with 'Option Strict On', which
> will make VB.NET more type-safe than C#. If 'Option Strict' is turned
> off, this decision is based on technical considerations, for example, to
> ease access to COM object models like those of Microsoft Office. The
> author of the article constructs a disadvantage out from an additional,
> useful feature.
>
> | 2. VB still supports the old "On error goto" construct. This leads to
> | sloppy or non-existent error handling. C# supports only the superior
> | try.catch error handling.
>
> I don't see any reasons whe the existance of an /additional/ language
> construct for error handling leads to sloppier code or non-existant error
> handling. VB.NET supports 'Try...Catch' including 'When', which is
> superior to C#'s 'try...catch' error handling structure. VB.NET provides
> advantages over C# in matters of error/exception handling capabilities
> because it provides constructs which match better with the different
> afforfances of error/exception handling.
>
> | 3. VB supports optional parameters. Although VB developers often
> | list this as an advantage, it is a disadvantage because the use of
> | optional parameters weakens the contract between the caller and
> | the method, allowing the developer to slacken his analysis and get
> | away with it until bugs creep in. [note: C# param array construct is
> | not the same as optional params]
>
> That's wrong too. VB.NET supports optional parameters as an additional
> feature. Optional parameters provide advantages when used inside
> implementations, and are thus useful in some situations. Don't forget
> that methods using optional parameters do not suffer from the "overloads
> hell". When comparing 'MsgBox' to 'MessageBox.Show' usability for the
> latter in VS.NET is bad because you'll have to pick the right overload
> from a long list. On the other hand, 'MsgBox' is a function with many
> optional paramters, but usability doesn't suffer. While overloading makes
> sense in some cases, I would not see it as a general replacement of
> optional parameters, because makes writing code harder and will lead to
> less-descriptive code. One other solution to this problem is to give the
> methods more specific names instead of overloading a single, generic name.
> Altogether there is not a single "best" solution, but there are many good
> solution for different cases -- and optional parameters are one of them.
>
> Overloading vs. Object Technology
> <URL:http://www.inf.ethz.ch/personal/meyer/publications/joop/overloading.pdf>
>
> | 4. VB supports the legacy VB functions, with reference to Microsoft.
> | VisualBasic.dll. Many of these functions are slow and they should all
> | be avoided in favor of the .NET framework. However many VB programmers
> | still use them. In new VB projects, this dangerous namespace is
> included
> | by default.
>
> Wrong. Microsoft has never published a recommendation not to use
> functionality implemented in
> "Microsoft.VisualBasic.dll". "Microsoft.VisualBasic.dll" can be seen as a
> "language extension" of the core VB.NET programming language. It's as
> useful as 'using' in C# because it provides a shortcut to existing
> functionality of the .NET Framework. Additionally 'Microsoft.VisualBasic'
> contains functionality which is not present in the .NET Framework, like
> support for financial mathematics, 'Left', 'Right', 'Fix', 'Split' with
> support for strings as separators, ..., and it's absolutely not
> "dangerous" to use this functionality. Some of the functions provided in
> 'Microsoft.VisualBasic' are even faster than their .NET Framework
> counterparts.
>
> | 5. VB allows implementation of interfaces with methods of different
> | names, making it confusing and difficult to find the implementation. C#
> | does not.
>
> Wrong again. VB.NEt supports are more explicit syntax for interface
> implementation ('Implements <interface>.<method>') than C#. This syntax
> makes it more obviosu which method of the class implements which method of
> an interface. In C# that's not obvious because there is no way to decide
> whether or not a method implements a method of an interface or simply
> extends the class without taking a look at the base class.
>
> | 6. VB supports background compilation. While this speeds the
> development
> | cycle for small projects, it slows down the IDE in large projects,
> contributing
> | at least in part to the culture tending to gravitate toward small
> | projects.
>
> This was true for VB.NET 2002, but in version 2003 there were significant
> speed improvements. In VB 2005 there will likely be some additional
> improvements for background compilation. Splitting up the solution into
> multiple projects can lead to an improved experience too.
>
> | 7. C# namespaces are managed in way that makes programmers aware
> | of namespaces and their importance. VB namespaces are managed in a
> | way that hides them from the programmers by default. Careful attention
> | to namespace management is a fundamental tenet of strong application
> | design and its importance cannot be overestimated.
>
> There is absolutely nothing that prevents one from using namespaces in
> VB.NET the way they are used in C#.
>
> Conclusion: An unprofessional developer will write bad code in both C#
> and VB.NET, a good deveöoper will be able to write good code in both
> programming languages. Optional additional language features are an
> advantage if the assist a professional developer with his/her work. They
> are not bad only because an unprofessional developer doesn't know how and
> when to use them.
>
> --
> M S Herfried K. Wagner
> M V P <URL:http://dotnet.mvps.org/>
> V B <URL:http://classicvb.org/petition/>[/color]


Earl
Guest
 
Posts: n/a
#39: Nov 21 '05

re: Not Another C# Versus VB Article (It has a lot to say about Anders and Delphi)


Thanks for the translation Herfried. A damn fair analysis, I might add!

"Herfried K. Wagner [MVP]" <hirf-spam-me-here@gmx.at> wrote in message
news:uzhDh6UYFHA.3184@TK2MSFTNGP15.phx.gbl...[color=blue]
> You'll find the translation below:
>[color=green]
>> http://www.codeproject.com/useritems/CSharpVersusVB.asp[/color]
>
> This article is IMO stamped by a number of unfounded prejudices and thus
> includes some incorrect conclusions. I have taken some of the points made
> in the section "Propagation of Culture in .NET" and commented them:
>
> | 1. VB by default allows support for late binding. Although it can be
> | turned off with "Option strict", the culture is such that it's usually
> | left on. This leads to numerous difficult to catch errors. C# binding
> | is always early.
>
> This point doesn't apply to professional development. In a professional
> environment, almost all developers work with 'Option Strict On', which
> will make VB.NET more type-safe than C#. If 'Option Strict' is turned
> off, this decision is based on technical considerations, for example, to
> ease access to COM object models like those of Microsoft Office. The
> author of the article constructs a disadvantage out from an additional,
> useful feature.
>
> | 2. VB still supports the old "On error goto" construct. This leads to
> | sloppy or non-existent error handling. C# supports only the superior
> | try.catch error handling.
>
> I don't see any reasons whe the existance of an /additional/ language
> construct for error handling leads to sloppier code or non-existant error
> handling. VB.NET supports 'Try...Catch' including 'When', which is
> superior to C#'s 'try...catch' error handling structure. VB.NET provides
> advantages over C# in matters of error/exception handling capabilities
> because it provides constructs which match better with the different
> afforfances of error/exception handling.
>
> | 3. VB supports optional parameters. Although VB developers often
> | list this as an advantage, it is a disadvantage because the use of
> | optional parameters weakens the contract between the caller and
> | the method, allowing the developer to slacken his analysis and get
> | away with it until bugs creep in. [note: C# param array construct is
> | not the same as optional params]
>
> That's wrong too. VB.NET supports optional parameters as an additional
> feature. Optional parameters provide advantages when used inside
> implementations, and are thus useful in some situations. Don't forget
> that methods using optional parameters do not suffer from the "overloads
> hell". When comparing 'MsgBox' to 'MessageBox.Show' usability for the
> latter in VS.NET is bad because you'll have to pick the right overload
> from a long list. On the other hand, 'MsgBox' is a function with many
> optional paramters, but usability doesn't suffer. While overloading makes
> sense in some cases, I would not see it as a general replacement of
> optional parameters, because makes writing code harder and will lead to
> less-descriptive code. One other solution to this problem is to give the
> methods more specific names instead of overloading a single, generic name.
> Altogether there is not a single "best" solution, but there are many good
> solution for different cases -- and optional parameters are one of them.
>
> Overloading vs. Object Technology
> <URL:http://www.inf.ethz.ch/personal/meyer/publications/joop/overloading.pdf>
>
> | 4. VB supports the legacy VB functions, with reference to Microsoft.
> | VisualBasic.dll. Many of these functions are slow and they should all
> | be avoided in favor of the .NET framework. However many VB programmers
> | still use them. In new VB projects, this dangerous namespace is
> included
> | by default.
>
> Wrong. Microsoft has never published a recommendation not to use
> functionality implemented in
> "Microsoft.VisualBasic.dll". "Microsoft.VisualBasic.dll" can be seen as a
> "language extension" of the core VB.NET programming language. It's as
> useful as 'using' in C# because it provides a shortcut to existing
> functionality of the .NET Framework. Additionally 'Microsoft.VisualBasic'
> contains functionality which is not present in the .NET Framework, like
> support for financial mathematics, 'Left', 'Right', 'Fix', 'Split' with
> support for strings as separators, ..., and it's absolutely not
> "dangerous" to use this functionality. Some of the functions provided in
> 'Microsoft.VisualBasic' are even faster than their .NET Framework
> counterparts.
>
> | 5. VB allows implementation of interfaces with methods of different
> | names, making it confusing and difficult to find the implementation. C#
> | does not.
>
> Wrong again. VB.NEt supports are more explicit syntax for interface
> implementation ('Implements <interface>.<method>') than C#. This syntax
> makes it more obviosu which method of the class implements which method of
> an interface. In C# that's not obvious because there is no way to decide
> whether or not a method implements a method of an interface or simply
> extends the class without taking a look at the base class.
>
> | 6. VB supports background compilation. While this speeds the
> development
> | cycle for small projects, it slows down the IDE in large projects,
> contributing
> | at least in part to the culture tending to gravitate toward small
> | projects.
>
> This was true for VB.NET 2002, but in version 2003 there were significant
> speed improvements. In VB 2005 there will likely be some additional
> improvements for background compilation. Splitting up the solution into
> multiple projects can lead to an improved experience too.
>
> | 7. C# namespaces are managed in way that makes programmers aware
> | of namespaces and their importance. VB namespaces are managed in a
> | way that hides them from the programmers by default. Careful attention
> | to namespace management is a fundamental tenet of strong application
> | design and its importance cannot be overestimated.
>
> There is absolutely nothing that prevents one from using namespaces in
> VB.NET the way they are used in C#.
>
> Conclusion: An unprofessional developer will write bad code in both C#
> and VB.NET, a good deveöoper will be able to write good code in both
> programming languages. Optional additional language features are an
> advantage if the assist a professional developer with his/her work. They
> are not bad only because an unprofessional developer doesn't know how and
> when to use them.
>
> --
> M S Herfried K. Wagner
> M V P <URL:http://dotnet.mvps.org/>
> V B <URL:http://classicvb.org/petition/>[/color]


Closed Thread