Which Language Should I Choose? 
Author Message
 Which Language Should I Choose?

Hi all

I've posted an article at
http://www.*-*-*.com/
issue of what language developers should choose when deciding to learn .NET.
It goes through all the major options (Java/C++/VB/Perl/Python/Delphi
programmer) and gives the pros and cons of each of the major choices
(VB.NET/C#/C++.NET/J#/JScript.NET etc). Hopefully this'll be of use to all
of you who're bewildered by the huge array of options currently available.

Peter

--
Peter McMahon
http://www.*-*-*.com/ - The Premier Microsoft.NET Resource in South
Africa



Sat, 29 May 2004 06:48:51 GMT  
 Which Language Should I Choose?

Quote:
> Hi all

> I've posted an article at
> http://www.dotnet.za.net/viewarticle.asp?articleid=12 that deals with the
> issue of what language developers should choose when deciding to learn

.NET.

Hi,

This is a good article, and it's nice to see some concise summaries of the
languages, but I would have to disagree with your final assessment; I think
that newcomers to the platform who aren't already experienced developers
would be best off choosing VB (if they use Visual Studio) or JScript (if
they don't). These two languages have a bunch of features that make them
friendlier than C#, such as optional variable declaration and latebound /
typeless programming.

Some more specific comments:

1) JScript .NET is indeed part of the .NET "core", and will be installed
everywhere that .NET is installed (including Windows 9x). J# is not part of
the first release, but should be included in the future

2) Visual Studio doesn't support every .NET language -- only those languages
that have explicitly added support for it via VSIP.

3) Transact-SQL should still be in Yukon -- .NET is augmenting it, not
replacing it

4) Amazingly enough, I disagree with your assessment of JScript .NET.
Imagine that! :-). J# will indeed be provided as a migration tool from J++,
but that has nothing to do with JScript -- they are completely different
languages.

You are correct in that JScript .NET's major role is in providing support
for ASP .NET, both for migrating existing code and for new development. For
a web developer who must deal with both client and server code, JScript is
the language of choice since it runs in both environments. It is also
considerably easier to write JScript code than it is to write C# code for
most intents and purposes, as the language supports such features as late
binding, typeless programming, generous implicit conversions,
just-make-it-work defaults, and so on.

The second major focus for JScript .NET is Script for the .NET Framework,
which (like Active Script in the past) allows you to embed either VB or
JScript code inside an application to provide macros, customisations, and so
on. Of course, you can also write console or Windows Forms applications with
JScript .NET, but that's not really a target market for us; our customers
are much more likely to be at home with HTML and XML/XSL than they are with
Windows Forms. And looking towards the future, we are currently
investigating support for JScript .NET inside the browser to enable rich
interactions between the browser, the .NET platform, Web Services, and
Windows Forms. You can check out
http://www.gotdotnet.com/userfiles/torrboy/PDC2001.zip for a demo.

Finally, the developer community for JScript .NET may be small at the
moment, but keep in mind that the total ECMAScript community is arguably
larger than that of any other language. Of course, the majority of our
customers aren't professional developers, and so they won't spend the time
or money to download a 120 MB Beta, but in time I am confident that the
number of JScript .NET users will rival that of any other language.

5) C++ has a lot of benefits for programmers who want ultimate power,
performance, and control in their applications. It's also a great way to
bridge the .NET <--> COM divide.

6) I'm not sure why you think Perl and python are the only non-Microsoft
languages that can really be considered contenders. Programmers coming to
.NET from other platforms would probably love to try COBOL, fortran, Eiffel,
Smalltalk, and so on -- remember that "new to .NET" doesn't necessarily mean
"new to programming". Some of the other languages are listed at
http://msdn.microsoft.com/vstudio/partners/language/default.asp.

7) Delphi developers may want to check out Component Pascal
(http://msdn.microsoft.com/vstudio/partners/language/universityqueensl...
p), although I have never used either of the two products so it may not be
ideal.

8) It's hard to say what a good "beginning" language should be. If you want
to spend the money on Visual Studio .NET then VB is probably the way to go.
On the other hand, a beginner may not wish to spend the money on Visual
Studio .NET, and will start playing with framework and Notepad (or another
cheap editor), and in the absence of the Windows Forms / Web Forms
designers, JScript is often much easier to use than the other languages.
Consider the fact that hello world is only:

    print("Hello, world")

versus all the other goo you have to write in the other languages. Beginning
programmers are also quite likely to come from a web background, or have at
least taken a simple web design class in high school / college, so they
probably already have some exposure to JScript.

I only wish it was this easy to choose a digital camera!

Peter

--

Waiting for the Vengabus? http://www.microsoft.com/info/cpyright.htm
Please post all questions to the group. Thanks.



Sat, 29 May 2004 10:54:53 GMT  
 Which Language Should I Choose?


Quote:
>  These two languages have a bunch of features that make them
> friendlier than C#, such as optional variable declaration and latebound /
> typeless programming.

Optional variable declaration === unmaintainable code.

This is not a good thing. Teaching beginners that this is the way to
code is not good.

mule
--
"jewels and binoculars hang from the head of the mule"
                                             Bob Dylan



Sat, 29 May 2004 15:11:53 GMT  
 Which Language Should I Choose?
I couldn't agree more.

Furthermore, I think that his assumption that VB.NET is the logical language for VB6 developers to go is wrong too.

Any competent (Read: Doesn't use data controls. Has used Win32 API. Declares variables. Only uses Variants when absolutely
necessary. Never leaves the runtime a chance for evil type coercion. <Add to list here>) VB developer has only been dating it until
something better showed up, and will be a much happier camper using C#.

And all that marketing {*filter*}about having to learn another language along with the BCL and the new programming paradigm of .NET is
malarkey. Moving to VB.NET they have to both learn something new and unlearn the old. Move to C# and it's just learn something new.
Most of which they already know and just haven't found out that they know it yet. :-))

I've already taken 1/2 dozen VB6 programmers (good ones) and had them writing productive code in less than 2 days using C#. Every
one of them says it physically hurts to go back to VB6, and hurts even worse just to look at VB.NET.

And they like the fact they have function overloading, operator overloading, pointers when needed (take a bit more to get them up to
speed here, no doubt), shift operators, unsigned integer data types, signed bytes, and all the other stuff missing from VB. Where
was that in the article?

