🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.java
Article #296

Re: Will Java kill C++?

#296
From: Matt Kennel
Date: Wed, 17 Apr 1996 17:51
66 lines
3632 bytes
Matt Austern (austern@isolde.mti.sgi.com) wrote:
: In article <4l0si4$pqd@gaia.ns.utk.edu> mbk@caffeine.engr.utk.edu (Matt Kennel) writes:

: > : > >How would you have maintained C-style linkage and C++ typesafe
: > : > >linkage in the same object module without changing the linker?
: > 
: > : > By writing a linker pre-pass program which checks for and enforces
: > : > the type-safe linking rules.
: > 
: > : But such a program (a) would have to be rewritten for every machine
: > : to which C++ was ported, and (b) would not solve the problem of what
: > : name to give the linker for overloaded functions with the same name.
: > 
: > So?  
: > 
: > Eiffel and Ada and Sather compilers do it and their generics
: > work like a swiss watch.

: You mean you can link together object files produced by two different
: Eiffel compilers and it's guaranteed that the link will work?  If so,
: that guarantee is quite new: the last time I used an Eiffel compiler,
: it didn't even have such a notion as compiling a single source file
: into a single object file and then linking together the resulting
: object files.  The only user-visible files were the source (.e) files
: and the executable.  

Of course.  That's because there is not an agreement upon even the most
basic rudiments of a link representation for Eiffel, as there is for C. 

As long as operating systems will only come with linkers which are firmly
stuck in C mode this will persist. 

I don't think it even makes that much sense to compile a single Eiffel
source file into a single object file?  I don't even know exactly what it
would mean to have a single "object" file corresponding to a single
"source" file in Eiffel. 

: I certainly doubt if there's any portable way to compile part of an
: Eiffel program with one Eiffel compiler and part with a different one.
: The issue of source-level portability between Eiffel implementations
: is being resolved, but binary-level portability seems to be a very
: long way in the future.

It's not clear that 'binary portability' in a strict sense makes much
sense in Eiffel: a generic class which uses combinations of old library
code and new user-written code cannot just patch raw assembly together. 

The entire meaning of 'linking' depends profoundly on the language, and this 
is my point.  

So system 'linkers' ought to have been made which can deal with this
somehow, but they haven't.  Some might counter : "it's a 'people' issue, it 
is the responsibility of the language not the operating system".

I disagree---if there had been standard technology widely available which
could successfully link together things more sophisticated than C then the
various new language people would have been much more motivated to adopt a
real representation for doing so for every new language. 

I thus consider the design of the 'link model' for the Java VM 
very important.  What are the concepts that it can represent?  I think it
would be 

: Matt Austern
: SGI: MTI Compilers Group
: austern@isolde.mti.sgi.com
Technical Details
Message-ID: <4l3b26$753@gaia.ns.utk.edu>
Path: arc1-ca.pugleaf.net!gaia.ns.utk.edu!mbk
References: <4ksfdr$bhh@engnews2.Eng.Sun.COM> <3172DC7C.6B3F@sdt.com> <AUSTERN.96Apr16124316@isolde.mti.sgi.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!gaia.ns.utk.edu!mbk
From: mbk@caffeine.engr.utk.edu (Matt Kennel)
Newsgroups: comp.lang.java,comp.lang.c++
Subject: Re: Will Java kill C++?
Date: 17 Apr 1996 17:51:02 GMT
Organization: University of Tennessee, Knoxville and Oak Ridge National Laboratory
Message-ID: <4l3b26$753@gaia.ns.utk.edu>
References: <4ksfdr$bhh@engnews2.Eng.Sun.COM> <3172DC7C.6B3F@sdt.com> <AUSTERN.96Apr16124316@isolde.mti.sgi.com>
Reply-To: kennel@msr.epm.ornl.gov
NNTP-Posting-Host: caffeine.engr.utk.edu
X-Newsreader: TIN [version 1.2 PL2]