473,836 Members | 1,512 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Strategic Functional Migration and Multiple Inheritance

Some Sr. colleges and I have had an on going discussion relative to when and
if
C# will ever support 'true' multiple inheritance.

Relevant to this, I wanted to query the C# community (the 'target' programming
community herein) to get some community input and verify (or not) the
following
two statements.

[1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional Migration
(SFM)' (see PS below).

[2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
Functional Migration (or 0.9% to 0.49%).

Do these percentages seem about right? (less than 1% of the target
programming
community are GOOD at SFM)

Thanks ahead of time for any relevant QUALITY input.

Shawnk

PS.

Strategic Functional Migration (SFM) is described in the post following this
one.

PPS. I submit to my fellow colleges that the answer (point spread) determines

[A] Short term mitosis of the few to pioneer a new language incorporating C#
productivity with C++ (SFM) powers

[b] Long term community evolution and industry migration away from C# as a
'core competency' solution (subtle point)

Both A/B, in turn, instantiate the 'early adopter' model in the compiler
market.

PPPS.

I have a 'core competency' project I want to do that would be a lot easier
if I
could use SFM with C#.
Jun 1 '06 #1
60 4955

Continued Post : Strategic Functional Migration and Multiple Inheritance

----definition----

Strategic Functional Migration : SFM

[1] Factoring out common functionality to base classes.

[2] Using common functionality via the Implementation Inheritance (II)
feature of Multiple Inheritance (MI).

----discussion----

In this post I would like to forgo any mention of 'under the cover' issues
when
implementing multiple inheritance in compilers. Thus to focus on user (not
vendor) issues (in 'strategic code library design') over long periods of time.

[Subtle point] This arena of a comporate 'code base' is the 'core competency'
code that forms the heart of any corporate IP driven (Intellectual Property)
budget expenditures. Thus infering C# to be more suited to 'non-core
competency' code (software infrastructure, common stuff, UI, General
Business apps).
Core competency examples would be data analysis (Telemetry, data mining, high
performance data flow, complex process and automation 'software engines',
data probes, etc.) and data processing.

Thus, this post is not relevant to 'Time' or 'Cost' focused projects but
towards
more complex designs (rich functional landscape for functional migration)
and 'Quality' driven projects. So, for example, IT Bandage programming (not
to be
pejorative) is not of interest here.

(Obvious : All projects have TCQ ('tque' - Time, Cost, Quality ) -
Strategic planning and technology investment is the venue and focus here)

Note : 'True' Multiple Inheritance (MI) exhibits both

(1) Implementation Inheritance (II)
and
(2) Virtual Inheritance (VI)

See;

http://en.wikipedia.org/wiki/Inherit...mputer_science)
http://en.wikipedia.org/wiki/Virtual_inheritance
http://en.wikipedia.org/wiki/Multiple_inheritance

Interfaces provide the semantics for (1) but not (2).
Thus interfaces, by definition, do not support implementation inheritance
(II).

See;

http://en.wikipedia.org/wiki/Interfa...mputer_science)

Note : Any discussions/responses on SFM and 'polymorphic substituability '
(multi-role entiies - role substituion - interface aspect - programming
perspective - orthogonal hierarchies) ARE related (and
relevant) but NOT requested. This allows the post to focus responses on SFM
awareness/ignorance in the target programming community.

If you must respond on the merit of SFM (we all have passion that makes
significant
impact on the community) - please relate your key points to quotes from the
wikipedia references. This helps Wikipedia contributors (writers) reuse your
arguments and
(eventually) reflect your ideas back into this target programming community.

----summary--

In the post following this post - an example of 'strategic functional
mirgration' is given using non-GOF patterns;

- EOP (Event Observer Pattern) and
- SMP (State Machine pattern)

(no code in example - just a quick Sr. Architect hip shot)

Shawnk
Jun 1 '06 #2
Continued Post : Strategic Functional Migration and Multiple Inheritance

Example of 'Strategic Functional Migration' : SFM

Pattern [A] - Extended Event Observer : Client, Subject, Observer, Binder,
Event_Recorder, Event_log, Event_Viewer

Pattern [b] - State Machine ----------: Machine, Switch, Map, ------------
State_Recorder, State_log, State_Viewer

The common 'logging/logger' code is factored out.

A new 'Logger Pattern' is formed for histories, logs, etc. - which includes.

Item, Log, Recorder, Viewer, Binder (to bind base roles together into a
'logger' entity - (pattern stage))

---- code reuse result via II (Implementation Inheritance) -------

Patterns A/B use a generic 'logger' entity based on <_itm_typ> as
_Evt_typ/_Sta_typ

==== KEY DIFFERENCE OF VIRTUAL INHERITANCE (intefaces) VS IMPLEMENTATION
INHERITANCE ==========

Pattern A/B logger roles can STILL INHERIT from other ESSENTIAL BASE CLASSES

----- Key point by definition ------------------

SFM (Strategic Functional Migration) requires functionally orthogonal
decomposition of 'replicated code'.

Decomposition must not effect or require pre-existing (pre decomposition) base
class inheritance changes.

----- Key point example ---(pre/post decomp) ---

II = Implementation Inheritance
MI = Multiple Inheritance
VI = Virtual Inheritance

Pre Decomp Pattern A/B

- Both had a 'debug/tracer' base class based on a Tracer debug pattern

Post Decomp Pattern A/B

With II ....

Tracer and Logger patterns are separate and remain functionally orthogonal

Without II using VI (as in C#) ....

Tracer and Logger patterns must be combined and then inherited as a 'super
logger with tracing' entity

------ core competency code point --------------

The functionally orthogonal nature of core competency code requires the 'mix
and
match' of the core role models (pattern participants) which provide the
functional archetypes of the core functions (the IP - Intellectual property).

Thus (and therefore) SFM (Strategic Functional Migration) is ONLY possible
with
MI/II language features.

Note : Arguments proposing 'Mixins and other contrived workarounds' (as an
alternative SFM mechanism to II) prove the ignorance of the proposer in:

(A) SFM itself
(B) analytical metrics comparing different SFM mechanisms
(C) Formal comparative analysis of different SFM mechanisms

The prevelance of such SFM implementation arguments (or responses) is an
informal indicator of the point spread (level of target community ignorance)
relative to SFM, core competency, strategic investment, IP (intellectual
property) and other executive engineering level issues.

Shawnk

PS. Personally I concede that the logger/trace entity (above) integration
approach (SFM, etc) can be argued (MI-II not needed,
VI-SII is fine).

To extend this and argue that (thus and therefore) ALL entities can be
integrated into SUPER-entities is incorrect. Everything would end up as one
big
super entity.

Such arguments are based on not understanding II, SFM, functional
orthogonality, MI
and strategic code reuse.

Ultimately, all 'super-entity' code reuse arguments are founded on ignorance
of
SFM and can not (logically) exist without this ignorance.

PPS.

Since such arguments (SUPER-entities) are prevalent in the community by
'expert'
pundits, we can infer that the target programming community is;

[1] Predominantly ignorant of 'Strategic Functional Migration' (SFM)
(and/or)
[2] The target community has not evolved to the point of recognizing SFM AND
'moved to a language' that supports it.
OR
[3] SFM (Strategic Functional Migration) is not an inherent/desirable
phenomena/mechanism of code reuse

So: if [3] then [1] and/or [2]

The pragmatic/real world/logical wrap around is;

[1] Ignorance : results in the pragmatic (but not theoretically true) [3]
[2] Evolution : results in the pragmatic (and --- theoretically true) [3]

based on [3] being theoretically (objectively) true.

The logical 'core focal point' of the argument is:

[X] Subjective : Programming community understanding of SFM as a 'pattern
refactor mechanism'

[Y] Objective : Inherient utility and structural reality (objective truth)
of SFM as a 'pattern refactor mechanism'

Thus the question on entry to this discussion,

" What percentage of the target community is GOOD at SFM? "

Projection : To argue SFM based on other (non-II) mechanisms is ultimately
an attempt to display [1] or prove [3]

---------------

Caveat : [2-B] - ...moved to a langague

CURRENTLY there is no (production ready - prime time) language that supports C
like syntax, C# productivity and C++ II (that we can agree on :-). If there
was
(such a language) then, it can be argued, that the community has already
evolved
and merely waiting for a solution to migrate to. If any one knows of such a
language please respond (Efiel, etc).
Jun 1 '06 #3
I would be interested in knowing how you came to the numbers that you
have in points 1 and 2.

While I agree that implementation inheritance would be useful, if the
numbers that you claim are anywhere near correct, you have already answered
why MI is not supported in modern languages (meaning most .NET languages,
Java).

In all of this, I didn't see a recommendation on how such functionality
might be included in C# (proposed language syntax, rules, etc, etc). Why
not show something of that nature?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:37******** *************** ***********@mic rosoft.com...
Some Sr. colleges and I have had an on going discussion relative to when
and
if
C# will ever support 'true' multiple inheritance.

Relevant to this, I wanted to query the C# community (the 'target'
programming
community herein) to get some community input and verify (or not) the
following
two statements.

[1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional Migration
(SFM)' (see PS below).

[2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
Functional Migration (or 0.9% to 0.49%).

Do these percentages seem about right? (less than 1% of the target
programming
community are GOOD at SFM)

Thanks ahead of time for any relevant QUALITY input.

Shawnk

PS.

Strategic Functional Migration (SFM) is described in the post following
this
one.

PPS. I submit to my fellow colleges that the answer (point spread)
determines

[A] Short term mitosis of the few to pioneer a new language incorporating
C#
productivity with C++ (SFM) powers

[b] Long term community evolution and industry migration away from C# as a
'core competency' solution (subtle point)

Both A/B, in turn, instantiate the 'early adopter' model in the compiler
market.

PPPS.

I have a 'core competency' project I want to do that would be a lot easier
if I
could use SFM with C#.

Jun 1 '06 #4
Nicholas,

Thank you for your response.

The numbers in points [1] and [2] are completely contrived.

We wanted to articulate the difference between (1) understanding and (2) use
of II (Implementation Inheritance). We also wanted to establish a metric
level for
change (by evolution, user migration to other languages, user loyalty (as in
C++)) that would account for the lack of MI (Mulitple Inheritance) in recent
language offerings (java, C#, D++).

The metrics of 'less than 1%' seemed to be a reasonable way to account for
the apparent 'level of interest' (lack of interest) in MI/SFM among 'expert'
and 'senior' level programmers in the non-C++ programming communities.

As to 'why MI is not supported' - the lack of interest or the response to
this post is an indication that verifies (informally) the 'less than 1%'
water mark. And yes, ... it appears that the II, MI and SFM are not
used/understood/desired in the non-C++ programming communities :-)

We wanted to post this question in several language communities prior to any
other actions (such as recommendations , etc). Also, making recommendations
would be distracting to an audience/community that has no
interest/understanding/desire of the utility of MI/II/SFM.

Your good point about a recommended design implementation for MI in C++ (in
my mind) is really hinged/connected to Anders position of 'no MI in C#'.
Since all the videos, interviews, etc. (That I have seen) indicate he has NO
interest in MI/II/SFM it is reasonable to assume that C# will always be a
less expressive (relative to functional orthogonality) and powerful language
compared to C++.

Note that C# is an excellent language and wonderfully expressive from a
productivity standpoint (type safety, etc). Its current contribution via LINQ
is excellent as its historic introspective (reflection) and binding
(delegates,even ts) mechanisms. As a mechanism for automated pattern detection
and refactoring it fails (IMHO) because of the importance of functionally
orthogonal mechanisms (such as MI/II/SFM, etc).

The lack of use of .NET in the Microsoft Vista implementation is something
of interest (to the MI/II/SFM issues) that we will pursue (as opposed to C#
recommendations ) to get a feel for MI/II/SFM issues in various programming
communities.

Thanks again for your input.

Shawnk

PS. The lack of MI/II/SFM in .NET is a basic, serious and fundamental flaw
(IMHO) of the 'operating system' (as in .NET) itself. This, of course, hinges
on the validity of point [3] which is the basis for Ander's position on MI in
C#.
"Nicholas Paldino [.NET/C# MVP]" wrote:
I would be interested in knowing how you came to the numbers that you
have in points 1 and 2.

While I agree that implementation inheritance would be useful, if the
numbers that you claim are anywhere near correct, you have already answered
why MI is not supported in modern languages (meaning most .NET languages,
Java).

In all of this, I didn't see a recommendation on how such functionality
might be included in C# (proposed language syntax, rules, etc, etc). Why
not show something of that nature?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:37******** *************** ***********@mic rosoft.com...
Some Sr. colleges and I have had an on going discussion relative to when
and
if
C# will ever support 'true' multiple inheritance.

Relevant to this, I wanted to query the C# community (the 'target'
programming
community herein) to get some community input and verify (or not) the
following
two statements.

[1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional Migration
(SFM)' (see PS below).

[2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
Functional Migration (or 0.9% to 0.49%).

Do these percentages seem about right? (less than 1% of the target
programming
community are GOOD at SFM)

Thanks ahead of time for any relevant QUALITY input.

Shawnk

PS.

Strategic Functional Migration (SFM) is described in the post following
this
one.

PPS. I submit to my fellow colleges that the answer (point spread)
determines

[A] Short term mitosis of the few to pioneer a new language incorporating
C#
productivity with C++ (SFM) powers

[b] Long term community evolution and industry migration away from C# as a
'core competency' solution (subtle point)

Both A/B, in turn, instantiate the 'early adopter' model in the compiler
market.

PPPS.

I have a 'core competency' project I want to do that would be a lot easier
if I
could use SFM with C#.


Jun 5 '06 #5
I guess all of us MI proponents stopped even dreaming when Anders uttered
those words "MI? Over my dead body!".

I miss MI dearly and would forego any and all other .NET improvments to have
it.

Cheers

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:81******** *************** ***********@mic rosoft.com...
Nicholas,

Thank you for your response.

The numbers in points [1] and [2] are completely contrived.

We wanted to articulate the difference between (1) understanding and (2)
use
of II (Implementation Inheritance). We also wanted to establish a metric
level for
change (by evolution, user migration to other languages, user loyalty (as
in
C++)) that would account for the lack of MI (Mulitple Inheritance) in
recent
language offerings (java, C#, D++).

The metrics of 'less than 1%' seemed to be a reasonable way to account for
the apparent 'level of interest' (lack of interest) in MI/SFM among
'expert'
and 'senior' level programmers in the non-C++ programming communities.

As to 'why MI is not supported' - the lack of interest or the response to
this post is an indication that verifies (informally) the 'less than 1%'
water mark. And yes, ... it appears that the II, MI and SFM are not
used/understood/desired in the non-C++ programming communities :-)

We wanted to post this question in several language communities prior to
any
other actions (such as recommendations , etc). Also, making recommendations
would be distracting to an audience/community that has no
interest/understanding/desire of the utility of MI/II/SFM.

Your good point about a recommended design implementation for MI in C++
(in
my mind) is really hinged/connected to Anders position of 'no MI in C#'.
Since all the videos, interviews, etc. (That I have seen) indicate he has
NO
interest in MI/II/SFM it is reasonable to assume that C# will always be a
less expressive (relative to functional orthogonality) and powerful
language
compared to C++.

Note that C# is an excellent language and wonderfully expressive from a
productivity standpoint (type safety, etc). Its current contribution via
LINQ
is excellent as its historic introspective (reflection) and binding
(delegates,even ts) mechanisms. As a mechanism for automated pattern
detection
and refactoring it fails (IMHO) because of the importance of functionally
orthogonal mechanisms (such as MI/II/SFM, etc).

The lack of use of .NET in the Microsoft Vista implementation is something
of interest (to the MI/II/SFM issues) that we will pursue (as opposed to
C#
recommendations ) to get a feel for MI/II/SFM issues in various programming
communities.

Thanks again for your input.

Shawnk

PS. The lack of MI/II/SFM in .NET is a basic, serious and fundamental flaw
(IMHO) of the 'operating system' (as in .NET) itself. This, of course,
hinges
on the validity of point [3] which is the basis for Ander's position on MI
in
C#.
"Nicholas Paldino [.NET/C# MVP]" wrote:
I would be interested in knowing how you came to the numbers that you
have in points 1 and 2.

While I agree that implementation inheritance would be useful, if the
numbers that you claim are anywhere near correct, you have already
answered
why MI is not supported in modern languages (meaning most .NET languages,
Java).

In all of this, I didn't see a recommendation on how such
functionality
might be included in C# (proposed language syntax, rules, etc, etc). Why
not show something of that nature?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:37******** *************** ***********@mic rosoft.com...
> Some Sr. colleges and I have had an on going discussion relative to
> when
> and
> if
> C# will ever support 'true' multiple inheritance.
>
> Relevant to this, I wanted to query the C# community (the 'target'
> programming
> community herein) to get some community input and verify (or not) the
> following
> two statements.
>
> [1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional Migration
> (SFM)' (see PS below).
>
> [2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
> Functional Migration (or 0.9% to 0.49%).
>
> Do these percentages seem about right? (less than 1% of the target
> programming
> community are GOOD at SFM)
>
> Thanks ahead of time for any relevant QUALITY input.
>
> Shawnk
>
> PS.
>
> Strategic Functional Migration (SFM) is described in the post following
> this
> one.
>
> PPS. I submit to my fellow colleges that the answer (point spread)
> determines
>
> [A] Short term mitosis of the few to pioneer a new language
> incorporating
> C#
> productivity with C++ (SFM) powers
>
> [b] Long term community evolution and industry migration away from C#
> as a
> 'core competency' solution (subtle point)
>
> Both A/B, in turn, instantiate the 'early adopter' model in the
> compiler
> market.
>
> PPPS.
>
> I have a 'core competency' project I want to do that would be a lot
> easier
> if I
> could use SFM with C#.


Jun 5 '06 #6

Thank you for letting me know of Anders 'Over my dead body' statement.

I have secretly harbored a suspicion that Java (and lately C#) is inherently
'evil' because there is 'No Multiple Inheritance'. With Anders' statement
above I
now KNOW C# is inherently evil.

......

And if C# IS inherently evil, AND today IS 6/6/6 (666), .... we MUST
consider the
possibility that Anders as actually .... evil incarnate masquerading as a
'being of
light' :-)

All of that great stuff (reflection, events, generics, LINQ) was actually
an EVIL FACADE to force us to live without MULTIPLE INHERITANCE.
(I see it all now !!!).

And since Anders IS such a wonderful and likeable guy (just a clever
masquerade) it all makes sense!

Strange as it may seem I had a dream (nightmare) last night in which
Anders played a flute leading the world's programmers to the 'Gates' of hell.
As I entered the gate turned into a couple of giant legs.

I looked up an there was Bill 'Gates' as the devil (which makes Anders just a
subservient demon) shouting 'No Multiple Inheritance for .NET' and then he
laughed wickedly.

The C# development team all had firery tridents and keep prodding the
incoming programmers
into teeny tiny cubicles. The C# Experts and MVPs walked on walls just above
the cubicles
with whips and threatened code reviews.

And finally I saw Jon Skeet himself sitting on a high platform beating a big
drum saying to each beat..

- No
- Multiple
- Inheritance
- No
- Multiple
- Inheritance
......

Suddenly .. - I woke up in a cold sweat and couldn't get back to sleep
without the light being on.

.......

Interesting how synchronisity and occult insights work on these new age date
kind of things :-)

Thanks for the comment :-)

Shawnk

PS. Of course it could have been the anchovy pizza....

"Radek Cerny" wrote:
I guess all of us MI proponents stopped even dreaming when Anders uttered
those words "MI? Over my dead body!".

I miss MI dearly and would forego any and all other .NET improvments to have
it.

Cheers

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:81******** *************** ***********@mic rosoft.com...
Nicholas,

Thank you for your response.

The numbers in points [1] and [2] are completely contrived.

We wanted to articulate the difference between (1) understanding and (2)
use
of II (Implementation Inheritance). We also wanted to establish a metric
level for
change (by evolution, user migration to other languages, user loyalty (as
in
C++)) that would account for the lack of MI (Mulitple Inheritance) in
recent
language offerings (java, C#, D++).

The metrics of 'less than 1%' seemed to be a reasonable way to account for
the apparent 'level of interest' (lack of interest) in MI/SFM among
'expert'
and 'senior' level programmers in the non-C++ programming communities.

As to 'why MI is not supported' - the lack of interest or the response to
this post is an indication that verifies (informally) the 'less than 1%'
water mark. And yes, ... it appears that the II, MI and SFM are not
used/understood/desired in the non-C++ programming communities :-)

We wanted to post this question in several language communities prior to
any
other actions (such as recommendations , etc). Also, making recommendations
would be distracting to an audience/community that has no
interest/understanding/desire of the utility of MI/II/SFM.

Your good point about a recommended design implementation for MI in C++
(in
my mind) is really hinged/connected to Anders position of 'no MI in C#'.
Since all the videos, interviews, etc. (That I have seen) indicate he has
NO
interest in MI/II/SFM it is reasonable to assume that C# will always be a
less expressive (relative to functional orthogonality) and powerful
language
compared to C++.

Note that C# is an excellent language and wonderfully expressive from a
productivity standpoint (type safety, etc). Its current contribution via
LINQ
is excellent as its historic introspective (reflection) and binding
(delegates,even ts) mechanisms. As a mechanism for automated pattern
detection
and refactoring it fails (IMHO) because of the importance of functionally
orthogonal mechanisms (such as MI/II/SFM, etc).

The lack of use of .NET in the Microsoft Vista implementation is something
of interest (to the MI/II/SFM issues) that we will pursue (as opposed to
C#
recommendations ) to get a feel for MI/II/SFM issues in various programming
communities.

Thanks again for your input.

Shawnk

PS. The lack of MI/II/SFM in .NET is a basic, serious and fundamental flaw
(IMHO) of the 'operating system' (as in .NET) itself. This, of course,
hinges
on the validity of point [3] which is the basis for Ander's position on MI
in
C#.
"Nicholas Paldino [.NET/C# MVP]" wrote:
I would be interested in knowing how you came to the numbers that you
have in points 1 and 2.

While I agree that implementation inheritance would be useful, if the
numbers that you claim are anywhere near correct, you have already
answered
why MI is not supported in modern languages (meaning most .NET languages,
Java).

In all of this, I didn't see a recommendation on how such
functionality
might be included in C# (proposed language syntax, rules, etc, etc). Why
not show something of that nature?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard. caspershouse.co m

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:37******** *************** ***********@mic rosoft.com...
> Some Sr. colleges and I have had an on going discussion relative to
> when
> and
> if
> C# will ever support 'true' multiple inheritance.
>
> Relevant to this, I wanted to query the C# community (the 'target'
> programming
> community herein) to get some community input and verify (or not) the
> following
> two statements.
>
> [1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional Migration
> (SFM)' (see PS below).
>
> [2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
> Functional Migration (or 0.9% to 0.49%).
>
> Do these percentages seem about right? (less than 1% of the target
> programming
> community are GOOD at SFM)
>
> Thanks ahead of time for any relevant QUALITY input.
>
> Shawnk
>
> PS.
>
> Strategic Functional Migration (SFM) is described in the post following
> this
> one.
>
> PPS. I submit to my fellow colleges that the answer (point spread)
> determines
>
> [A] Short term mitosis of the few to pioneer a new language
> incorporating
> C#
> productivity with C++ (SFM) powers
>
> [b] Long term community evolution and industry migration away from C#
> as a
> 'core competency' solution (subtle point)
>
> Both A/B, in turn, instantiate the 'early adopter' model in the
> compiler
> market.
>
> PPPS.
>
> I have a 'core competency' project I want to do that would be a lot
> easier
> if I
> could use SFM with C#.


Jun 6 '06 #7
Wow. I love anchovy pizza - never had that as a result. Maybe its all true
and you are psychic.
Its sad how so many otherwise helpful and intelligent people are so anti-MI.
Maybe its what you grow up with and get used to - like having legs, arms and
eyes. If you've never had them, you dont miss them.
"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:9E******** *************** ***********@mic rosoft.com...

Thank you for letting me know of Anders 'Over my dead body' statement.

I have secretly harbored a suspicion that Java (and lately C#) is
inherently
'evil' because there is 'No Multiple Inheritance'. With Anders' statement
above I
now KNOW C# is inherently evil.

.....

And if C# IS inherently evil, AND today IS 6/6/6 (666), .... we MUST
consider the
possibility that Anders as actually .... evil incarnate masquerading as a
'being of
light' :-)

All of that great stuff (reflection, events, generics, LINQ) was actually
an EVIL FACADE to force us to live without MULTIPLE INHERITANCE.
(I see it all now !!!).

And since Anders IS such a wonderful and likeable guy (just a clever
masquerade) it all makes sense!

Strange as it may seem I had a dream (nightmare) last night in which
Anders played a flute leading the world's programmers to the 'Gates' of
hell.
As I entered the gate turned into a couple of giant legs.

I looked up an there was Bill 'Gates' as the devil (which makes Anders
just a
subservient demon) shouting 'No Multiple Inheritance for .NET' and then he
laughed wickedly.

The C# development team all had firery tridents and keep prodding the
incoming programmers
into teeny tiny cubicles. The C# Experts and MVPs walked on walls just
above
the cubicles
with whips and threatened code reviews.

And finally I saw Jon Skeet himself sitting on a high platform beating a
big
drum saying to each beat..

- No
- Multiple
- Inheritance
- No
- Multiple
- Inheritance
.....

Suddenly .. - I woke up in a cold sweat and couldn't get back to sleep
without the light being on.

......

Interesting how synchronisity and occult insights work on these new age
date
kind of things :-)

Thanks for the comment :-)

Shawnk

PS. Of course it could have been the anchovy pizza....

"Radek Cerny" wrote:
I guess all of us MI proponents stopped even dreaming when Anders uttered
those words "MI? Over my dead body!".

I miss MI dearly and would forego any and all other .NET improvments to
have
it.

Cheers

"Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
news:81******** *************** ***********@mic rosoft.com...
> Nicholas,
>
> Thank you for your response.
>
> The numbers in points [1] and [2] are completely contrived.
>
> We wanted to articulate the difference between (1) understanding and
> (2)
> use
> of II (Implementation Inheritance). We also wanted to establish a
> metric
> level for
> change (by evolution, user migration to other languages, user loyalty
> (as
> in
> C++)) that would account for the lack of MI (Mulitple Inheritance) in
> recent
> language offerings (java, C#, D++).
>
> The metrics of 'less than 1%' seemed to be a reasonable way to account
> for
> the apparent 'level of interest' (lack of interest) in MI/SFM among
> 'expert'
> and 'senior' level programmers in the non-C++ programming communities.
>
> As to 'why MI is not supported' - the lack of interest or the response
> to
> this post is an indication that verifies (informally) the 'less than
> 1%'
> water mark. And yes, ... it appears that the II, MI and SFM are not
> used/understood/desired in the non-C++ programming communities :-)
>
> We wanted to post this question in several language communities prior
> to
> any
> other actions (such as recommendations , etc). Also, making
> recommendations
> would be distracting to an audience/community that has no
> interest/understanding/desire of the utility of MI/II/SFM.
>
> Your good point about a recommended design implementation for MI in C++
> (in
> my mind) is really hinged/connected to Anders position of 'no MI in
> C#'.
> Since all the videos, interviews, etc. (That I have seen) indicate he
> has
> NO
> interest in MI/II/SFM it is reasonable to assume that C# will always be
> a
> less expressive (relative to functional orthogonality) and powerful
> language
> compared to C++.
>
> Note that C# is an excellent language and wonderfully expressive from a
> productivity standpoint (type safety, etc). Its current contribution
> via
> LINQ
> is excellent as its historic introspective (reflection) and binding
> (delegates,even ts) mechanisms. As a mechanism for automated pattern
> detection
> and refactoring it fails (IMHO) because of the importance of
> functionally
> orthogonal mechanisms (such as MI/II/SFM, etc).
>
> The lack of use of .NET in the Microsoft Vista implementation is
> something
> of interest (to the MI/II/SFM issues) that we will pursue (as opposed
> to
> C#
> recommendations ) to get a feel for MI/II/SFM issues in various
> programming
> communities.
>
> Thanks again for your input.
>
> Shawnk
>
> PS. The lack of MI/II/SFM in .NET is a basic, serious and fundamental
> flaw
> (IMHO) of the 'operating system' (as in .NET) itself. This, of course,
> hinges
> on the validity of point [3] which is the basis for Ander's position on
> MI
> in
> C#.
>
>
> "Nicholas Paldino [.NET/C# MVP]" wrote:
>
>> I would be interested in knowing how you came to the numbers that
>> you
>> have in points 1 and 2.
>>
>> While I agree that implementation inheritance would be useful, if
>> the
>> numbers that you claim are anywhere near correct, you have already
>> answered
>> why MI is not supported in modern languages (meaning most .NET
>> languages,
>> Java).
>>
>> In all of this, I didn't see a recommendation on how such
>> functionality
>> might be included in C# (proposed language syntax, rules, etc, etc).
>> Why
>> not show something of that nature?
>>
>>
>> --
>> - Nicholas Paldino [.NET/C# MVP]
>> - mv*@spam.guard. caspershouse.co m
>>
>> "Shawnk" <Sh****@discuss ions.microsoft. com> wrote in message
>> news:37******** *************** ***********@mic rosoft.com...
>> > Some Sr. colleges and I have had an on going discussion relative to
>> > when
>> > and
>> > if
>> > C# will ever support 'true' multiple inheritance.
>> >
>> > Relevant to this, I wanted to query the C# community (the 'target'
>> > programming
>> > community herein) to get some community input and verify (or not)
>> > the
>> > following
>> > two statements.
>> >
>> > [1] Few programmers (3 to7%) UNDERSTAND 'Strategic Functional
>> > Migration
>> > (SFM)' (see PS below).
>> >
>> > [2] Of those few, even less (another 3 to 7%) are GOOD at Strategic
>> > Functional Migration (or 0.9% to 0.49%).
>> >
>> > Do these percentages seem about right? (less than 1% of the target
>> > programming
>> > community are GOOD at SFM)
>> >
>> > Thanks ahead of time for any relevant QUALITY input.
>> >
>> > Shawnk
>> >
>> > PS.
>> >
>> > Strategic Functional Migration (SFM) is described in the post
>> > following
>> > this
>> > one.
>> >
>> > PPS. I submit to my fellow colleges that the answer (point spread)
>> > determines
>> >
>> > [A] Short term mitosis of the few to pioneer a new language
>> > incorporating
>> > C#
>> > productivity with C++ (SFM) powers
>> >
>> > [b] Long term community evolution and industry migration away from
>> > C#
>> > as a
>> > 'core competency' solution (subtle point)
>> >
>> > Both A/B, in turn, instantiate the 'early adopter' model in the
>> > compiler
>> > market.
>> >
>> > PPPS.
>> >
>> > I have a 'core competency' project I want to do that would be a lot
>> > easier
>> > if I
>> > could use SFM with C#.
>>
>>
>>


Jun 7 '06 #8
Radek Cerny <ra*********@no spam.c1s.com.au > wrote:
Wow. I love anchovy pizza - never had that as a result. Maybe its all true
and you are psychic.
Its sad how so many otherwise helpful and intelligent people are so anti-MI.
Maybe its what you grow up with and get used to - like having legs, arms and
eyes. If you've never had them, you dont miss them.


Have you considered how the reverse might be true as well - how if
you've always walked using a crutch, you might consider that to be
vital even if other people seem to be able to run perfectly well
without one?

I agree that it's largely a case of what you're used to, but I don't
think it's fair to be one-sided about that understanding.

--
Jon Skeet - <sk***@pobox.co m>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Jun 8 '06 #9
Radek,

All humor aside :-) I must admit that many of us in the community are
still learning after many years of coding. The issues of MI (Mulitple
Inheritance),
II (Implementation Inheritance) and VI (Virtual Inheritance) are still in a
state
of flux as is evident in the WikiPedia entries. See discussion on;

http://en.wikipedia.org/wiki/Virtual_inheritance

Hopefully discussion will continue in this and other forums (including
WikiPedia) to separate the implementation difficulties of MI and SFM
(Strategic Functional Migration) from the theory of code reuse.

I expect that current works in progress regarding automated refactoring
metrics and analysis (over the next few years) will provide a solid
foundation for a fundamental articulation of inheritance and functionality.

I feel that Anders (God Bless him :-) is very close to the problem and is
driven (primarily) in his thinking by the implementation issues (dev team
perspective) and not the customer SFM, code reuse issues (compiler user
perspective).

Thanks for your comments.

Shawnk
Jun 8 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.