C# doesn't have any baggage, and one of the primary concerns in the design was to keep things consistent and at the same time
prevent common mistakes that lead to bugs. It's much simpler to learn C# than VB.Net, even for new programmers.

What is there in VB.NET that makes it simpler to learn to write a stable program that is maintainable than C#?  C# is not C++, nor
is the learning curve on the same scale.

Another thing that makes C# worth the move for everybody, and a big con against moving to VB, is that C# has been submitted as a
spec to ECMA. This will significantly reduce the chance that the language is changed willy-nilly between version releases of VS, as
VB has with every version. Or, will your VB6 apps just port straight over?

These truths just keep getting swept under the rug by the marketing machine and clones repeating their drivel because of the massive
market share VB has that nobody in their right mind would want to lose. Especially current authors in the VB space. It's in their
best interest not to have current VB devs jump ship to C#. It diminishes their income potential. Hardly possible to write a
non-biased view given that fact now, isn't it?

For you script kiddies, home hobbyists, and  power secretaries who will be writing Word.Net Macros, go ahead and stick with VB. You
are the market MSFT is targeting with the tool anyway. Oh yea, I forgot you can more easily perform late binding all day long. As if
late binding is a good thing and there aren't better solutions to use instead, like designing an interface and early binding to
it...

To make my point about how easy it is for a good VB programmer to jump right into C#, how many of you VB6 programmers find it's just
as easy (or easier) to read the C# code snips and examples you find here as it is to read the VB.NET ones?

One more thing. The programmers that used to be VB'ers and are now C#'ers also told me they are happy to be out from under the
stigmata of being a 2nd class citizen because of their chosen tool.

Keep Smilin'
Ed Stegman

Quote:



> >  These two languages have a bunch of features that make them
> > friendlier than C#, such as optional variable declaration and latebound /
> > typeless programming.

> Optional variable declaration === unmaintainable code.

> This is not a good thing. Teaching beginners that this is the way to
> code is not good.

> mule
> --
> "jewels and binoculars hang from the head of the mule"
>                                              Bob Dylan



Sat, 29 May 2004 15:54:52 GMT  
 Which Language Should I Choose?
Just a quick comment about the Delphi programmer moving to VB.NET or C#,
I my opinion C# is the better choice for Delphi programmers, because I've
used Delphi for a short while and found alot of thing similar in C#. Also
Anders Hejlsberg (one of the minds behind C#) also is the man behind Delphi.
(must explain the similarities ;-)

regards,
Copax.


Quote:
> Hi all

> I've posted an article at
> http://www.dotnet.za.net/viewarticle.asp?articleid=12 that deals with the
> issue of what language developers should choose when deciding to learn
.NET.
> It goes through all the major options (Java/C++/VB/Perl/Python/Delphi
> programmer) and gives the pros and cons of each of the major choices
> (VB.NET/C#/C++.NET/J#/JScript.NET etc). Hopefully this'll be of use to all
> of you who're bewildered by the huge array of options currently available.

> Peter

> --
> Peter McMahon
> http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
> Africa



Sat, 29 May 2004 18:08:39 GMT  
 Which Language Should I Choose?
Hi Ed

I totally agree with you about your stance towards advanced VB developers
moving to C# instead of VB.NET. As I said in the article, C# has been
designed from scratch, so it doesn't have to bring anything bad along for
"compatibility reasons". For advanced programmers (people who've worked with
the WinAPI etc), language syntax isn't normally much of a barrier, so there
aren't any compelling reasons not to go to C# except for migrating VB6
applications (although it could be argued that the changes are so great in
VB.NET that you'd be better off rewrite the app, in C# at that).

However, for the not-so-advanced VB programmer, VB.NET is probably a better
move initially (I did say that once you've learned VB.NET, moving to C# is
almost painless because most things are done very similarly). This is
because your not-so-advanced VBer probably isn't comfortable with the
C++-like syntax, so they'd be more at home with VB.NET. Once they've
understood that basics of .NET development with VB.NET, they can easily move
over to C#.

As for readability of C# vs VB.NET samples, I personally don't have a
preference. However, if anything, I think newbies will find VB.NET samples
easier to read because its syntax is closer to written English than that of
C#.

The point you make about VB developers living under the stigma that they're
somehow not as good as other developers is very true though, and one of the
reasons I learnt C# was so that if the same kind of stigma develops (or is
carried across) to VB.NET, I can always label myself as a C# programmer.

Peter

--
Peter McMahon
http://www.*-*-*.com/ - The Premier Microsoft.NET Resource in South
Africa


Quote:
> I couldn't agree more.

> Furthermore, I think that his assumption that VB.NET is the logical

language for VB6 developers to go is wrong too.
Quote:

> Any competent (Read: Doesn't use data controls. Has used Win32 API.

Declares variables. Only uses Variants when absolutely
Quote:
> necessary. Never leaves the runtime a chance for evil type coercion. <Add

to list here>) VB developer has only been dating it until
Quote:
> something better showed up, and will be a much happier camper using C#.

> And all that marketing {*filter*}about having to learn another language along

with the BCL and the new programming paradigm of .NET is
Quote:
> malarkey. Moving to VB.NET they have to both learn something new and

unlearn the old. Move to C# and it's just learn something new.
Quote:
> Most of which they already know and just haven't found out that they know
it yet. :-))

> I've already taken 1/2 dozen VB6 programmers (good ones) and had them

writing productive code in less than 2 days using C#. Every
Quote:
> one of them says it physically hurts to go back to VB6, and hurts even

worse just to look at VB.NET.
Quote:

> And they like the fact they have function overloading, operator

overloading, pointers when needed (take a bit more to get them up to
Quote:
> speed here, no doubt), shift operators, unsigned integer data types,

signed bytes, and all the other stuff missing from VB. Where
Quote:
> was that in the article?

> C# doesn't have any baggage, and one of the primary concerns in the design

was to keep things consistent and at the same time
Quote:
> prevent common mistakes that lead to bugs. It's much simpler to learn C#

than VB.Net, even for new programmers.
Quote:

> What is there in VB.NET that makes it simpler to learn to write a stable

program that is maintainable than C#?  C# is not C++, nor
Quote:
> is the learning curve on the same scale.

> Another thing that makes C# worth the move for everybody, and a big con

against moving to VB, is that C# has been submitted as a
Quote:
> spec to ECMA. This will significantly reduce the chance that the language

