4 ms·
The Java interop compromise is probably the biggest weakness of the proposal - it works beautifully within Kotlin but degrades at boundaries. This is similar to
by cekrem 9mo ago
The Java interop compromise is probably the biggest weakness of the proposal - it works beautifully within Kotlin but degrades at boundaries. This is similar to how Kotlin's nullable types (String?) become platform types in Java.
I think it's good nonetheless to add stuff to Kotlin that won't translate 1:1 to Java, both because Java is evolving but also because Kotlin is used in "Native" (non-JVM) contexts as well (not extensively, but hopefully that'll change).
- pjmlp 9mo agoThat is always the gotcha with guest languages. C++ cannot get away from C, Typescript cannot get away from JavaScript, and so forth.
- zaphirplane 9mo agoThat is more interoperability than guest language situation. I don’t think c++ is a c guest. Ts has a different approach to the js self.
- pjmlp 9mo agoC++ started as a C macro preprocessor, designed to work as C in UNIX, and by CFront 2.0 there was already too much compatibility to throw away. Ts is basically a linter, everything else is JS.
- zaphirplane 9mo agoc++ bootstrapping as a transpiler back when it was a 1 man show is hardly where it’s at today. The point about self handling in ts should demonstrate there is more than just strip the types going on
- pjmlp 9mo agoThere is the whole fit into the same UNIX compiler toolchain as C, without additional changes to the linker, include files, object and archive files.
- zaphirplane 9mo agoOh like how gnu compiler includes an ada compiler ? Or the C++ name mangling ? Obviously there a common heritage and the shared ancestor is c.
- pjmlp 9mo agoC++ name mangling was exactly designed to be able to link C++ code with a standard UNIX linker that only knows C. GNAT has zero compatibility with C source, doesn't even make sense.
- wiseowise 9mo agoThe ship has sailed the moment Kotlin believed it could break away from the JVM ecosystem. And for a good reason, it would be just slowly consumed by the progress of Java.