On Monday, 25 August 2014 at 19:26:59 UTC, Brost wrote:
It's really strange the fact that no one seems to feel about this
the same way I do, I mean you are happy with a C based bridge
between 2 languages, you are ok at throwing away all the good
stuff that both languages ( your X and your Y ) are offering ?

Thank you for posting various scripts and libraries but this is
not my point, I think that the game changer will be some kind of
support for this extensions and foreign languages built right
into the language itself.

So, which language(s) do you have in mind in particular? Whether it's practicable surely depends on the type of language you want to bind to.

Take Ruby as an example: Ruby is a scripting language that cannot be compiled to native code (though it can be JITted). This means that there is no ABI, which would be required if you want to link against the language. It would theoretically be possible to somehow link against the interpreter, but that would require cooperation from it, i.e. it would have to expose an interface to do that. But there isn't only one implementation of Ruby: There is MRI (the most widespread one), JRuby (running on the JVM), Rubinius (with LLVM as a JIT backend), and probably others. All of them have different interfaces. There is however a FFI (foreign function interface) that is used to call native extensions from Ruby. This would be the only realistically usable interface between D and Ruby. And guess which ABI it uses...

Direct interfacing is more practicable for compiled languages. And indeed, there is already surprisingly good support for linking against C++, which is currently being extended even more. There's also Objective-C, for which there's this proposal [1]. I believe Jacob Carlborg even has a proof-of-concept implementation. But beyond these languages (and C, of course), there aren't even many natively compiled languages in widespread use. Pascal? The newer ones like Go and Rust? I guess for those there just isn't a great need.

[1] http://wiki.dlang.org/DIP43

Reply via email to