[sdiy] Programming Language Recommendation

Brian Willoughby brianw at audiobanshee.com
Thu Dec 10 04:01:27 CET 2020

On Dec 9, 2020, at 11:15, Jason Proctor <jason at redfish.net> wrote:
> On Tue, Dec 8, 2020 at 9:35 PM Brian Willoughby <brianw at audiobanshee.com> wrote:
> It may only be a small aspect of the language as a whole, but Java 1 did not have interfaces.
> Java 2, inspired by Objective C protocols, was the first revision of the language that added interfaces
> 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.
> 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.


Granted, that document doesn't get into the details of Java 1 versus Java 2.

The following page,


... still doesn't have quite enough detail.


I was not aware of Oak before today (or I'd forgotten), is that Java 0.8 ?

The following article seems to state that Java 1.0 had basic interface capabilities.


Then it mentions some important expansions of interfaces in Java 2 that may have been what folks were referring to when they talked about Java borrowing from Objective C. Later, this article talks about interface enhancements in Java 5.

I didn't start developing in Java until NeXT and Apple had made it possible to subclass Java objects in ObjC, and to subclass ObjC objects in Java. At that point, it was possible to freely mix Java and ObjC class libraries, and to even enhance libraries written in one language with the other language. Before this, NeXT had made it possible to bridge between OLE (C++) and Objective C, even across computers on the network. They wrote a book called D'OLE (for Distributed OLE) that sorta riffed on Homer Simpson's catch phrase.


More information about the Synth-diy mailing list