Re: The Demise of C#



Hi Kevin,

I'm sorry but that second part wasn't directed at you. I was in a hurry and
crammed two messages into one after browsing through the boards - I apologize
about the confusion. The second paragraph was in response to someone writing
about how a .NET developer is more likely to understand object-oriented
design and reusability than a C++ programmer. I would have to disagree, at
least based on my experience. That said, I know plenty of C++ programmers who
shouldn't be calling themselves as such - the kind of C++ programmer that
thinks that templates are only useful for making collections of arbitrary
types, for instance.

As for the first part, syntactic differences aren't going to make or break a
language, but between VB.NET and C#, that's among the most significant
differences between the two. What I would like to see is a hybrid between the
two languages.

There are syntactical conveniences (like the string concatenation operator)
in both languages would be nice to have at once. Global functions may not be
suitable for a large-scale design, but the .NET languages are just as
suitable for rapid application development where globally accessible
functions can be quite suitable. Furthermore, a VB module provides the
ability to declare state variables with private modifiers, and can be
contained within a custom namespace, so as far as I'm concerned, a module is
superior to a class with nothing but static functions, as the members of such
a class cannot be brought into the global namespace.

Operator overloading is another example. It seems like a shame that VB users
must cope without the syntactic convenience simply because operator
overloading isn't 'VB-esque'. Well, neither was inheritance and polymorphism.
Polymorphism to a VB programmer prior to .NET was to use variants.

Syntax and small features like the addition of modules is pretty much all
there is to go by when judging the differences between .NET languages.

- John

"Kevin Spencer" wrote:

> Hello John,
>
> I understand generics fine thank you. Generics have their place. But you
> missed my point. And I'm not going to waste anyone's time debating it.
>
> And please point out to me where I called myself a C++ programmer. I am
> simply a programmer. I can program in a half-dozen languages, one of which
> is C++, although I tend to avoid it. C# is an excellent RAD language, and
> when I need to go lower than C# I generally go to C. I can also program in
> VB.Net, but tend to avoid it because of the requirements of many of my
> applications, which require things not available in VB.Net, like pointers.
>
> No need to get personal, eh?
>
> --
>
> Kevin Spencer
> Microsoft MVP
> ..Net Developer
> What You Seek Is What You Get.
>
>
> "John" <John@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> news:EA0A8BA5-615C-4D7B-B8FA-4E6C0B920B32@xxxxxxxxxxxxxxxx
> > I'm sorry Kevin,
> >
> > but Option Strict has no bearing on the string concatenation operator in
> > VB,
> > and the & operator has nothing to do with weak data typing. It is simply a
> > syntactical convenience that has no implicit effects (it is explicitly
> > stating that both operands are going to be converted to string as
> > necessary),
> > and the expression, '123 + 456' in C# is not the same as '123 & 456' in
> > VB.
> > While I agree with you for the most part about the demise of C#, I found
> > it
> > pretty odd that you do not understand this distinction.
> >
> > Any C++ programmer who has a poorer understanding of reusability and
> > generic
> > design than someone who started on VB or C# should not be calling
> > themselves
> > C++ programmers, for any moron who even half-understands the STL should
> > know
> > far more about design patterns than anyone who thinks that the .NET
> > framework
> > library classes are the epitome of object-oriented design.
> >
> > - John
> >
> > "Kevin Spencer" wrote:
> >
> >> > For instance, take the string concatenation operator from VB, &, which
> >> > automatically converts the left and right operands to strings and
> >> > returns
> >> > a
> >> > combined string. Why is there no equivalent in C#?
> >>
> >> +
> >>
> >> The "ToString() part is simply strong data typing. Try turning Option
> >> Strict
> >> ON for a change.
> >>
> >> --
> >> *sigh*,
> >>
> >> Kevin Spencer
> >> Microsoft MVP
> >> ..Net Developer
> >> What You Seek Is What You Get.
> >>
> >> "John" <John@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
> >> news:DA9BC3C2-D058-46EF-A5BF-3AABD03AA6AC@xxxxxxxxxxxxxxxx
> >> >I personally think there are some really great things in VB.NET and it's
> >> >a
> >> > real crime how C# doesn't implement them. If you ask me, VB.NET is a
> >> > better
> >> > language for the rapid-application development needs of most .NET
> >> > developers.
> >> > I still code in C# over VB most of the time, but there are many things
> >> > I
> >> > envy
> >> > in VB that I find lacking in C#.
> >> >
> >> > For instance, take the string concatenation operator from VB, &, which
> >> > automatically converts the left and right operands to strings and
> >> > returns
> >> > a
> >> > combined string. Why is there no equivalent in C#? Sure the '&'
> >> > character
> >> > would conflict with the bitwise and, but there are plenty of other
> >> > symbols
> >> > (ex - Lua's '..') that could be used in place, and it's absolutely
> >> > silly
> >> > that
> >> > someone has to write:
> >> >
> >> > some_string_output_function("Blah blah: " + x.ToString() + ", " +
> >> > y.Totring() + " blah blah " + z.ToString + ", " q.ToString() );
> >> >
> >> > when they could have simply wrote something like:
> >> >
> >> > some_string_output_function("Blah blah: " .. x .. ", " .. y .. " blah
> >> > blah
> >> > "
> >> > .. z .. ", " .. q);
> >> >
> >> > There's nothing implicit going on here; the operator has
> >> > clearly-defined
> >> > behavior. It makes little sense to me why C# does not have things like
> >> > this
> >> > that would do nothing but make the code a little more readable and
> >> > convenient
> >> > to write.
> >> >
> >> > I can understand many of the reasons for C#'s more explicit nature like
> >> > requiring explicit casts (safety) and explicitly indicating where you
> >> > want
> >> > to
> >> > use dynamic binding (performance), but it's silly to deprive a language
> >> > of
> >> > something useful just because it isn't characteristic of the language
> >> > from
> >> > which it was modeled.
> >>
> >>
> >>
>
>
>
.



Relevant Pages

  • Re: The Demise of C#
    ... > There are syntactical conveniences (like the string concatenation operator) ... > in both languages would be nice to have at once. ... > Polymorphism to a VB programmer prior to .NET was to use variants. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: 5th anniversary of 3.4.3, ideas
    ... Yes if you go the OO design route, ... speculate that you have no significant experience on the OO topic. ... in OO languages to provide the natural OO implementation. ... programmer to code decently. ...
    (rec.games.roguelike.nethack)
  • Re: Laws of Intelligence -2
    ... > I was simply saying that raw materials are unintelligent. ... "design" of a wasps' nest. ... >>>animated characters in those films, and your programmer was ...
    (talk.origins)
  • Re: Another $17.4 Billion WASTED
    ... program from shrouded code is anything but "pathetically simple". ... perhaps with user-selected features and compiler ... uncommented code from a programmer that is using ... the detailed software design document put together by the PHD that ...
    (rec.autos.driving)
  • Re: Is C99 the final C? (some suggestions)
    ... >> inevitably lead to BUS errors, ... > There's ample precedent in other languages ... call stack in a well-defined and programmer controlled way. ... semantics similar to C's function declaration. ...
    (comp.lang.c)