<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 8, 2020 at 9:35 PM Brian Willoughby <<a href="mailto:brianw@audiobanshee.com">brianw@audiobanshee.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
It may only be a small aspect of the language as a whole, but Java 1 did not have interfaces.<br>
Java 2, inspired by Objective C protocols, was the first revision of the language that added interfaces</blockquote><div><br></div><div class="gmail_default" style="font-size:small">Do you have a source for interfaces not being in Java 1? My reading so far has consistently indicated that they were an original language feature - and that's how I remember it, though admittedly it is a long time ago now.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Java only has single implementation inheritance (although later versions have multiple behavioural inheritance but not multiple state inheritance), so the idea of an interface doesn't have to come from another language.</div><div class="gmail_default" style="font-size:small"></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">You are correct that Java was intended to be secure, but it's still capable of crashing when the program is complex enough. <br> </blockquote><div><br></div><div class="gmail_default" style="font-size:small">Java's security wasn't intended to protect against crashes so much. Java uses pointers with reference semantics - if you reference through Java's null, you literally get a null pointer exception. You can catch this exception, but the actual piece of code that crashed can't resume execution.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Java's security was intended to allow fine grain control over what your Java code was allowed to do - which is a good thing, as an early priority was running in browsers (it predates Javascript there). So you could allow outgoing TCP connections but not incoming ones, no file access, etc. Easier to do with a VM based language than a native one :-) but groundbreaking nevertheless.</div><div><br></div><div> </div></div></div>