3 ms·
> interaction of different system at the object level has been done before though Yes. I have used this (CocoaJava, Tcl/ObjC, Ruby/ObjC, etc.) and also implem
by mpweiher 5y ago
> interaction of different system at the object level has been done before though
Yes. I have used this (CocoaJava, Tcl/ObjC, Ruby/ObjC, etc.) and also implemented it myself (Squeak/Objective-C, among others). Even though I'd say that Objective-C is probably about as good at this as it gets, the end results are still complicated and fragile.
In the end, what ends up most workable is that one object model is declared "it", and the rest of the languages then just skins on top of that object model. (See the various .NET languages and reimplementations, JVM languages and reimplementations, and now Truffle/Graal).
- em-bee 5y agoi think there are three kinds of object level interaction. one is skins where the application is written in a different language than the VM it runs on top of. the second is some form of object-message passing where two independent applications written in different languages (or also the same language) are able to pass objects back and forth. those objects need not be native objects to either language. in the third the objects being passed are still connected to the source and calling a method on the object gets sent back to the application it originates from. i believe CORBA falls into that category. the one system that i am most familiar with here is bridging pike with php or java and it too is only used one-way in that there are clients written in php, java and pike, but the server is in pike only. i am mostly interested in the second and third type. the first type doesn't allow me to write truly native applications because in the end even of i use eg. Clojure, i am still creating and using a java application. the second type allows me to transport rich data objects, and i see the goal here as replacing the currently text based filesystem with such objects. one issue is how to transport the objects. xml and json have been used a lot for the second type, but both are to limited. we need better object formats and interfaces and filesystems that support them.