is changed willy-nilly between version releases of VS, as
Quote:
> VB has with every version. Or, will your VB6 apps just port straight over?

> These truths just keep getting swept under the rug by the marketing

machine and clones repeating their drivel because of the massive
Quote:
> market share VB has that nobody in their right mind would want to lose.

Especially current authors in the VB space. It's in their
Quote:
> best interest not to have current VB devs jump ship to C#. It diminishes

their income potential. Hardly possible to write a
Quote:
> non-biased view given that fact now, isn't it?

> For you script kiddies, home hobbyists, and  power secretaries who will be

writing Word.Net Macros, go ahead and stick with VB. You
Quote:
> are the market MSFT is targeting with the tool anyway. Oh yea, I forgot

you can more easily perform late binding all day long. As if
Quote:
> late binding is a good thing and there aren't better solutions to use

instead, like designing an interface and early binding to
Quote:
> it...

> To make my point about how easy it is for a good VB programmer to jump

right into C#, how many of you VB6 programmers find it's just
Quote:
> as easy (or easier) to read the C# code snips and examples you find here

as it is to read the VB.NET ones?
Quote:

> One more thing. The programmers that used to be VB'ers and are now C#'ers

also told me they are happy to be out from under the
Quote:
> stigmata of being a 2nd class citizen because of their chosen tool.

> Keep Smilin'
> Ed Stegman




Quote:


> > >  These two languages have a bunch of features that make them
> > > friendlier than C#, such as optional variable declaration and
latebound /
> > > typeless programming.

> > Optional variable declaration === unmaintainable code.

> > This is not a good thing. Teaching beginners that this is the way to
> > code is not good.

> > mule
> > --
> > "jewels and binoculars hang from the head of the mule"
> >                                              Bob Dylan



Sat, 29 May 2004 18:38:27 GMT  
 Which Language Should I Choose?
Hi Peter

When I was writing the article, particularly the summary of JScript.NET, I
thought to myself, "If that Peter Torr guy ever finds out about this
article, I'm finished - I can still remember his strong adovacy for his baby
about this time last year when people started dissing it." Hey, and what do
you know - you found it. Darn. ;-)

Thanks for the reply though. It's always nice to get some constructive
criticism back. I've made comments inline.

Cheers
Peter

--
Peter McMahon
http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
Africa

*


Quote:
> This is a good article, and it's nice to see some concise summaries of the
> languages, but I would have to disagree with your final assessment; I
think
> that newcomers to the platform who aren't already experienced developers
> would be best off choosing VB (if they use Visual Studio) or JScript (if
> they don't). These two languages have a bunch of features that make them
> friendlier than C#, such as optional variable declaration and latebound /
> typeless programming.

Although I can see where you're coming from, I feel that it'd probably be
better just to start off with VB.NET. JScript.NET may very well be easier in
certain circumstances, but I think the problem comes in when the new
developer has learn his .NET language of choice after programming it in
Notepad for a few months, and now decides s/he wants to get Visual Studio.
If s/he learnt VB.NET, s/he could just buy VB.NET, and s/he'd be happy, but
if s/he'd learnt JScript.NET, s/he'd have to buy VS.NET (or VB.NET or
VC#.NET) and learn that language. Admittedly s/he wouldn't have too much of
a rough time doing so, because most .NET programming is programming against
the base classes rather than the languages, but it's still a hurdle that is
IMHO unnecessary.

Quote:

> Some more specific comments:

> 1) JScript .NET is indeed part of the .NET "core", and will be installed
> everywhere that .NET is installed (including Windows 9x). J# is not part
of
> the first release, but should be included in the future

Yup, I know. I said that in the article (I hope ;-).

Quote:
> 2) Visual Studio doesn't support every .NET language -- only those
languages
> that have explicitly added support for it via VSIP.

Yeah, I know. Maybe I didn't make that clear enough in the article, although
I did imply it, since I said that JScript.NET is available in the VS.NET
environment yet.

Quote:

> 3) Transact-SQL should still be in Yukon -- .NET is augmenting it, not
> replacing it

Ah, thanks for that tidbit! Adds another piece to the puzzle...

Quote:

> 4) Amazingly enough, I disagree with your assessment of JScript .NET.
> Imagine that! :-). J# will indeed be provided as a migration tool from
J++,
> but that has nothing to do with JScript -- they are completely different
> languages.

Lol, as I said up top, I knew you'd have issues with what I'd said about
JScript.

Quote:

> You are correct in that JScript .NET's major role is in providing support
> for ASP .NET, both for migrating existing code and for new development.
For
> a web developer who must deal with both client and server code, JScript is
> the language of choice since it runs in both environments. It is also
> considerably easier to write JScript code than it is to write C# code for
> most intents and purposes, as the language supports such features as late
> binding, typeless programming, generous implicit conversions,
> just-make-it-work defaults, and so on.

I think there are actually two schools of thought on the
client-side/server-side language issue. However, before I dive in there, I
think it'll be quite some time (if ever), that web developers will be able
to safely use JScript.NET as their client-side scripting language without
worry about support in other browsers (like Opera/Mozilla - particularly on
the Linux platform). I know that IE holds about 85% of the share, but when
you're building a site that's expecting lots of traffic, that 15% is a lot
of people that you're isolating. You'll probably disagree with me, but I
don't think we'll see a day when it's possible to write JScript.NET code for
the client-side and not worry about cross-browser compatibility issues. If
you reply telling me that Opera and Mozilla have both agreed to implement it
in their next releases, I'll be a very happy man.

Now, on to the debate about whether using the same language for both server-
and client-side development is a good thing. As I said, there're normally
two camps holding radically different opinions on this matter. Firstly, for
relatively inexperienced web developers, I think that it is a very bad thing
because newbies often get confused by which code is client-side and which
code is server-side. The whole .NET Framework is confusing enough,
especially since it makes extensive use of client-side script for its own
workings in ASP.NET, so I think it's probably best to use two different
languages for client- and server-side code, so that you've got another layer
of separation to help avoid confusion.

Quote:

