Haiku - OpenJDK Project
Le petit OS qui avance dans l’ombre de BeOS commence doucement à s’étoffer. Après les avancés du port du webkit Haiku lance un projet de portage de la JVM ouverte de Sun: OpenJDK.
Je ne suis pas sur qu’Haiku vise à être une grande plateforme de développement (quoique pourquoi pas ;-)), mais quoiqu’il arrive, avoir une machine virtuel java porté pour votre OS est quasi indispensable ! Et contrairement à Adobe qui garde sont FlashPlayer bien fermé, Sun, en ouvrant la JVM permet à des équipes divers de la porter sur les OS passé, présent et futur.

Pour ceux qui serais interessé, je vous laisse lire la news officiel de la création de l’équipe Haiku-OpenJDK pour en savoir plus.
Un projet bien interessant, je vais m’y interesser de prêt… Peut-être même plus vu mon profil :)
Ruby: new vs initialize
Pour certain c’est une évidence, mais un vieux mail sur la liste de diffusion de ruby_core ma donné envie de me pencher sur la question.
Venant du monde Java (enfin je n’en suis pas encore sorti), je suis un habitué du:
MacLasse monObjet = MacLasse.new();
pour Ruby ça devient:
mon_objet = Mac_lasse.new
Bon à part le typage dur de java versus le typage dynamique de ruby, pas de gros changement sur l’interprétation de la façon d’instancier un objet entre ces deux langages.
Par contre c’est sur la classe elle même que ça change pas mal.
En java MacLasse ressemble à ça:
public class MacLasse {
public MacLasse(){
// code a executer lors de l'instanciation de l'objet
}
}
et en ruby on se retrouve avec ça:
class Mac_lasse
def initialize
// code a executer lors de l'instanciation de l'objet
end
end
Cette methode en java s’appel un constructeur (ça c’est pour ceux du fond qui suivent pas hein ! ). On l’obtient en définissant une methode portant le même nom que la classe.
Pour ruby, peut importe le nom de la classe, on utilise une methode initialize.
Alors initialize est-elle une methode de type constructeur ?
Non. et en Java non plus finalement. Ces deux methode ne construisent pas l’instance, elle l’initialise. Elles permettent de préparer l’instance avant de la rendre. En java comme en Ruby, on peut très bien ce passer de ces methodes.
Maintenant on va s’éloigner de Java…
En Ruby on pourrais définir une methode new en lieu et place d’initialize. Non mais qu’est-ce que je raconte, heureusement y’en a au premier rang qui suivent. Merci.
Je reprend. En ruby on peut surcharger la methode new (Object#new) en plus de la methode initialize. Le seul hic, c’est qu’il faut faire attention. Cette methode new est censé créer l’instance de la class. Il faut donc penser à renvoyer la bonne instance en fin de methode (new pour les voisins du radiateur).
Voyons plutôt un petit bout de code:
class Test_initialize
def initialize
"test_initialiaze"
end
end
class Test_new
def self.new(*args)
"test_new"
end
end
class Test_new_2
def self.new(*args)
"test_new_2"
Object.new
end
end
test = Test_initialize.new
puts test.class # Test_initialize
test = Test_new.new("args")
puts test.class # String
test = Test_new_2.new("args")
puts test.class # Object
On le voit assez bien je pense: Surcharger new ne doit pas se faire à la légère. Utilisé initialize pour initialiser l’instance semble bien plus logique.
Là dessus Ruby montre bien un de ces principe de base qui veux que le langage soit simple et logique. Contrairement a Java ou l’on parle de constructeur en lieu et place de methode d’initialisation.
C’est de la sémantique c’est sur, mais le principe est là. J’aime ruby et j’aime bien java quand même :-)
Java en GPL ? 4
Java : (definition wikipdiesque) langage informatique objet développé par Sun Microsystems. C'est aussi la technologie qui depuis quelque année me permet de manger. Je n'en parles pas souvent car je ne suis pas un fan absolue, j'aime bien, ça permet de travailler, mais d'autres je préfère la philosophie d'autres technologie, ainsi que de participer à ça "promotion". Je vais tout de même essayer de vous conter une histoire qui n'as pas encore de fin, mais qui ne devrais pas mal finir. En tout cas ça me fait plaisir de voir cette techno évoluer dans ce sens.
L'histoire commence par la venue d'un troll velu : la JVM java libre ou pas libre (on parle aussi de plateforme Java, pour l'ensemble de l'API standard). Pendant longtemps le garde manger du troll ne désempli pas, mais voilà qu'au mois de Mai 2006, lors de la JavaOne Conference , les officiels annonce l'ouverture prochaine de la plateforme java
Green wouldn't give any details on making Java technology available as an open source platform just yet, but he said, "It's not a matter of Whether, but a matter of How." More news and developments will continue to flow on this topic, but for now, it's one step at a time. Stay tuned, but get ready for changes and new opportunities for all.
Le gras, c'est mes doigts qui l'ont fait ;)
Globalement, on range le troll, on le renvoie dans sa caverne, et on en sort un autre, celui de savoir qu'elle licence prendre... C'est un troll embauché à durée déterminé, effectivement, fin Octobre 2006, lors de la Oracle OpenWorld conference (oui oui tout les grand tente de se méler à l'open Source) Sun annonce que la décision sera prise avant noël. Un troll licencié juste avant les fête de noël, c'est pas sympa :D
Et qu'apprend-je aujourd'hui même ? Le troll n'auras bientôt plus à manger, avant même le mois de décembre, on parle de licence GPL. Oui oui la GNU GENERAL PUBLIC LICENSE, celle qui est une bonne représentante du monde libre (oui on sait tous qu'il en existe beaucoup aujourd'hui). Sun ne sortiras (apparemment pas) une licence maison un peu étrange (comme le fait Microsoft), mais belle et bien une licence du monde libre.
Je ne pense pas que ça modifieras ma façon de pensé au travail, je ne pense pas que ça me feras installer une JVM à la maison, je continuerais à pensé Ruby, manger Ruby et travailler avec RubyFrance :D. Cependant, je travaillerais peut-être avec un sourire plus important qu'a l'accoutumé ;-).
Attention c'est une fiction, ne vendons pas la peau du troll de l'ours avant de l'avoir tué :D.
Ps: quelqu'un pourrais me dire comment on met les petite lettre genre TM et autre Copyright ? c'est balot mais je sais même pas faire ça :-/