
Thank you very much to everyone who responded on java integration. I have a lot of work to do before I can conclude, but I will give a quick summary just in case there is some general interest. The most common approach appears to be a network interface between separate java and haskell processes. Both JSON and thrift appear to tools to help doing that. That sounds like a good idea if effort is taken properly to plan out the system architecture. In my case, it would probably lead me to write more code in haskell than I had originally planned (for good or for bad). One poster pointed to neurocyte's library of JNI bindings. That's definately something I will look into. At first sight, it looks much easier to get into than I had feared. The most popular proposal was, nevertheless, to use other languages, in particular hybrid languages like scala. In my opinion, that only solves a minor part of the problem. In my opinion, the chief virtue of a pure language like haskell is its simplicity. Yet, I must admit, that option was always on my list. Familiar with python, jython is a serious option, although I would prefer strong and static type checking. Thanks again, everyone :-- George On Thu, May 09, 2013 at 11:48:09AM -0700, Dominic Espinosa wrote:
Hello,
I've had some success with the Thrift library (http://thrift.apache.org/). See this blog post (http://mortenib.wordpress.com/2009/10/29/thrift-and-haskell/) for a basic tutorial on getting started. My project was interfacing a haskell library of machine learning algorithms (which I wrote) with a large Java application I was familiar with but didn't write. So this may be what you're looking for.
Thrift interfaces language X with language Y with a sort of RPC paradigm: you specify the names and types of the possible calls and returns, and Thrift uses this file to generate serialization and transport code for whatever languages you name. You then add this code to the project on each side and things pretty much just work.
On Thu, May 09, 2013 at 04:04:19PM +0100, Hans Georg Schaathun wrote:
Hi all,
I am rather new to the café, so I just hope my question fits in.
Does anyone have experience with integrating Haskell and Java? I have done some searching, finding a lot of pointers but hardly anything in terms of evaluation, successes, or caveats.
From what I see Frege looks promising, arguably not haskell I suppose, but does it work? Other projects I have seen appear to have reached a stand-still for ages.
The background for the question is that I will contribute some control algorithms based on machine learning or AI in a larger project. It would save me a lot of time if I could write in Haskell, but only assuming that interfacing with Java afterwards is trivial compared to writing everything in java in the first place. I am, perhaps, particularly worried that a Haskell-lookalike for JVM might be unable to optimise properly, like not being lazy. Any advice?
TIA -- :-- Hans Georg
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- :-- Hans Georg