jeudi 18 février 2010

Mixer #haskell #Erlang #Java dans #Ruby

Il est possible de s'amuser à faire interagir un programme Ruby avec d'autres langages.

Avec Haskell.
Le projet Hubris se veut un pont entre ruby et Haskell. Il s'utilise en mode inline ou sous forme d'appel de module.

require 'hubris' # best line ever

class Target
hubris :inline =>"triple::Int->Int; triple n = 3*n"
end

t = Target.new
puts t.triple(10)
=> 30
Un article sur http://www.engineyard.com/blog/2010/a-hint-of-hubris/ détaille son utilisation.

Avec Erlang.

Le projet erlectricity permet de communiquer avec un process Erlang.
Le projet présente un exemple d'un simple programme de type 'echo'


require 'rubygems'
require 'erlectricity'

receive do |f|
f.when([:echo, String]) do |text|
f.send!([:result, "You said: #{text}"])
f.receive_loop
end


end

Avec du C.
(tiré de rmag numero 5)
Il faut se munir des fichiers sources Ruby . Et construire un répertoire sous la forme:

rmag/
rmag.c # source code extconf.rb # ruby file to create makefile
example.rb # a simple script to show our ext
LICENSE # license
README # some info

Le rmag.c devra commencer par la ligne magique:

#include “ruby.h”

Le fichier responsable de la création du makefile contiendra:

require 'mkmf'
ext_name = 'Rmag'
create_makefile(ext_name)


Avec Java.

Il faut utiliser la machine virtuelle Jruby et inclure le module

# This is the 'magical Java require line'.
require 'java'

A partir de là il est possible d'écrire des lignes en java.

frame = javax.swing.JFrame.new("Window") # Creating a Java JFrame
label = javax.swing.JLabel.new("Hello")


exemples à prendre sur le wiki de jruby.

Aucun commentaire: