|
>>>
If you're programming for someone else, would you prefer explaining to her about the standard artifact in Java/C# for dealing with such situation (namely derive from an interface and delegate to a private member)?
<<<
Many times when I consult or program for someone, I'll never meet the people that will eventually maintain my code. Therefore, I take it as part of my responsibility to use techniques that are what I feel are standard. It's been my experience that MI is not something that the average programmer fully understands. You'll also note that people such as Bruce Eckel of the C++ standard committee shares this belief and also recommends against using it accept in very rare situations where there are no other options.
>>>
...but when it is the appropriate thing to do it can save your life. <<<
I agree
>>>
It goes along with C++ philosophy of treating programmers as grown adults and let them have access to all the tools available, dangerous as they may be.
<<<
This has nothing to do with treating people as adults and everything to do with the practical realities that part of my responsibility as a programmer is to turn in code that 1) gets the job done and 2) requires as little in terms of maintenance and learning as possible.
>>>
I know you're a C# guru, so I'd like to know whether there is a pragmatic reason for leaving MI out of this language. Does it make reflection or some other feature harder to implement? That could be a reasonable case against MI.
<<<
If you look closely at C# you'll see many situations where the language left out features that are C++ because the risk/reward ration was deemed to high. Case fallthrough is a perfect example of this. Most experienced developers are not going to commit an error with this and love having it at their disposal. However, as Eric Gunnerson explained to me, its not technically needed (as there are other ways to accomplish the same thing) and only serve to get less experienced programmers into trouble. Therefore, while you might very well be a highly-competent programmer who knows MI inside/out, the simple fact is that it gets too many developers into trouble to be worth its risk with its inclusion in the language.
Cheers,
Tom Archer
Author, Inside C#
|
|
|
|
|
I think that IS A is *always* a contentious design decision. BEHAVES LIKE A is (almost) always a more conservative and pragmatic analysis. You should work on the assumption that the latter is the case, and only solidify to an IS-A relationship if you prove, late in the design process that the relationship holds.
Matthew Adams
Development Manager
Digital Healthcare Ltd
|
|
|
|
|
We were having nice simple polls like do you like the new VS.NET UI or how many of you like C# or some such nice simple stuff.
Now it's all templates and multiple inheritance.
And that Georgie Boy is not even to be seen.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Nish [BusterBoy] wrote:
And that Georgie Boy is not even to be seen.
He's probably gloating
I don't mind George, he's a bit narrow minded, but at least he is passionate.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
Christian Graus wrote:
but at least he is passionate
True. If anyone can be called passionate, then George sure qualifies...
And he was always alone, facing the multitudes.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
|
It was kinda heroic I say
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Nish [BusterBoy] wrote:
And he was always alone, facing the multitudes.
Yes, but if I went to /. I would be the same, that doesn't prove anything barring that the greatest zealots are the ones who seek alternative opinions so they can disagree with them and feel the justice of their cause...
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
Actually this one was Troy Marchand's fault. We got into a discussion about multiple inheritence and whether or not you can do it in .NET and then one thing led to another and here we are
cheers,
Chris Maunder
|
|
|
|
|
Chris Maunder wrote:
whether or not you can do it in .NET
I thought you cannot!
Though maybe you can from C++ but even that I am not sure.
Can you have MIed managed classes?
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Nish [BusterBoy] wrote:
We were having nice simple polls like do you like the new VS.NET UI or how many of you like C# or some such nice simple stuff.
Now it's all templates and multiple inheritance.
"sarcasm=on"
Apart from the fact that this poll appears to be about "Inheritence" (I assume it has to be, since it was pointed out as typo some time ago and it's still not corrected) you seem to have missed the fact that any true .Net fan was supposed to slam on any C++ features that C# doesn't quite support on those polls. All you have to do is just to vote "I've never used templates" or "I see no need" for MI etc. You could also express deep desire to Internet-enable your application (no matter what) and you could take a good laught at those loosers who ship with the source code. There are endless possibilities just waiting for the real supporters of .Net to explore...
Nish [BusterBoy] wrote:
And that Georgie Boy is not even to be seen.
"sarcasm=mostly off"
As the CodeProject becomes more and more ".Net polluted" I simply tend to spend more time elsewhere. Oddly enought it seems like the old CodeGuru site has many good articles recently. I hang around SourceForge most of the time doing some coding, which is far more usefull and entertaining than wasting time on useless arguments. And that is where I can be seen quite easily - you just have to know where to look at
|
|
|
|
|
Welcome back george
George wrote:
Oddly enought it seems like the old CodeGuru site has many good articles recently.
Sacrilege!!!
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
|
Colin Davies wrote:
gotta agree with you there
Colin
Since CP is an MS-fan site of sorts CP mus keep up with new MS trends. Surely you cannot expect CP to go back to 16 bit windows and DOS.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
But there is the concern that if CP gets too net'ish, then all the C programmers who write for Windows will go somewhere else.
I am letting my MSDN Mag expire. I am not going to renew WDJ. Will pickup C/C++ Users Journal.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Tim Smith wrote:
But there is the concern that if CP gets too net'ish, then all the C programmers who write for Windows will go somewhere else.
That's a sad thought. I don't want CP losing good C++ guys
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
|
|
Colin Davies wrote:
have a bit of a feeling that it is becoming an anti C++ site now, [ that's just my feeling ]
Tim Smith feels so too, though not as harsh as that.
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
|
I have yet to feel that CP is moving away from C/C++. If anything CP has just added a new dimension. Our family got bigger and we will have to adjust.
But I do get the feeling that MS is moving away from C/C++. But I don't agree with others who think they are abandoning it.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
I don't understand why programmers are feeling that way. I think C/C++ programmers are far better equipped to learn any new technologies and languages, than a programmer of any other language. A C++ programmer can learn VB very easily and can appreciate the power of VB much more than a VB programmer himself. Frankly speaking learning VB made my understanding of COM/C++ very strong. I did not loose anything but I did gain a lot because now given a problem I can select the appropriate tool and complete the job easily. There are so many problems where if I would have just sticked with C++ the problem would have took at least twice or thrice the time it took using VB and reverse was also true. Most C++ programmers have a very low opinion of VB but when they learn it they seem to appreciate it. The samething applies for C#, .NET.
As C++ programmers we are in a better situation to understand what it takes to develop good .NET applications than anyone else. There are lots of good stuff in .NET learning which only adds to our knowledge. What is there to loose in learning C#, VB.NET? In fact I love that I got to do so many things which would have been difficult for me to do plainly in C++. I think a programmer (esp. C++ programmers) should select what is best for a job rather than specialize himself completely in one field and know nothing about other fields. I think strong points of a programmer are logical thinking, his ideas and understanding of concepts rather than his grasping of syntax of a particular language.
I find that a strong C++ programmer can learn VB/C# very easily. But a primarily VB programmer can't do the same. I simply don't understand why some very good C++ programmers have become so fanatic that they are not even trying to give a shot at learning .NET or consider it as a threat. In my experience more you learn .NET more you appreciate it. There are lot of valuable points in it and there is nothing to loose. Learning .NET makes you a better C++ programmer as you also learn to apply some concepts of .NET to your non .NET C++ apps. Same thing applies to learning java or perl for that matter. So where is the problem?
|
|
|
|
|
Nice post Rama.
But I wish you had split the long post into at least 3 paragraphs
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
|
A serious question: what concepts of .NET have you taken and applied to your non .NET C++ apps? From what I can see, C# is simply a subset of C++, so I find it hard to see what new things I can derive from that language. BTW, this is not slamming C#, as I believe it was _supposed_ to be less complex than C++.
Also, I just have to say, VB has never improved my capabilities in C++ either. It hides detail, which is valuable if you don't need a lot of customization or fine control. But I have never come up with any new techniques from that language. In contrast, C++ always improves my understanding of other languages because I always know what's going on "under the hood".
CodeGuy
The WTL newsgroup: over 1300 members! Be a part of it. http://groups.yahoo.com/group/wtl
|
|
|
|