> The second major focus for JScript .NET is Script for the .NET Framework,
> which (like Active Script in the past) allows you to embed either VB or
> JScript code inside an application to provide macros, customisations, and
so
> on. Of course, you can also write console or Windows Forms applications
with
> JScript .NET, but that's not really a target market for us; our customers
> are much more likely to be at home with HTML and XML/XSL than they are
with
> Windows Forms. And looking towards the future, we are currently
> investigating support for JScript .NET inside the browser to enable rich
> interactions between the browser, the .NET platform, Web Services, and
> Windows Forms. You can check out
> http://www.gotdotnet.com/userfiles/torrboy/PDC2001.zip for a demo.

With regard to the scripting focus of JScript.NET, this is another reason
why I don't advocate it as a mainstream .NET language, but more as a niche
player. My article was intended more for people beginning .NET programming,
so scripting their own applications isn't much of a consideration at that
stage.

Quote:

> Finally, the developer community for JScript .NET may be small at the
> moment, but keep in mind that the total ECMAScript community is arguably
> larger than that of any other language. Of course, the majority of our
> customers aren't professional developers, and so they won't spend the time
> or money to download a 120 MB Beta, but in time I am confident that the
> number of JScript .NET users will rival that of any other language.

Well, I'm not sure if you'll easily be able to take over the number of C#
and VB.NET developers. Perhaps it'll evolve into what web client-side
JavaScript is today (in terms of user base, which is obviously huge), but
when a new developer is looking for support from the developer community,
getting help and advice from experienced former VB/C++/Java programmers is
probably going to be a lot better than getting advice from developer's
who've only had experience with JavaScript, IMHO.

Quote:
> 5) C++ has a lot of benefits for programmers who want ultimate power,
> performance, and control in their applications. It's also a great way to
> bridge the .NET <--> COM divide.

I haven't had too much of a look at it, but from what I understand of it, it
looks set to be a niche language for power-users, esp. with it's native and
unmanaged code capabilities. I think that C# and VB.NET will be the "big
two".

Quote:
> 6) I'm not sure why you think Perl and Python are the only non-Microsoft
> languages that can really be considered contenders. Programmers coming to
> .NET from other platforms would probably love to try COBOL, FORTRAN,
Eiffel,
> SmallTalk, and so on -- remember that "new to .NET" doesn't necessarily
mean
> "new to programming". Some of the other languages are listed at
> http://msdn.microsoft.com/vstudio/partners/language/default.asp.

I've had a look at both Perl.NET and Python.NET from ActiveState, and
they're really very polished, so that's one reason, and another is that
there're probably more Perl and Python developers than there are COBOL,
FORTRAN, Eiffel, Haskell etc programmers combined. However, I wasn't for a
moment suggesting that COBOL programmers wanting to try out .NET shouldn't
consider Fujitsu's offerings, because that's probably what they'll be most
comfortable with. It's just that I don't really see COBOL becoming a major
.NET language - I think that Perl and Python have a much better chance
because of their substantially larger user bases (although most of those are
*nix people who wouldn't touch "Micro$oft" tools, so maybe I'm just digging
myself into a deeper hole here, although the go-mono.com project does give
me hope...)

Quote:

> 7) Delphi developers may want to check out Component Pascal

(http://msdn.microsoft.com/vstudio/partners/language/universityqueensl...

Quote:
> p), although I have never used either of the two products so it may not be
> ideal.

I took a brief look at Component Pascal a while back (since I'm
traditionally a Delphi programmer), and I wasn't very impressed, which is
why I recommend C# for Delphi programmers - the syntax isn't *that*
different, and C# is definitely going to go further than CP.

Quote:

> 8) It's hard to say what a good "beginning" language should be. If you
want
> to spend the money on Visual Studio .NET then VB is probably the way to
go.
> On the other hand, a beginner may not wish to spend the money on Visual
> Studio .NET, and will start playing with framework and Notepad (or another
> cheap editor), and in the absence of the Windows Forms / Web Forms
> designers, JScript is often much easier to use than the other languages.
> Consider the fact that hello world is only:

>     print("Hello, world")

> versus all the other goo you have to write in the other languages.
Beginning
> programmers are also quite likely to come from a web

...

read more »



Sat, 29 May 2004 18:25:41 GMT  
 Which Language Should I Choose?
Well Peter, I wouldn't (and didn't) call working with the Win32 API *advanced* programming, although there are some parts that
you'll need to be not only advanced, but ingenious to get working from VB.

As VB5/6 only runs on the Win32 operating system, its pretty much a given in my eyes that if you can't use it, you aren't quite up
to speed for average competency. How could anybody write a half way decent front end (the target of VB dev) without at least knowing
SendMessage, RtlMoveMemory, and a handful of other easy enough to use API's that they can use to grab some perf or functionality not
available out of the box. I'm not asking them to be able to thunk down to the DirectX API's and code up Max Payne after all. Just
maybe use FindWindow() so they can stop multiple instances of their app when needed and pop the already loaded one to the top using
SetForgroundWindow(). Seems like normal competency to be able to do that, as it's a normal need for an application. Piggy backing a
ride on some other apps main thread before making the call, so your app actually does pop to the front instead of flashing the
toolbar button, I would consider advanced. Not difficult to do actually, but it would take an advanced person to realize it could be
done in the first place.

Is there some other O.S. that you think VB programmers should be programming against in order to consider themselves competent? I
don't consider being able to drag some controls onto a forms designer and hook them to a data control, or 20, being a competent
programmer. And if you want to tell me that you are shipping apps using only the out of the box functionality of VB, then I'm
telling you that you are shipping apps that aren't quite what they could be.

 Anyway, all things said and done, you are really going to be better off learning both languages. And MC++ too.

But I still think newbies should learn C# first. That way they won't pick up any bad habits. I think VB drives people towards bad
habits. Somebody posted earlier here stating VB was good because it didn't enforce explicit typing, is a good example of this. Type
safety is paramount to a competent developer. It's also paramount to a newbie, they just don't know it yet. So every time I see
somebody state that weak typing is a good thing, I just move their name over to the "woefully mislead" side of the book, shake my
head, and hope I never have to work with them or on any code they ever wrote.

On migration of legacy VB apps. Why? I certainly wouldn't advocate re-writing in VB.net or C# if the app is already complete, or
even partially complete. If it's a web app and you just have to have the extra perf offered by ASP+, then that's another story.

As far as comfort with syntax, I guess the new guy really will find this line of VB:

If Not myObject Is Nothing OrElse IsNull( myOtherObject ) Then ...

much more comfortable than the C# equivalent:

