From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,aea4cc77526f5e4a X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!news.glorb.com!newsfeed2.telusplanet.net!newsfeed.telus.net!edtnps82.POSTED!53ab2750!not-for-mail Sender: blaak@METROID Newsgroups: comp.lang.ada Subject: Re: Separate Compilation in Programming Languages References: <7xJvj.7420$Ru4.4246@newssvr19.news.prodigy.net> <5b9wj.4639$Mh2.1432@nlpi069.nbdc.sbc.com> <5Ekwj.10401$0o7.6822@newssvr13.news.prodigy.net> From: Ray Blaak Message-ID: Organization: The Transcend User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 25 Feb 2008 02:37:52 GMT NNTP-Posting-Host: 154.20.96.87 X-Trace: edtnps82 1203907072 154.20.96.87 (Sun, 24 Feb 2008 19:37:52 MST) NNTP-Posting-Date: Sun, 24 Feb 2008 19:37:52 MST Xref: g2news1.google.com comp.lang.ada:20047 Date: 2008-02-25T02:37:52+00:00 List-Id: writes: > An implementation of an Interface (in Java) is still tightly bound to > its specification, and any change of that implementation will carry forward. But of course. And that is exactly analogous a change to an Ada package spec impacting the package body. > It is true that the Interface specification remains unchanged, and that is a > good thing. However, if any part of the Interface specification changes, > every other unit dependent on that specification will also have to be > recompiled. Again, exactly the same as changing an Ada package spec. > In the Ada model, where I defer the dependency on that > Interface to the body of the dependent package, I need not recompile the > specification of the dependent package. Rather, I can compile only the > body, leaving the rest of my architecture intact. Recompiling a file does not imply the need to imply client files if the public signatures have not changed. Most IDEs can handle this. Also, recompiling an implementation class will not cause a recompilation of the interface clients at all, since they do not even (necessarily) see the implemetation in the first place. Again, exactly analogous to an Ada package body needing to be recompiled. Ada's separation of spec and body is what allows you to do this. A Java interface and its implementation class is an analogous separation. > I'm not sure why this is such a difficult idea. It is probably because I am > not expressing it with sufficient skill. Well, as politely as possible, I submit that it is not about the skill, but that I think you are mistaken. -- Cheers, The Rhythm is around me, The Rhythm has control. Ray Blaak The Rhythm is inside me, rAYblaaK@STRIPCAPStelus.net The Rhythm has my soul.