Re: In need of .NET advocacy



"Alex" <response@xxxxxxxxxxxxx> wrote in message
news:3b0mc4F6eboo6U1@xxxxxxxxxxxxxxxxx
> Thank you very much for your replies, they (especially Sean's Olaf's and
> Nick's) were very informative!
>
> First, a minor nit picking:
>
> Sean Hederman> There is a pattern called IDisposable that allows you your
> deterministic clean-up.
>
> Not really, as it depends on the user of the object to manually call
> Dispose() at the appropriate time.
> I had this problem with Java and it is the same in C#.

Whether it's manually called or not does not impact it's determinism. A
naked pointer in C++ has deterministic clean-up, but you have to call delete
to get it. If you want smart pointer equivalence, wrap the reference in a
using block.

> I hope that C++/CLI would solve it in an elegant way (i.e., allowing
> destructors in managed objects).

It does. C++/CLI supports deterministic cleanup via ~ClassName.

> Now, to the bulk of the answers.
>
>The comments mentioned several advantages:
>
>1) Productivity increase.
>
>Is it possible to get some "official" data from a company?
>It is one thing to say "Joe Sixpack claimed on m.p.d.g that he experienced
>a productivity increase of 64.7% since switching to .NET" and quite a
>different thing to point people to the site of a commercial (preferably
>well known) company stating the same.

Does Microsoft count? ;-)

>Also, it would be interesting to break down the productivity increase.
>Did the savings come from an easier transformation of the design to code?

Yes, much easier.

>Faster coding?

The tools help you with coding if that's what you mean. Also C++ to C# meant
a cleaner syntax with less gotchas and ambiguities.

>Less bugs to fix?

Yep. No swallowed error conditions via unchecked HRESULT's. No dangling
pointers, no buffer overruns, no memory leaks.

>More efficient tracking of the said bugs?

Nope. Generally one uses third-party tools for that.

> More understandable code?

Yes, C# is much easier to read than C++.

> Something else?

One coherent set of libraries.

>Did all activities (analysis/design, coding, QA, refactoring, support)
>benefit equally?

No, Id say coding was helped the most by the tool, and the Framework also
assisted A&D, coding and QA a bit.

> 2) Security.
> Again, real-world examples will be appreciated.

Code Access Security and no buffer overruns are the biggies here.

> 3) Portability and interoperability.
> I don't see any advantage over using C++ with platform-independent library
> (like Qt, ACE, WxWidgets, etc.)

Read the posts. Sure, you can do it in C++, but C++ is a pain to develop for
in comparison.

> 4) "Future".
>
>Not really an issue in this particular case because future platforms will
>still support COM and native execution.
>As somebody mentioned, the availability of newer Maximas did not cause
>older Datsuns to stop working.

No, but do you really *want* to drive an old Datsun?

>5) Framework.
>Can anyone comment what parts of the framework proved to be "lifesavers"
>compare to the "old way"?

Reflection, unified type system, single string class (happiness), Remoting.

> 6) RAD features.
>MFC had them, no?

No. I suggest you write a simple MFC windows app, and then do the same in
Windows Forms. Chalk and cheese.

>7) Programmer availability.
>I guess that if a lot of VB6 coders are "forced" to switch to VB.NET then
>the market of .NET developers will get a big boost.
>However, no offence intended but VB6 did little to promote good programming
>practices and a good number of VB6 coders should not be let anywhere near a
> >product.

Agreed, but then I also believe that large numbers of C++ coders should be
similarly constrained. Also, you seem to be suffering from a fairly common
misapprehension that .NET is basically C# & VB.NET. You can also code .NET
using
C++, either ANSI C++ (using Managed C++ Extensions), or the much easier to
read C++/CLI.

>My own (admittedly biased) perception is that top developers would achieve
>better results given the power and flexibility of C++ but the average
>developer will >do better with managed code.

Disagree completely:
http://codingsanity.blogspot.com/2005/01/return-of-whiny-gripes-about-net.html. I
love this attitude by dyed-in-the-wool C++ devs that C++ is somehow "better"
than other languages. It's not. It's just a language. It does some things
better, and some things worse than other languages. I don't understand how
you can come up with the idea that top developers won't achieve better
results by using better tools. For writing most applications today, .NET is
a far better tool than most C++ implementations. In the few areas where it's
not, fine use C++. Premature optimization is a mistake no matter what the
context, and developing 100% in C++ because of the 1% (or less) where you
really need it is a clear case of premature optimization.

Alex, I'm struggling to understand something. You asked for pro/cons to
persuade others and then flat out admitted that you're biased against what
you're supposedly championing. Your statements appear designed to assert
that C++ is better than .NET/C#. I'm struggling to reconcile this with your
assertion that you're not a troll, and it seems I'm not alone.

>8) Stuff that nobody commented on (yet)
>Reflection, 3rd party tools (NUnit, etc.), ...


>Best regards,
>Alex.
>--
>Please replace myrealbox with alexoren to reply by email.



.



Relevant Pages

  • Re: Python vs Ruby
    ... Are you saying that those two languages ... > debugging it - and the studies specified debugged lines - then the ... deterministic connection of coding time to LOC can't really hold: ... extreme density, such as Perl) delight in producing "one-liner" ...
    (comp.lang.python)
  • Re: grown out of coding
    ... I now find I'm really tired of coding - sure, ... I have a bunch of questions that pop to mind immediately. ... or systems software or tools where your end-users are developers? ... or does it sound like a luxury to "just" be able to react as needed? ...
    (comp.databases.pick)
  • Re: Conscious antipattern behavior
    ... >as an indication that the language or the ... >are informal standards of good coding practice ... refactoring unless the customer is at the door screaming. ... and are usually not met if the developers try to do any proper design ...
    (comp.lang.cpp)
  • Re: calling a method from a method
    ... This is unlike languages such as Java and C++ where the source ... At least in Java they can by alternating classLoader and Class ... JavaScript/JScript is the only real principal difference (in this ... The coding style and coding approaches are just the ...
    (comp.lang.javascript)
  • Re: Programming Language Productivity: The Stupidity of Programmers
    ... >> Some languages are designed to maximize writing speed. ... >> debug cycle, possibly including unit testing. ... >> cycle is much longer than the initial coding and compile times. ... change some implementation detail (due to langauge design or bad coding ...
    (comp.object)

Loading