if (myObject != null || myOtherObject == null) {...

because the VB version reads more like English. hehehe sure it does. The only reason you now understand what the VB line was trying
to say is because you read the C# one ;-)) And the distinction between null/nothing certainly won't confuse them now, will it? ;-))

BTW, how long did it take you to learn the C# operators? An hour? Tough barrier, that. <g>

Anyway, your article isn't all bad, even though I disagree with your reasoning. Some people really will do better learning VB.Net
then C#, just because MSFT told them they would. Strange how confidence in being able to do something often is the only difference
between getting it done or not. :-))

Keep Smilin'
Ed Stegman

Quote:

> Hi Ed

> I totally agree with you about your stance towards advanced VB developers
> moving to C# instead of VB.NET. As I said in the article, C# has been
> designed from scratch, so it doesn't have to bring anything bad along for
> "compatibility reasons". For advanced programmers (people who've worked with
> the WinAPI etc), language syntax isn't normally much of a barrier, so there
> aren't any compelling reasons not to go to C# except for migrating VB6
> applications (although it could be argued that the changes are so great in
> VB.NET that you'd be better off rewrite the app, in C# at that).

> However, for the not-so-advanced VB programmer, VB.NET is probably a better
> move initially (I did say that once you've learned VB.NET, moving to C# is
> almost painless because most things are done very similarly). This is
> because your not-so-advanced VBer probably isn't comfortable with the
> C++-like syntax, so they'd be more at home with VB.NET. Once they've
> understood that basics of .NET development with VB.NET, they can easily move
> over to C#.

> As for readability of C# vs VB.NET samples, I personally don't have a
> preference. However, if anything, I think newbies will find VB.NET samples
> easier to read because its syntax is closer to written English than that of
> C#.

> The point you make about VB developers living under the stigma that they're
> somehow not as good as other developers is very true though, and one of the
> reasons I learnt C# was so that if the same kind of stigma develops (or is
> carried across) to VB.NET, I can always label myself as a C# programmer.

> Peter

> --
> Peter McMahon
> http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
> Africa



Sat, 29 May 2004 20:14:17 GMT  
 Which Language Should I Choose?


Quote:
> Any competent (Read: Doesn't use data controls. Has used Win32 API.

Declares variables. Only uses Variants when absolutely
Quote:
> necessary. Never leaves the runtime a chance for evil type coercion. <Add

to list here>) VB developer has only been dating it until

Quote:
> something better showed up, and will be a much happier camper using C#.

As a competent (by your definition) VB Developer I disagree. While C# is a
very nice language and I do like it, it's not better then VB .NET. There are
pros and cons to both languages. They are different but I do not think it is
fair to call one absolutely better then the other.

Quote:
> I've already taken 1/2 dozen VB6 programmers (good ones) and had them

writing productive code in less than 2 days using C#. Every
Quote:
> one of them says it physically hurts to go back to VB6, and hurts even

worse just to look at VB.NET.

I go back and forth between the two daily. Often using both in the same day
and do not find it at all painful.

Quote:
> C# doesn't have any baggage, and one of the primary concerns in the design

was to keep things consistent and at the same time
Quote:
> prevent common mistakes that lead to bugs. It's much simpler to learn C#

than VB.Net, even for new programmers.

Taught many new programmers? (New being defined as no previous programming
experience) I have. It's what I do for a living these days. I believe that
VB .NET will be easier for totally new programmers then C# almost as much so
as VB 6 is over C++. They syntax is the key.

Quote:
> It's in their
> best interest not to have current VB devs jump ship to C#. It diminishes

their income potential. Hardly possible to write a

Quote:
> non-biased view given that fact now, isn't it?

Any author who can write a worthwhile VB .NET book can just as easily write
a good C# book. VB 6 book is of marginal use at best to a VB .NET learner
the VB authors have as much incentive to push C# as VB. Unless they really
think VB is better.

Quote:
> One more thing. The programmers that used to be VB'ers and are now C#'ers

also told me they are happy to be out from under the

Quote:
> stigmata of being a 2nd class citizen because of their chosen tool.

Oh, yeah, appeal to ego. Now there is a great reason to pick a programming
language.


Sat, 29 May 2004 21:25:22 GMT  
 Which Language Should I Choose?
<snip>
For you script kiddies, home hobbyists, and  power secretaries who will be
writing Word.Net Macros, go ahead and stick with VB. You are the market MSFT
is targeting with the tool anyway.
</snip>

I'm disappointed to see that VB bashing is still a popular sport with .NET,
even though all the languages write to IL at the end of the day.

Please don't assume that:
- VB is the only language in which newbie or talentless programmers can
write crappy applications
- all VB programmers are, or should only be, "script kiddies, home
hobbyists, and  power secretaries"

Good programmers apply solid programming fundamentals to their work no
matter what language they work in, VB included.

Just my two cents worth.

--
Robert Chapman, MCSD
Manager Applications Development
prairieFyre Software Inc.
http://www.*-*-*.com/

Quote:
> I couldn't agree more.

> Furthermore, I think that his assumption that VB.NET is the logical

language for VB6 developers to go is wrong too.
Quote:

> Any competent (Read: Doesn't use data controls. Has used Win32 API.

Declares variables. Only uses Variants when absolutely
Quote:
> necessary. Never leaves the runtime a chance for evil type coercion. <Add

to list here>) VB developer has only been dating it until
Quote:
> something better showed up, and will be a much happier camper using C#.

> And all that marketing {*filter*}about having to learn another language along

with the BCL and the new programming paradigm of .NET is
Quote:
> malarkey. Moving to VB.NET they have to both learn something new and

unlearn the old. Move to C# and it's just learn something new.
Quote:
> Most of which they already know and just haven't found out that they know
it yet. :-))

> I've already taken 1/2 dozen VB6 programmers (good ones) and had them

writing productive code in less than 2 days using C#. Every
Quote:
> one of them says it physically hurts to go back to VB6, and hurts even

worse just to look at VB.NET.
Quote:

> And they like the fact they have function overloading, operator

overloading, pointers when needed (take a bit more to get them up to
Quote:
> speed here, no doubt), shift operators, unsigned integer data types,

signed bytes, and all the other stuff missing from VB. Where
Quote:
> was that in the article?

> C# doesn't have any baggage, and one of the primary concerns in the design

