FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Development

 
 
LinkBack Thread Tools
 
Old 06-07-2008, 09:47 PM
"Colin Walters"
 
Default Mixing code in different languages (was: Firefox and Moonlight (Mono) "Free Software" Status?)

On Sat, Jun 7, 2008 at 4:05 PM, Richard W.M. Jones <rjones@redhat.com> wrote:



Actually I think I stand by my original statement all the more. *Free

software _doesn't_ offer an alternative. *OK, it's possible to run

some mixed languages on the JVM. *But it's not practical -- you can't

practically write a Jython library called by an OCamljava main program

[substitute your favorite languages here as appropriate]. *Mono/.Net

_is_ the only widely available practical implementation

(unfortunately).
Ah, I think this discussion started from a misconception then.* As far as I know, .NET does not easily let you consume arbitrary Python libraries from OCaml/F#, or vice versa.* I don't see how it would.* The two are wildly different - Python's object model is "everything is a hash table!", which is not the same as .NET's object.* The way to think of this is that IronPython is really its own world on *top* of .NET; just the same for Jython and the JVM.


Practically speaking in this case too, Python has no facility to declare types even around interface boundaries, so everything you pass in or out would have to be represented in OCaml as PythonValue or something, with methods like get_int(), get_attribute()...yuck!*


More generally the goal of .NET was not to somehow automagically make any arbitrary (particularly non-native as defined before) language X be able to use any language Y easily.* The goal is more practical - sharing a garbage collector, JIT, and standard library.* This enables a pattern where the core is programmed in the native system language (Java/C#), but those libraries can be consumed by other languages, for scripting, DSLs, templating, etc.


And that's the exact same thing the JVM provides, and really that the bytecode/JVM model has provided for over a decade. * Don't get me wrong, .NET added a few things like tuples and continuations, but the two systems are much closer than they are different; the main differentiator in my opinion has mostly just been marketing (which is admittedly very important).*


This is a good blog entry on this model:
http://ola-bini.blogspot.com/2008/06/fractal-programming.html



This is a serious question. *Certain groups of users I've talkd to

like OCaml, but don't want to write whole programs in OCaml (or want

to use their existing libraries with it). *Unfortunately for everyone

F# is being seen as a practical solution to their problem, which means

they're locked into a proprietary language on a proprietary operating

system.
Sure.* That was the motivating factor behind OCamlJava it appears from the web page.*


But again, there is no magic cross-language anything-can-call-anything
now or in the future, and if you thought .NET provided that I believe
you've been oversold.

The forseeable future is multi-runtime.* .NET and the JVM are both very widely deployed at this point and are key to major operating system vendors.* CPython in particular is going to be around a long time; its age, liberal licensing, low barrier to entry, and ease of binding to C have made it pervasive.



--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list
 

Thread Tools




All times are GMT. The time now is 02:25 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org