[antlr-interest] philosophy about translation

Micheal J open.zone at virgin.net
Tue Oct 31 11:50:31 PST 2006


Hi,

> >I view Java's decision to do a "limited implementation" by avoiding
things 
> >like multiple inheritance as exactly what made it successful. By avoiding

> >being "completely pure", Java is accessible to average programmers. And 
> >that's why Java is popular and Smalltalk and LISP are not. It's also why 
> >people prefer Java over C++.
> 
> Having seen systems implemented that rely heavily on multiple inheritance,
> I would make the observation that it is fraught with difficulty.

So is single inheritance in the wrong hands.

> I view 
> the move towards interface inheritance instead as a positive development 
> that has facilitated the widespread use of component based programming.

Interface inheritance predated VB/Java/C#. C++ had it before for instance.
It's proper use simply needed to be taught to "average" programmers.

> Component based programming is where the real life promise of OO has 
> finally been realized, IMO. It is interesting that the two languages most 
> widely used in real life component based systems have been VB and Java 
> (and now C#).

Not that surprising since the archetypal CBD developer is an "average"
developer consuming components written by others (usually developed in C++
for VB'ers to consume).

Java/C# fare better as tools used by component producers. Nevertheless, the
most flexible/performant components are still developed in C++.

> It doesn't say much for the language purist approach.

This isn't a religious debate (I hope). ;-)

> I think that one of the reasons that Java took off is that it gave you 
> automatic storage management and runtime type checking "out of the box".

As did many other systems before it. Having a big company (or a few if one
includes Netscape, IBM et al) aggressively pushing it probably had a much
greater impact.

> In C++, you have to "roll your own" storage management. Having come from 
> LISP machines in the early eighties, C++ seemed like huge step backwards 
> for this reason. It also didn't help that the linker model was primitive 
> and reuse involved the use of shared header files. This made it difficult 
> to deliver components from one company or group to another.

Yet C++ was the de facto tool for component producers during the period when
VB finally delivered on CBD's reuse promise.

> The lack of multiple inheritance, in comparison, was a tiny tiny issue.

For some people/projects, yes. Not so for others.

> I suppose this is a bit off-topic.

;-)


Micheal


-----------------------
The best way to contact me is via the list/forum. My time is very limited. 



More information about the antlr-interest mailing list