was to keep things consistent and at the same time
Quote:
> prevent common mistakes that lead to bugs. It's much simpler to learn C#

than VB.Net, even for new programmers.
Quote:

> What is there in VB.NET that makes it simpler to learn to write a stable

program that is maintainable than C#?  C# is not C++, nor
Quote:
> is the learning curve on the same scale.

> Another thing that makes C# worth the move for everybody, and a big con

against moving to VB, is that C# has been submitted as a
Quote:
> spec to ECMA. This will significantly reduce the chance that the language

is changed willy-nilly between version releases of VS, as
Quote:
> VB has with every version. Or, will your VB6 apps just port straight over?

> These truths just keep getting swept under the rug by the marketing

machine and clones repeating their drivel because of the massive
Quote:
> market share VB has that nobody in their right mind would want to lose.

Especially current authors in the VB space. It's in their
Quote:
> best interest not to have current VB devs jump ship to C#. It diminishes

their income potential. Hardly possible to write a
Quote:
> non-biased view given that fact now, isn't it?

> For you script kiddies, home hobbyists, and  power secretaries who will be

writing Word.Net Macros, go ahead and stick with VB. You
Quote:
> are the market MSFT is targeting with the tool anyway. Oh yea, I forgot

you can more easily perform late binding all day long. As if
Quote:
> late binding is a good thing and there aren't better solutions to use

instead, like designing an interface and early binding to
Quote:
> it...

> To make my point about how easy it is for a good VB programmer to jump

right into C#, how many of you VB6 programmers find it's just
Quote:
> as easy (or easier) to read the C# code snips and examples you find here

as it is to read the VB.NET ones?
Quote:

> One more thing. The programmers that used to be VB'ers and are now C#'ers

also told me they are happy to be out from under the
Quote:
> stigmata of being a 2nd class citizen because of their chosen tool.

> Keep Smilin'
> Ed Stegman




Quote:


> > >  These two languages have a bunch of features that make them
> > > friendlier than C#, such as optional variable declaration and
latebound /
> > > typeless programming.

> > Optional variable declaration === unmaintainable code.

> > This is not a good thing. Teaching beginners that this is the way to
> > code is not good.

> > mule
> > --
> > "jewels and binoculars hang from the head of the mule"
> >                                              Bob Dylan



Sat, 29 May 2004 22:49:13 GMT  
 Which Language Should I Choose?
Hi Ed

Point taken about the story of advanced and competent VB programmers, but
when I think of the 7 million VB developers who will potentially move to
VB.NET, I think you'd be quite lucky if 500 000 of those actually have a
working knowledge of the more important WinAPI calls. Those 500k might very
well be perfectly comfortable with C# almost straight away because they'll
probably at least be able to 'read' C/C++-style code, because they've had to
read the WinAPI docs, which give definitions & examples in C. Maybe I'm
right, maybe I'm wrong (or maybe there's no right or wrong), but I reackon
that for *most* VB developers, VB.NET is the better move.

I think getting into a huge argument about VB.NET vs C# is pretty silly in
any case, because even if the competent programmers make the VB.NET choice
initially, they'll probably end up learning C# anyway, because often online
resources list examples in either VB.NET or C# code, and not both, so at
least having a good working knowledge of both is essential.

As for the issue of type safety, I'm stand firmly in your camp on that
issue. IMHO, one of the major pitfalls of VB was that it didn't enforce
typed variables. Sure, typing takes a little bit more time than being lazy,
but sheesh it'll save you a lot of time in the long run.

Okay, you win with your example of VB.NET vs C# syntax, and the VB.NET
version there looks incredibly awkward, but I can think of plenty of other
examples where VB.NET looks a lot clearer than C# for the newbie who hasn't
programmed in either before.

As for my learning the C# operators, since I'd already had experience with
JavaScript, and to a limited extent Java and C++, I didn't have to learn
them ;-) I'd agree that for intermediate/experienced programmers, language
syntax isn't a huge issue, but for newbies, the Java/C++-style syntax can
look incredibly confusing. Parens, curly braces, vertical bars and operators
like != scare newbies, although I'd have to agree that they can make the
code a lot more elegant and easier to read than VB.NET code for non-newbies.

Anyway, thanks very much for your opinions, Ed. I'll probably write a
follow-up article, where I round up all the opposing opinions from yourself,
Peter Torr and the inevitable others (I'm surprised - Jonathan Allen hasn't
had a word on this yet ;-) and give the other side of the multi-faceted
coin, so to speak.

Cheers
Peter

--
Peter McMahon
http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
Africa


Quote:
> Well Peter, I wouldn't (and didn't) call working with the Win32 API

*advanced* programming, although there are some parts that
Quote:
> you'll need to be not only advanced, but ingenious to get working from VB.

> As VB5/6 only runs on the Win32 operating system, its pretty much a given

in my eyes that if you can't use it, you aren't quite up
Quote:
> to speed for average competency. How could anybody write a half way decent

front end (the target of VB dev) without at least knowing
Quote:
> SendMessage, RtlMoveMemory, and a handful of other easy enough to use

API's that they can use to grab some perf or functionality not
Quote:
> available out of the box. I'm not asking them to be able to thunk down to

the DirectX API's and code up Max Payne after all. Just
Quote:
> maybe use FindWindow() so they can stop multiple instances of their app

when needed and pop the already loaded one to the top using
Quote:
> SetForgroundWindow(). Seems like normal competency to be able to do that,

as it's a normal need for an application. Piggy backing a
Quote:
> ride on some other apps main thread before making the call, so your app

actually does pop to the front instead of flashing the
Quote:
> toolbar button, I would consider advanced. Not difficult to do actually,

but it would take an advanced person to realize it could be
Quote:
> done in the first place.

> Is there some other O.S. that you think VB programmers should be

programming against in order to consider themselves competent? I
Quote:
> don't consider being able to drag some controls onto a forms designer and

hook them to a data control, or 20, being a competent
Quote:
> programmer. And if you want to tell me that you are shipping apps using

only the out of the box functionality of VB, then I'm
Quote:
> telling you that you are shipping apps that aren't quite what they could
be.

>  Anyway, all things said and done, you are really going to be better off

learning both languages. And MC++ too.
Quote:

> But I still think newbies should learn C# first. That way they won't pick

up any bad habits. I think VB drives people towards bad
Quote:
> habits. Somebody posted earlier here stating VB was good because it didn't

