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!news4.google.com!news1.google.com!news2.google.com!news.glorb.com!newsfeed2.telusplanet.net!newsfeed.telus.net!edtnps89.POSTED!023a3d7c!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> <%Ntwj.12620$Ch6.11402@newssvr11.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 17:44:28 GMT NNTP-Posting-Host: 208.66.252.228 X-Trace: edtnps89 1203961468 208.66.252.228 (Mon, 25 Feb 2008 10:44:28 MST) NNTP-Posting-Date: Mon, 25 Feb 2008 10:44:28 MST Xref: g2news1.google.com comp.lang.ada:20054 Date: 2008-02-25T17:44:28+00:00 List-Id: writes: > But, in Ada we can defer the dependency to the package body. In Java you > cannot defer that dependency. A dependent unit, when the specification > changes is combined with its implementation. Therefore, every dependent > specification must also be compiled. As noted below, we can defer the > dependency in Ada to the package body. There is nothing analogous to this > in Java. This is simply false. I am starting to think that *I* don't have the sufficient communication skills. There is a fundamental disconnect here. Consider this Ada situation: Client C ------> Package P spec | | P body When P's spec changes, both C and P's body need to be recompiled. When only P's body changes, C is unaffected. Consider this Java situation: Client C ------> interface P_Spec | | class P_Body implements P When P_Spec changes, both C and P_Body need to be recompiled. When only P_Body changes, C is unaffected, P_Spec is unaffected. I don't know how else to say it more clearly. Note that if anyone is referring to P_Body then they will be affected, but the idea is that one takes the care so the clients only use P_Spec. This takes effort and discipline, making things less convenient than Ada, but the ability to have the separation is there in the Java language. > Perhaps. But I still don't see how one can defer the dependency of a > Java signature to the implementation of the Java class and prevent > the need for recompiling the entire architecture when the signature of > a parent class changes. Maybe the disconnect is here. Are you talking about how spec changes ripple down, or are you talking about how body changes ripple down? Spec changes affect clients and bodies, both in Java in Ada. Body (implementation) do not affect clients that only refer to the spec, both in Java and Ada. -- 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.