POV-Ray : Newsgroups : povray.off-topic : Thinking about Languages again : Re: Thinking about Languages again Server Time
1 Oct 2024 09:23:47 EDT (-0400)
  Re: Thinking about Languages again  
From: Paul Fuller
Date: 27 Mar 2008 02:55:01
Message: <47eb52d5@news.povray.org>
I'm certainly not an expert on a plethora of languages but I do have 
some views on the points you raise.

1)  On Garbage Collection, I regard this as a huge factor in favour of 
C# and .Net.  The way that the language, type system, IL and GC are 
interwoven is superb.  It very substantially reduces the opportunity to 
create difficult to eradicate memory allocation / deallocation bugs.

Surely a C++ guru will know how to avoid or at least find and fix such 
problems but in .Net the problem to a large degree simply isn't there. 
End result in my experience is that it is actually practical for a 
non-guru to produce large sophisticated and functional programs.

And in regard to speed loss from GC, I really have not observed a 
problem.  You might think it is a huge overhead but it has not yet shown 
to be an issue at all for me.  I imagine that in certain types of 
applications it could be an issue in which case there are coding styles 
and techniques to minimise any impact and still remain within 'managed' 
code.

So it doesn't seem to be an issue at all.  People coming from other 
language backgrounds seem to have an impression that it is massively 
slower or a huge impost.  It seems like the opposite to me.

2)  Similarly this seems like a C vs C# pedigree thing.  Interfaces is 
certainly one answer.  The other i guess is that with the XML comments, 
Intellisense, Object Viewer, Class diagrams and other IDE goodies it is 
pretty easy to see the class jierarchy, properties, methods etc.

Story - My brother-in-law is a 20+ year veteran of C, C++ in embedded 
systems and under Windows using OWL and MFC.  My background is more PC 
and Mainframe assembler, a bit of C, lots of SQL and passing 
acquaintance with C++ (which I detest) and Java.

As I got into C# and .Net I found it to be very well thought out, rich 
and powerful.

Whenever we would discuss programming stuff he would raise two big 
things - GC and lack of header files (and therefore class prototypes). 
Here is a typical conversation that was unresolved for both of us:

Him:  How do you do X in .Net ?
Me:   Ah, that is still just like X
Him:  How do you do Y in .Net ?
Me:   You don't really have to or want to do that
Him:  I like to do that
Me:   But why when you don't need to
Him:  Well its good to because ...
Me:   But that isn't a problem in .Net because ...
Him:  Well I like to do it and it is a good idea
Me:   I can see that in C++ but they've really done away with that 
problem in C# / .Net
Him:  Well that can't be because I've seen problems when you don't do that
Me:   Yeah in C++ but you don't need to in C# and if you really want to 
you could probably do it using ...
Him:  Well I like to do it
Me:   Ok.

Guess what ?  Recently he's started really using VB.Net and now C#.Net 
and he pretty much raves over the improvements.  Suddenly there is no 
more discussion about the resistance points but we have fun talking 
about all of the neat new things and how well it all fits together.

Then there is the framework which to me seems more comprehensive and 
consistent than anything for Java.

And I think that LINQ, anonymous types, extension methods etc in .Net 
3.0 / 3.5 are really extending the framework in powerful ways while 
maintaining and extending the core.

Call me a C# / .Net fanboy but don't call me one for Microsoft.  I 
reckon they should put the C# guys starting with Anders Hejlsberg in 
charge of the next OS they do.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.