enforce explicit typing, is a good example of this. Type
Quote:
> safety is paramount to a competent developer. It's also paramount to a

newbie, they just don't know it yet. So every time I see
Quote:
> somebody state that weak typing is a good thing, I just move their name

over to the "woefully mislead" side of the book, shake my
Quote:
> head, and hope I never have to work with them or on any code they ever
wrote.

> On migration of legacy VB apps. Why? I certainly wouldn't advocate

re-writing in VB.net or C# if the app is already complete, or
Quote:
> even partially complete. If it's a web app and you just have to have the

extra perf offered by ASP+, then that's another story.
Quote:

> As far as comfort with syntax, I guess the new guy really will find this
line of VB:

> If Not myObject Is Nothing OrElse IsNull( myOtherObject ) Then ...

> much more comfortable than the C# equivalent:

> if (myObject != null || myOtherObject == null) {...

> because the VB version reads more like English. hehehe sure it does. The

only reason you now understand what the VB line was trying
Quote:
> to say is because you read the C# one ;-)) And the distinction between

null/nothing certainly won't confuse them now, will it? ;-))
Quote:

> BTW, how long did it take you to learn the C# operators? An hour? Tough
barrier, that. <g>

> Anyway, your article isn't all bad, even though I disagree with your

reasoning. Some people really will do better learning VB.Net
Quote:
> then C#, just because MSFT told them they would. Strange how confidence in

being able to do something often is the only difference
Quote:
> between getting it done or not. :-))

> Keep Smilin'
> Ed Stegman




Quote:
> > Hi Ed

> > I totally agree with you about your stance towards advanced VB
developers
> > moving to C# instead of VB.NET. As I said in the article, C# has been
> > designed from scratch, so it doesn't have to bring anything bad along
for
> > "compatibility reasons". For advanced programmers (people who've worked
with
> > the WinAPI etc), language syntax isn't normally much of a barrier, so
there
> > aren't any compelling reasons not to go to C# except for migrating VB6
> > applications (although it could be argued that the changes are so great
in
> > VB.NET that you'd be better off rewrite the app, in C# at that).

> > However, for the not-so-advanced VB programmer, VB.NET is probably a
better
> > move initially (I did say that once you've learned VB.NET, moving to C#
is
> > almost painless because most things are done very similarly). This is
> > because your not-so-advanced VBer probably isn't comfortable with the
> > C++-like syntax, so they'd be more at home with VB.NET. Once they've
> > understood that basics of .NET development with VB.NET, they can easily
move
> > over to C#.

> > As for readability of C# vs VB.NET samples, I personally don't have a
> > preference. However, if anything, I think newbies will find VB.NET
samples
> > easier to read because its syntax is closer to written English than that
of
> > C#.

> > The point you make about VB developers living under the stigma that
they're
> > somehow not as good as other developers is very true though, and one of
the
> > reasons I learnt C# was so that if the same kind of stigma develops (or
is
> > carried across) to VB.NET, I can always label myself as a C# programmer.

> > Peter

> > --
> > Peter McMahon
> > http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
> > Africa



Sat, 29 May 2004 21:52:09 GMT  
 Which Language Should I Choose?
We now have a new class of snob programmers,  C# Snobs !
VB or VB.Net programmers can be as good or as bad as the programming habits
they learn or aquire.  As you know bad programs can
be written in ANY  language.
  I for one like VB.Net and
the power it adds to VB.  And the fact that it can afford even those
Power Secretaries the chance to use it , just points to the fact that
it is a language that can go as far as anyone cares to go with it.
 Oh, there are newsgroups for C# users..............
james
(by the way, I like C++ too. I just like VB & VB.NET better )

Quote:
> <snip>
> For you script kiddies, home hobbyists, and  power secretaries who will be
> writing Word.Net Macros, go ahead and stick with VB. You are the market
MSFT
> is targeting with the tool anyway.
> </snip>

> I'm disappointed to see that VB bashing is still a popular sport with
.NET,
> even though all the languages write to IL at the end of the day.

> Please don't assume that:
> - VB is the only language in which newbie or talentless programmers can
> write crappy applications
> - all VB programmers are, or should only be, "script kiddies, home
> hobbyists, and  power secretaries"

> Good programmers apply solid programming fundamentals to their work no
> matter what language they work in, VB included.

> Just my two cents worth.

> --
> Robert Chapman, MCSD
> Manager Applications Development
> prairieFyre Software Inc.
> http://www.*-*-*.com/


> > I couldn't agree more.

> > Furthermore, I think that his assumption that VB.NET is the logical
> language for VB6 developers to go is wrong too.

> > Any competent (Read: Doesn't use data controls. Has used Win32 API.
> Declares variables. Only uses Variants when absolutely
> > necessary. Never leaves the runtime a chance for evil type coercion.
<Add
> to list here>) VB developer has only been dating it until
> > something better showed up, and will be a much happier camper using C#.

> > And all that marketing {*filter*}about having to learn another language along
> with the BCL and the new programming paradigm of .NET is
> > malarkey. Moving to VB.NET they have to both learn something new and
> unlearn the old. Move to C# and it's just learn something new.
> > Most of which they already know and just haven't found out that they
know
> it yet. :-))

> > I've already taken 1/2 dozen VB6 programmers (good ones) and had them
> writing productive code in less than 2 days using C#. Every
> > one of them says it physically hurts to go back to VB6, and hurts even
> worse just to look at VB.NET.

> > And they like the fact they have function overloading, operator
> overloading, pointers when needed (take a bit more to get them up to
> > speed here, no doubt), shift operators, unsigned integer data types,
> signed bytes, and all the other stuff missing from VB. Where
> > was that in the article?

> > C# doesn't have any baggage, and one of the primary concerns in the
design
> was to keep things consistent and at the same time
> > prevent common mistakes that lead to bugs. It's much simpler to learn C#
> than VB.Net, even for new programmers.

> > What is there in VB.NET that makes it simpler to learn to write a stable
> program that is maintainable than C#?  C# is not C++, nor
> > is the learning curve on the same scale.

> > Another thing that makes C# worth the move for everybody, and a big con
> against moving to VB, is that C# has been submitted as a
> > spec to ECMA. This will significantly reduce the chance that the
language
> is changed willy-nilly between version releases of VS, as
> > VB has with every version. Or, will your VB6 apps just port straight
over?

> > These truths just keep getting swept under the rug by the marketing
> machine and clones repeating their drivel because of the massive
> > market share VB has that nobody in their right mind would want to lose.
> Especially current authors in the VB space. It's in their
> > best interest not to have current VB devs jump ship to C#. It diminishes
> their income potential. Hardly possible to write a
> > non-biased view given that fact now, isn't it?

> > For you script kiddies, home hobbyists, and  power secretaries who will
be
> writing Word.Net Macros, go ahead and stick with VB. You
> > are the market MSFT is targeting with the tool anyway. Oh yea, I forgot
> you can more easily perform late binding all day long. As if
> > late binding is a good thing and there aren't better solutions to use
> instead, like designing an interface and early binding to
> > it...

> > To make my point about how easy it is for a good VB programmer to jump
> right into C#, how many of you VB6 programmers find it's just
> > as easy (or easier) to read the C# code snips and examples you find here
> as it is to read the VB.NET ones?

> > One more thing. The programmers that used to be VB'ers and are now
C#'ers
> also told me they are happy to be out from under the
> > stigmata of being a 2nd class citizen because of their chosen tool.

> > Keep Smilin'
> > Ed Stegman





> > > >  These two languages have a bunch of features that make them
> > > > friendlier than C#, such as optional variable declaration and
> latebound /
> > > > typeless programming.

> > > Optional variable declaration === unmaintainable code.

> > > This is not a good thing. Teaching beginners that this is the way to
> > > code is not good.

> > > mule
> > > --
> > > "jewels and binoculars hang from the head of the mule"
> > >                                              Bob Dylan



Sat, 29 May 2004 23:19:39 GMT  
 Which Language Should I Choose?
Definitely. All Delphi programmers will be amused by the striking
similarities between Delphi's object hierarchy and the .NET Framework BCL -
all the way from TObject and System.Object to to TDataSet and
System.Data.DataSet :-) Obviously the syntax of Delphi (OP) is also closer
to that of C# than VB.NET.

Peter

--
Peter McMahon
http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
Africa


Quote:
> Just a quick comment about the Delphi programmer moving to VB.NET or C#,
> I my opinion C# is the better choice for Delphi programmers, because I've
> used Delphi for a short while and found alot of thing similar in C#. Also
> Anders Hejlsberg (one of the minds behind C#) also is the man behind
Delphi.
> (must explain the similarities ;-)

> regards,
> Copax.



> > Hi all

> > I've posted an article at
> > http://www.dotnet.za.net/viewarticle.asp?articleid=12 that deals with
the
> > issue of what language developers should choose when deciding to learn
> .NET.
> > It goes through all the major options (Java/C++/VB/Perl/Python/Delphi
> > programmer) and gives the pros and cons of each of the major choices
> > (VB.NET/C#/C++.NET/J#/JScript.NET etc). Hopefully this'll be of use to
all
> > of you who're bewildered by the huge array of options currently
available.

> > Peter

> > --
> > Peter McMahon
> > http://www.dotnet.za.net - The Premier Microsoft.NET Resource in South
> > Africa



Sat, 29 May 2004 23:26:49 GMT  
 Which Language Should I Choose?
Ed-

Quote:
> I couldn't agree more.

> Furthermore, I think that his assumption that VB.NET is the logical

language for VB6 developers to go is wrong too.

I agree with you here. . . .I think it comes down to personal preference
more than anything. . .

Quote:

> Any competent (Read: Doesn't use data controls. Has used Win32 API.

Declares variables. Only uses Variants when absolutely
Quote:
> necessary. Never leaves the runtime a chance for evil type coercion. <Add

to list here>) VB developer has only been dating it until

Quote:
> something better showed up, and will be a much happier camper using C#.

I was a VB6 developer like this. . . I played around with C# and VB.NET with
Beta 1 and my ultimate decision was to go with VB.NET. . .  I chose this for
a couple of reasons:

1)  I prefer the verbosity of VB.NET over C#.  With Intellisense and
Auto-completion, the speed of churning out code comparable, imho. . .

2)  The things I develop are primarily Business Applications and Controls
(now that I have inheritance).  These types of applications don't typically
need things like Pointers and Operator Overloading.

Quote:

> And all that marketing {*filter*}about having to learn another language along

with the BCL and the new programming paradigm of .NET is
Quote:
> malarkey. Moving to VB.NET they have to both learn something new and

unlearn the old. Move to C# and it's just learn something new.
Quote:
> Most of which they already know and just haven't found out that they know

it yet. :-))

So true.  Once I realized that I already knew most of this stuff, I was
almost instantaneously productive. . .

Quote:

> I've already taken 1/2 dozen VB6 programmers (good ones) and had them

writing productive code in less than 2 days using C#. Every
Quote:
> one of them says it physically hurts to go back to VB6, and hurts even

worse just to look at VB.NET.

It does hurt to go back to VB6. . . .Very, very badly. . .

Quote:

> And they like the fact they have function overloading, operator

overloading, pointers when needed (take a bit more to get them up to
Quote:
> speed here, no doubt), shift operators, unsigned integer data types,

signed bytes, and all the other stuff missing from VB. Where

Quote:
> was that in the article?

I think that these are very valid items, except that you can do Overloading
(not operator) in VB.NET. . .

Quote:

> C# doesn't have any baggage, and one of the primary concerns in the design

was to keep things consistent and at the same time
Quote:
> prevent common mistakes that lead to bugs. It's much simpler to learn C#

than VB.Net, even for new programmers.

What baggage are you referring to?

<snipped bits that I couldn't answer or that I agreed with>

--
Jacob Grass
Microsoft .NET MVP



Sat, 29 May 2004 23:46:14 GMT  
 
 [ 25 post ]  Go to page: [1] [2]

 Relevant Pages 

1. Which Language Should I Choose?

2. What programming language to choose?

3. What language to choose??

4. how to choose a language (was Re: Report on defect in M2 vs C)

5. Computer Language: Which one to choose?

6. Computer Language: Which one to choose?

7. What language to choose???

8. how to choose which language

9. OS written in High level Language (was What's the best language to start with

10. C as 2nd CS language (was Re: Languages ...

11. Choosing among overloaded function templates (or, I need a language lawyer!)

12. Choose a way to read from a socket

 

 
Powered by phpBB® Forum Software