Articles précédents : Logiciel
- [28] Kaoos, des particules libres qui s'animent sur votre écran !
- [159] Gentoo 1.4 est (enfin) sortie
- [24] Opie 1.0 dans les bacs
- [75] MPlayer G2 : un avant-goût
- [66] Eclipse compilé en natif.
- [81] Novell rachète Ximian
- [50] Une sélection d'outils libres pour la modélisation pour les bases de données
- [4] Pré-version de Wcompta
- [26] Un cadeaux bonus dans ScummVM 0.5
- [51] GNOME 2.2.2
Liens connexes
- Le Change Log (861 hits)
- Le site principal et la version 1.8.0 (1031 hits)
- L'installateur pour Windows (pas encore mis à jour depuis la dernière preview) (474 hits)
- Un tutorial Français (3186 hits)
- Un deuxième ... (1441 hits)
- et un dernier, toujours en Français (1143 hits)
Dépêche modérée par
N'oubliez pas qu'il est fourni en standard avec la plupart des distributions Linux et avec MacOS X 10.2 (pour Windows des binaires sont disponibles). Vous verrez, l'essayer, c'est l'adopter !
NdM: Au passage, je signale qu'une nouvelle version des bindings Ruby/Gnome2 (qui sont déjà très avancés dans leur version actuelle) devrait sortir ce Week-End.
Le Change Log (861 hits)
Le site principal et la version 1.8.0 (1031 hits)
L'installateur pour Windows (pas encore mis à jour depuis la dernière preview) (474 hits)
Un tutorial Français (3186 hits)
Un deuxième ... (1441 hits)
et un dernier, toujours en Français (1143 hits)
> Lire la suite (73 commentaires, moyenne: 2,8). [dépêche : 1905 caractères]
A noter l'annonce du port de Ruby sous WindowsCE (les japonais sont friants de PDA ...).
Pour terminer, quelques liens pour vous faire une idée, ou pour plonger carrement dedans :
Focus sur certains points de la nouvelle version 1.8.0 :
http://whytheluckystiff.net/articles/2003/08/04/rubyOneEightOh
Sur DLFP, quelques brèves :
http://linuxfr.org/index.php?file=recherche.html&recherche=ruby
Les communautés :
Le *FrenchGroup* : http://rubygarden.org/ruby?FrenchGroup
La mailing liste française (en sommeil) : ruby-fr-ctl@ruby-lang.org
Le Wiki principal : http://rubygarden.org/ruby?HomePage
Le newsgroup, très actif : comp.lang.ruby
Les Applications / bibliothèques :
Le répertoire central : http://raa.ruby-lang.org/
Le nouveau site OpenSource Ruby : http://rubyforge.org/
Les livres :
Le seul en français (pour l'instant j'espère) : http://www.oreilly.fr/catalogue/rubynut.html
Le livre de référence (sous Open Publication License) : http://www.pragmaticprogrammer.com/ruby/downloads/book.html
Enfin quelques présentations présentant rapidement les fonctionnalités principales de Ruby :
La seule en français : http://www.approximity.com/ruby/ruby_fr/siframes.html
http://www.pragmaticprogrammer.com/talks/perlmongers/perlmongers.htm
http://rubyhacker.com/rubyperl/slide1.html
http://www.hypermetrics.com/ruby37.html
Re: Ruby 1.8.0 est sorti
Question qui ne peux que dégénérer en troll, mais je tente quand même...
On entends de plus en plus parler de Ruby et de Python. Quelles sont les différences : sont ils plutôt concurrents ou complèmentaires ?
Je serais bien tenté de rajouter que je voudrais des avis objectifs de la part de ceux qui connaissent les 2 langages, mais j'ai le vague sentiment que ce serait peine perdue ;-)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Sixel (page perso, ) le 06/08/2003 à 09:31. (lien). Évalué à 9.Je m'assois au premier rang, et je me prépare à regarder atterrir le joli troll velu que tu viens de lancer bien haut...
--
"Il faut" (Ezekiel 18:4) "forniquer" (Corinthiens 6:9, 10) "avec des chiens" (Thessaloniciens 1:6-9) "morts" (Timothée 3:1-10).
-
[^]Re: Ruby 1.8.0 est sorti
Posté par bmc () le 06/08/2003 à 09:42. (lien). Évalué à 8.En tant qu'utilisateur de Ruby, je ne me suis pas intéressé à Python car il m'oblige à indenter mon fichier d'une certaine façon. Oui, c'est idiot de se passer d'un langage probablement excellent pour une raison aussi mauvaise, mais c'est une question de principe: le langage doit m'offrir des possibilités et sûrement pas les restreindre.
Vous l'aurez compris, je suis (j'étais ?) un fan de Perl, et je retrouve dans Ruby ce qui a fait la force de Perl («il y a plus d'un moyen de le faire»), dans un langage 100% objet (absolument tout est un objet, ce qui peut paraître trop mais est en fait très pratique).
Les afficionados de Python me rétorqueront que l'indentation obligatoire dans Python permet de faire en sorte que le code soit lisible facilement, si un goret est passé par là. Pour ma part, je répondrais que si un goret est passé, ce n'est sûrement pas l'indentation qui sera la plus mauvaise...
Ce qu'on peut reprocher à Ruby (par rapport à Perl): sa lenteur. C'est bien plus lent que Perl, mais l'auteur a bien dit qu'il ne se focalisait pas pour l'instant sur la rapidité. Enfin bon, c'est bien pratique pour faire des petits scripts système.-
[^]Re: Ruby 1.8.0 est sorti
Posté par bmc () le 06/08/2003 à 10:10. (lien). Évalué à 6.J'ai oublié de rajouter deux liens comparant Python et Ruby:
De la FAQ Ruby, cité sur le site de Python comme étant une bonne comparaison: http://www.rubygarden.org/iowa/faqtotum/abo6DJGbLjE6/b/1.11.7.2.5(...)
Un autre lien intéressant que j'ai trouvé en cherchant sur google :)
http://www.rexx.com/~oinkoink/Ruby_v_Python.html(...)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Tennis Prono (page perso, ) le 06/08/2003 à 10:12. (lien). Évalué à 7.Moi (qui utilise pas mal Python), je reproche au système d'indentation:
- un mélange d'indentation avec des tabulations et des espaces peut être trompeur (si on utilise deux éditeurs différents avec des indentations différentes)
- si une fonction ou une classe et longue, il peut être difficile de voir quel bout de code appartient à quel bloc (à moins d'avoir des barres verticales pour l'indentation comme dans PythonWin).--
Pas de bureau 3d libre sans drivers libres!-
[^]Re: Ruby 1.8.0 est sorti
Posté par Elrik de Melnibone () le 06/08/2003 à 10:24. (lien). Évalué à 4.>>si une fonction ou une classe et longue, il peut être difficile de voir quel bout de code appartient à quel bloc
Bon, d'accord, mais quand t'as pas l'indentation, c'est pas plus facile à voir !-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 10:37. (lien). Évalué à 8.Oui, enfin sauf que on a pas attendu python pour indenter des programmes hein ... y'a même une flopée d'indenteurs automatiques.
Et ne pas avoir de délimiteurs style accolades est pas terrible pour plusieurs raisons, dont par exemple les charmants problèmes qui peuvent se poser avec cvs, différents éditeurs, ou simplement le fait d'avoir de ne pas avoir le raccourci très pratiques (sous vim ou emacs) de "sauter" d'une accolade fermante à l'accolade ouverte correspondante et vice versa.
Bref. Python en tant que langage, pour ce que j'en ai vu c'est sympa, mais cette histoire de délimitation des blocs par des blancs ... berk.
Accessoirement, sans être vraiment rentré dans le détail des deux langages, j'avait plus apprécié le côté tout-objet de ruby.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Amand Tihon (page perso, ) le 06/08/2003 à 10:49. (lien). Évalué à 10.Je m'insurge. Tu peux utiliser les délimiteurs de blocs en python :
def f(x): #{
return x*x
#}
ou même, pour les nostalgiques du pascal :
def f(x): #begin
return x*x
#end;
C'est pas un beau langage, ça ? :)-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 11:38. (lien). Évalué à 3.Ah ben je connaissais pas.
C'est pas un beau langage, ça ? :)
Honnêtement ? c'est assez hideux àmha.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 11:42. (lien). Évalué à 2.Je parle des délimiteurs de blocs cités plus haut, bien sûr.
Enfin moi ce qui m'avait de toute façon plus intéressé dans Ruby par rapport à Python, c'était le côté fortement orienté objet. Mais bon, ça n'empêche pas que Python sois un langage sympa et tout (beaucoup de choses vraiment Très Sympas utilisent python ;-), c'est juste que moi je m'y suis pas fait (ou on va dire que j'ai pas pris la peine).-
[^]Re: Ruby 1.8.0 est sorti
Posté par Amand Tihon (page perso, ) le 08/08/2003 à 21:38. (lien). Évalué à 1.Je répond peut-être un peu tard, mais tant pis.
Pour les délimiteurs de bloc... Ben vu que le # indique un commentaire, tu peux utiliser ce que tu veux, même #debut/#fin, ton bloc devra toujours être indenté :)
Sinon, pour l'orienté objet, je rappelle qu'en python c'est facile, tout est objet.
Une fonction est un objet de type "function".
Une déclaration de classe est un objet de type "class".
Une méthode est un objet de type "instanced method" (ou "class method")
Même un type est un objet de type... "type", eh oui.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Frederick Ros (page perso, ) le 11/08/2003 à 08:41. (lien). Évalué à 1.Et un entier aussi ?
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Pascal Terjan (Jabber id, page perso, ) le 11/08/2003 à 08:58. (lien). Évalué à 1.Ben un entier est un objet et il a plein de methodes.
-
-
-
-
-
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Philippe Fremy (page perso, ) le 07/08/2003 à 07:40. (lien). Évalué à 3.> melange d'indentation et tabulation
C'est vrai que c'est chiant a mourrir. Le probleme, c'est quand tu edites le code de qq'un d'autre qui n'a pas les memes reglages sur ton editeur que toi. L'horreur complete etant quand il melange tab et space, genre il indente a deux espaces mais mais un tab au lieu de 8 espaces (c'est malheureusement un des rares defaut du code autrement nickel de Qt).
Heureusement, il y a la solution: faire detecter par l'editeur l'indentation utilisee: http://phil.freehackers.org/indent-finder/index.html(...)
> si une fonction / class est longue
Si une fonction est longue, c'est qu'il faut la racourcir. Tu augmentes la lisibilite du code en utilisant des noms explicites, tu le rends plus modulaire. Linus recommande egaglement de ne pas avoir plus de trois niveaux d'indentation et il a raison. Dans ce cas, je compte l'indentqation de la class et de la methode comme nulle.
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Gabriel () le 06/08/2003 à 12:40. (lien). Évalué à 2.<borborygme>un programme mal indenté est aussi buggé qu'un programme qui plante</borborygme>
--
Every takeoff is optional. Every landing is mandatory. -- Rules Of Flying-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 12:48. (lien). Évalué à 7.Sauf que s'il suffisait de lancer un programme "debug" et d'attendre sagement que le logiciel soit débuggé, ça se se saurait.
man indent
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par wismerhill (page perso, ) le 06/08/2003 à 17:26. (lien). Évalué à 2.À propos de l'indentation pour faire des blocs en python.
Je fais remarquer aussi que du coup il n'est plus possible d'indenter sans créer un bloc, et qu'en plus python n'accepte pas les blocs inutiles (c'est à dire qui ne suivent pas un if for while def classs ...).
Il m'est déjà arrivé d'indenter quelques lignes de code pour bien les mettre en évidence par rapport au reste (c'était en java, pour créer une UI avec des widget imbriqués, l'indentation mettait en évidence l'imbrication des widget). Avec python c'est pas possible.
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par manatane () le 06/08/2003 à 09:48. (lien). Évalué à 9.Ruby est purement interpreté contrairement à Python qui est precompilé en byte code avant la phase d'interpretation.
Python est donc plus rapide que Ruby et plus adapté à des projets conséquents.-
[^]Re: Ruby 1.8.0 est sorti
Posté par TSelek () le 06/08/2003 à 13:46. (lien). Évalué à 4.Ouais bof.
Dire ça c'est un peu comme confondre le langage Java en lui même et la JVM. D'ailleur une vm pour ruby c'est pas nouveau comme idée. Mais là on en est au début et matz voulait d'abord stabiliser le langage. Donc autant on peut apprecier le langage de ruby depuis cette sortie, autant il est urgent d'attendre à propos de perfs.-
[^]Re: Ruby 1.8.0 est sorti
Posté par jmfayard () le 06/08/2003 à 14:00. (lien). Évalué à 1.la vm pour ruby : parrot ?
http://www.perl.com/pub/a/2003/07/16/soto2003.html?page=6(...)
(Extrait du discours sur l'état de l'Oignon par Larry Wall )-
[^]Re: Ruby 1.8.0 est sorti
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Thierry Boudet (page perso, ) le 11/08/2003 à 17:18. (lien). Évalué à 1.XXXXXX est donc plus rapide que YYYY et plus adapté à des projets conséquents.
En quoi la "rapidité" est-elle un critère discriminant pour un projet conséquent ?
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Elrik de Melnibone () le 06/08/2003 à 09:59. (lien). Évalué à 5.Python et Ruby sont bien des concurrent directs !
Je connais peu Ruby (pour avoir commencé python, j'ai pas envie de changer :-)
La différence c que Python à l'air beaucoup plus utilisé que Ruby, notamment comme langage de plugin pour de grosses applications.
On va dire que c'est parce qu'il est plus vieux...
En tout cas, je vois pas de raison valable de passer à Ruby si on connait Python, je pense que les 2 langages sont comparables, sauf encore une fois que python est plus utilisé pour l'instant.
[troll] Ruby est-il un effet de mode ? Pour faire un peu rebelle et puriste (100% objet) ? [/troll]-
[^]Re: Ruby 1.8.0 est sorti
Posté par Yusei () le 06/08/2003 à 10:08. (lien). Évalué à 4.«On va dire que c'est parce qu'il est plus vieux... »
Je crois que c'est surtout parce que Ruby est d''origine japonaise, et que pendant longtemps la doc était en japonais. C'est lorsque des journalistes ont fait le très bon "Programming Ruby" [1] que le langage se répand.
Pour ma part j'ai commencé avec Ruby, et ne connais pas Python, donc j'ai plus ou moi la même position que toi (à l'envers).
[1] http://www.rubycentral.com/book/(...)-
[^]Re: Ruby 1.8.0 est sorti
Posté par matiphas () le 06/08/2003 à 11:00. (lien). Évalué à 9.A l'epoque je cherchais un langage elegant pour faire du prototypage.
Le choix s'etait vite porte sur Python, Perl, Ruby.
J'avais vite elimine Perl, malgre beaucoup de points forts (une enorme communeaute) a cause de son code que je trouve un peu 'foutoir'.
Donc en fait l'alternative etait vite devenue Python/Ruby.
Ils partagent de nombreux points communs :
- faiblement types
- tres orientes objets
- plutot 'haut niveau'
- tres elegants
- tres faciles a apprendre
J'ai finalement choisi Python (mais je continue de croire que Ruby est un tres tres bon langage)
- une communeaute un peu plus importante que Ruby.
- des developpements plus aboutis a l'epoque (stabilite du langage, libs...).
- un peu plus rapide que Ruby.
- et surtout une doc plus fournie.
Contrairement a beaucoup, j'ai vecu le cote indentation obligatoire comme un point fort qui oblige a coder propre et qui aide a rendre le code maintenable.
Au final je vois ces deux langages comme a la fois concurrents et complementaires, et dont les communeautes apprennent beaucoup l'une de l'autre.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Yusei () le 06/08/2003 à 11:07. (lien). Évalué à 2.Ils sont concurrents, mais au moins c'est une bonne concurrence, qui oblige les développeurs des deux langages à corriger leurs défauts respectifs :-)
Donc, vive la concurrence, et vive les trolls...-
[+] [^]Re: Ruby 1.8.0 est sorti
-
[+] [^]Re: Ruby 1.8.0 est sorti
Posté par jmfayard () le 06/08/2003 à 11:42. (lien). Évalué à -2.et vivent les gens qui n'accordent pas leur pluriel.
-
[^]Re: Ruby 1.8.0 est sorti
Posté par bmc () le 06/08/2003 à 11:59. (lien). Évalué à 1.http://www.langue-fr.net/index/S/soit-soient.htm(...)
c'est toujours très risqué de critiquer l'orthographe ou la grammaire...-
[^]Re: Ruby 1.8.0 est sorti
Posté par Boa Treize (page perso, ) le 06/08/2003 à 12:28. (lien). Évalué à 2.Moi, j'aime bien accorder le verbe vivre dans cet usage, et je continuerai de le faire.
-
-
-
-
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Frederick Ros (page perso, ) le 06/08/2003 à 11:56. (lien). Évalué à 3.> [troll] Ruby est-il un effet de mode ? Pour faire un peu rebelle et puriste (100% objet) ? [/troll]
Non, je ne pense pas .. D'abord il n'est pas tout recent, ensuite je pense que quitte a faire de l'objet, autant faire vraiment de l'objet ...
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Guillaume Laurent (page perso, ) le 06/08/2003 à 17:10. (lien). Évalué à 6.Python et Ruby sont directement concurrents, et à mon avis Ruby l'emporte de loin sur le plan technique. Outre le fait qu'il est bourré de bonnes idées (entre autres, les iterateurs, l'utilisation de '@' et '$' pour denoter les variables membres ou globales), Ruby est OO dès le départ, alors que pour Python ça n'est venu qu'après. Du coup on se retrouve avec des 'self' partout, des '__machin__', etc... Ruby a ainsi une syntaxe à la fois plus concise et plus claire que celle de Python.
Et surtout, Ruby est un langage très agréable à utiliser. C'est l'un des rares langages que je connaisse qui donne envie de coder.
Par contre, les avantages de Python sont une doc plus complèete, et plus de librairies. Il faut que Ruby murisse un peu de ce coté là...
-
[^]Re: Ruby 1.8.0 est sorti
Posté par champi (page perso, ) le 06/08/2003 à 18:15. (lien). Évalué à 0.Je ne connais pas Ruby mais Python est le langage utilisé pour développer le serveur d'application Zope ( http://www.zope.org(...) - nouveau site web !) qui est vraiment bien foutu pour la gestion de contenu (cf CPS de Nuxeo en GPL).
Connaitre Python est un atout pour bien exploiter les capacités de Zope.
Voila une autre raison d'apprendre python.
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Erwan (page perso, ) le 08/08/2003 à 02:52. (lien). Évalué à 2.Entre autres, Ruby est un projet initie par un japonais. Par consequent, les expressions regulieres permettent de tenir compte de la nature du caractere rencontre (caractere latin, hiragana, katakana ou kanji). C'est tres utile quand on bosse sur des chaines en langue naturelle en japonais.
-
[^]Attention, Python aussi évolue...
Posté par Laurent Pointal (page perso, ) le 08/08/2003 à 13:04. (lien). Évalué à 4.Par rapport à ce que j'ai pu lire et aux liens donnés, attention aux comparaisons par rapport à d'anciennes versions de Python (ex. 1.5.2).
Dans la dernière version - la 2.3 sortie récemment - et même avec les précédentes, certaines critiques ne sont plus valables (par exemple il y a maintenant un type booléen, les types de base ont été unifiés aux classes (http://www.python.org/2.2.2/descrintro.html(...) ), les itérateurs sont apparus, le support d'Unicode s'est bien amélioré...).
Python a tendance a reprendre ce qui est bon ailleurs (et j'imagines que si la communauté Ruby est efficace, c'est pareil de ce côté). L'auteur principal de Python (Guido Van Rossum) tient un peu le rôle de Linus Torvald pour Linux: sélectionner parmis toutes les propositions d'évolution celles qui sont bonnes.
Un avantage (actuel) de Python c'est sa maturité. Les développeurs en sont maintenant a travailler sur l'efficacité du code (et ils bossent bien). Et les librairies sont de plus en plus nombreuses un peu dans tous les domaines.
Un avantage (mais peut-être Ruby est-il aussi dans ce cas) c'est que Python s'adapte très bien à toutes les tailles de projets, et permet de coder directement le projet final en codant la maquette.
Pour ce qui est de l'indentation, c'est vraiment une question de goût. Personnellement, avec les chaînes de documentation directement dans le code, c'est un aspect que me fait aimer Python.
Maintenant, à choisir... les deux langages semblent assez proches en terme de fonctionnalités et comme c'est gratuit: téléchargez les deux, montez un (petit) projet de test et développez le (faites appel aux communautés des newsgroups et listes de diffusion pour améliorer le code)... et faites votre chois en fonction de vos goûts.
A+
Laurent P.
Pour les évolutions:
http://www.python.org/2.3/highlights.html(...)
http://www.python.org/doc/2.2.1/whatsnew/(...)
http://www.amk.ca/python/2.1/(...)
http://www.amk.ca/python/2.0/(...)
http://www.python.org/1.6/#news(...)
-
[^]Re: Ruby 1.8.0 est sorti (plash dans le troll)
Posté par Thierry Boudet (page perso, ) le 11/08/2003 à 15:11. (lien). Évalué à 1.Je pratique assez régulièrement Ruby, surtout pour des petits scripts, mais j'apprécie beaucoup les possibilités de la chose, en particulier pour le tcp. La création d'objets munis de comportements complexes est assez facile. La lisibilité des scripts est en général assez bonne, sauf si on fait le goret, bien entendu.
D'un autre coté, je n'ai jamais trop pratiqué Python, ses impératifs de formatage du source m'ont toujours rebutés. Je sais, ce n'est pas une bonne raison... Il faudra que je m'y remette un de ces jours, d'autant plus que je pratique régulièrement le f77, qui réclame lui aussi un formatage précis, donc ça n'est finalement pas une bonne excuse...
En tout cas, je recommande fortement d'essayer Ruby. Dans le tarball, il y a une foultitude d'exemples bien sympathiques, dont la lecture attentive est riche d'enseignements.
Voilà, je retourne dans la piscine...
Re: Ruby 1.8.0 est sorti
J'ai une question simple pour les programmeurs Ruby : Existe-t-il des GUI cross-plateforme pour Ruby (Linux/MacOs X/Windows) ?
Sinon, y a-t-il d'autres langages de script avec des GUIs cross-plateforme ?
Et même question pour les accès aux BD ;-)
Merci.
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 09:38. (lien). Évalué à 3.Je dirais bien qu'on peut coder des applis GNUstep en ruby ...
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Philip Marlowe (Jabber id, ) le 08/08/2003 à 19:21. (lien). Évalué à 1.Hormis les différences entre un langage compilé et un langage interprété, quel est ton sentiment sur Ruby comparé à Objective C pour coder des appli GNUstep ?
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 08/08/2003 à 20:49. (lien). Évalué à 3.Ben j'avais vaguement joué avec ruby il y a quelques mois, histoire de voire comment ça marchait, et j'avais plutôt bien aimé. Mais bon j'avais pas trop regardé son utilisation dans le cadre de GNUstep; du coup la news m'a donné envie de me pencher un peu dessus, et j'aime assez. C'est plutôt simple et tout. Par contre j'ai pas vu rapidement comment utiliser les fichiers Gorm, ce qui est un peu dommage :-/ mais bon je suis en train de me renseigner (à priori le binding ruby pour MacOS X n'a pas ce problème, mais peut être fonctionne-t-il sur un principe différent).
Sinon ça ressemble à ça : require 'rigs' Rigs.import("NSApplication") Rigs.import("NSGraphicsContext") Rigs.import("NSWindow") Rigs.import("NSButton") Rigs.import("NSProcessInfo") Rigs.import("NSSelector") Rigs.import("NSString") class NSButtonTest def initialize @window = NSWindow.alloc end def applicationWillFinishLaunching (notification) button = NSButton.new button.setTarget(self) button.setAction( selector("buttonPress:")) button.setTitle("Print Quote") button.sizeToFit() rect = button.frame() styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask @window.initWithContentRect_styleMask_backing_defer \ (rect, styleMask, NSBackingStoreRetained, false) @window.setTitle("GNUstep") @window.setContentView (button) end def buttonPress (sender) puts "Ca vous chatouille ou ca vous gratouille ?" end def applicationDidFinishLaunching (notification) @window.center() @window.makeKeyAndOrderFront(self) end def applicationShouldTerminateAfterLastWindowClosed (application) true end end # main NSProcessInfo.processInfo.setProcessName("NSButtonTest") application = NSApplication.sharedApplication buttonTest = NSButtonTest.new application.setDelegate(buttonTest) application.run Donc c'est très simple à mettre en oeuvre. On récupère l'objet application : application = NSApplication.sharedApplication on crée un bouton à partir d'une classe que l'on a écrite plus haut : buttonTest = NSButtonTest.newet on délègue à ce bouton les messages envoyés à NSApplication comme applicationWillFinishLaunching (envoyé quand avant que l'application soit effectivement considéré comme lancée), applicationDidFinishLaunching (envoyé après que l'application soit considérée comme démarrée) et applicationShouldTerminateAfterLastWindowClosed (on indique qu'on veut que l'application se termine quand on ferme la fenêtre)
Ensuite, dans applicationWillFinishLaunching on crée un bouton (NSButton), on lui dit d'envoyer le message "buttonPress:" quand on clique dessus, on crée une fenêtre et on mets le bouton en tant que vue principale dans la fenêtre. Enfin dans la méthode "buttonPress:" on affiche un texte (qui sera donc affiché quand l'utilisateur cliquera sur le bouton). Enfin, dans applicationDidFinishLaunching on en profite pour centrer la fenêtre à l'écran et lui donner le focus.
Bref, pas bien compliqué, on fait exactement la même chose qu'en Objective-C quoi, sauf que c'est en ruby ... ;-)-
[^]Re: Ruby 1.8.0 est sorti
Posté par Philip Marlowe (Jabber id, ) le 09/08/2003 à 22:33. (lien). Évalué à 1.Merci pour ta réponse et tes échantillons de code.
-
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Guillaume Leclanche (page perso, ) le 06/08/2003 à 09:39. (lien). Évalué à 4.Sinon, y a-t-il d'autres langages de script avec des GUIs cross-plateforme ?
tcl/tk ? (www.tcl.tk)
mais tcl sapu© et tk cépabo©
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Christophe Fergeau () le 06/08/2003 à 09:40. (lien). Évalué à 2.GTK+ étant cross platform (au moins linux/windows, je suis pas sur qu'il y ait un port macosx natif utilisable, mais en X11 ca fonctionne), tu peux croiser les doigts très forts pour que les bindings ruby/python/perl (je crois que ça existe) pour gtk soient aussi multiplateforme :)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Yusei () le 06/08/2003 à 10:11. (lien). Évalué à 2.Je n'ai pas testé les bindings Ruby-GTK sous Windows (même si j'voulais...), mais ils sont censés être portables. Et vu la manière dont ils sont codés, ça m'étonnerait qu'ils soient moins portables que GTK, puisqu'il s'agit en gros d'englober les fonctions GTK dans des macros et de dire à ruby comment les appeler et quels paramètres on veut. Il n'y a rien là dedans qui devrait être dépendant du système.
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Tennis Prono (page perso, ) le 06/08/2003 à 09:45. (lien). Évalué à 0.Python + (wxPython | tk)
--
Pas de bureau 3d libre sans drivers libres!
-
[^]Re: Ruby 1.8.0 est sorti
Posté par undeuxtroisout () le 06/08/2003 à 10:09. (lien). Évalué à 6.Existe-t-il des GUI cross-plateforme pour Ruby
FOX : http://fxruby.sourceforge.net/(...)
GTK2 : http://ruby-gnome2.sourceforge.jp/(...)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par bmc () le 06/08/2003 à 10:22. (lien). Évalué à 2.Pour les accès aux bases de données, tu disposes sous Ruby de l'excellent DBI, équivalent à celui de Perl, qui permet de faire l'interface avec un ensemble de bases de données, le tout de façon abstraite: tu changes de base de données, et si tu as pondu du code SQL standard, il te suffit de modifier les paramètres d'accès à la base (type de base, nom d'utilisateur, mot de passe) et ça marche nickel (en théorie :)
La page Web: http://ruby-dbi.sourceforge.net/(...)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par champi (page perso, ) le 06/08/2003 à 10:23. (lien). Évalué à 2.Python + wxPython vraiment bien (et joli sur tous les systèmes):
wxPython (qui vient de la lib cross-plateforme wxWindows pour C++) utilise les GUI natifs pour chaque systeme:
- GTK (1.x ou 2.x) pour GNU/Linux et autres *BSD
- X11 ou Motif/Lesstif (pabo :-) pour les ceuces qu'on pas GTK
- WIN32 GUI pour Windows (cd 95 a XP en passant par NT et 2000)
- Carbon & Cocoa pour MacOS 9/X
(- y a meme un truc pour OS/2 il me semble)
Y a aussi Python + PyQt mais je connais pas bien.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Julien Portalier (page perso, ) le 06/08/2003 à 16:43. (lien). Évalué à 1.Moi j'utilise pytgtk (gtk+2) et je le trouve vraiment agréable, sachant qu'il tourne aussi bien sous *nix que sous Win32. Mac je sais pas : je crois que seul GTK+1.2 est porté actuellement... dc le binding pygtk risque pas trop de marcher dessus.
-
[^]Re: Ruby 1.8.0 est sorti
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Pascal Terjan (Jabber id, page perso, ) le 06/08/2003 à 10:35. (lien). Évalué à 1.Existe-t-il des GUI cross-plateforme pour Ruby (Linux/MacOs X/Windows) ?
voir ma NdM
Sinon, y a-t-il d'autres langages de script avec des GUIs cross-plateforme
Perl, PHP, Python, ...
-
[^]Re: Ruby 1.8.0 est sorti
Posté par blackshack (page perso, ) le 06/08/2003 à 10:44. (lien). Évalué à 1.il y a un bindings de Qt pour ruby, par contre la dernière fois que j'ai regardé c'etait un binding de la version 2.3 de Qt -mais bon j'ai pas regardé dernièrement-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Christophe Fergeau () le 06/08/2003 à 11:13. (lien). Évalué à 0.On ne répétera jamais assez que qt n'est *pas* une solution pour faire du logiciel libre multiplateforme (et on fait tous une petite prière pour que la version windows soit dispo sous gpl un jour prochain).
-
[^]Re: Ruby 1.8.0 est sorti
Posté par tanguy_k (page perso, ) le 06/08/2003 à 12:44. (lien). Évalué à 1.GTK non plus vu la stabilite des portages et en plus ca n'existe pas pour MacOS X (enfin si mais c'est comme si ca n'existait pas en fait).
Qt est dispo sous licence GPL pour Unix et MacOS X de facon stable.
Reste plus que wxWindows qui est vraiment portable partout (Unix, MacOS X et Windows) sous licence LGPL.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Christophe Fergeau () le 06/08/2003 à 13:05. (lien). Évalué à 0.On est d'accord, sauf qu'il y a quand meme une différence entre un truc qui n'est pas libre et un truc libre mais (un peu beaucoup) buggé... Pour ma part, je préfère faire du multiplateforme linux/windows que du multiplateforme linux/macosx (surtout que sous osx x11 est preque livré en standard)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par tanguy_k (page perso, ) le 06/08/2003 à 16:50. (lien). Évalué à 2.> un truc libre mais (un peu beaucoup) buggé
J'ai fait 6 mois de gtk 1.2 en C++ sous Linux et Windows il y a environ 1 an dans une boite a plein temps. Ba sous windows c'etait vraiment pas la joie, il y avait des differences de comportement importantes et puis comme la doc est inexistante. Tu es oblige de bidouiller pour que ca fonctionne de la meme facon sous Linux et Windows. Autant utiliser wxWindows.
Depuis ca a peut etre change, mais bon niveau programmation Qt est de toute facon loin devant gtk ahma et il n'est pas exclus d'avoir une version GPL de Qt sous windows d'ici quelques mois.-
[^]Re: Ruby 1.8.0 est sorti
Posté par Christophe Fergeau () le 06/08/2003 à 17:32. (lien). Évalué à 3.Ouais enfin bon, gtk 1.2....
Les developpeurs de gtk eux memes sont surpris que des gens aient réussi à écrire des applis avec, c'est pour dire ;)
Sinon on dit exactement la même chose mais pas de la même façon, c'est un peu contreproductif comme thread :)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par HappyPeng () le 09/08/2003 à 05:22. (lien). Évalué à 1.GTK+ 1.2, et avec un binding.
Seule les versions >= 2.0 peuvent être véritablement considérées comme portées sous Windows.
Lorsque l'on juge un logiciel, on évite de juger des versions depuis longtemps obsolètes.
Quand à la prétendue supériorité de Qt elle est certainement dûe (sans vouloir vous offenser) à votre goût trop prononcé pour le C++ *ahem*.
http://inti.sourceforge.net/download.html(...)
(c'est bien pour les amateurs d'Unix-likes et de C++, mais aura-t-on le courage d'extraire le GTK+ et de compiler sous Windows pour les autres ? :-)-
[^]Re: Ruby 1.8.0 est sorti
Posté par Guillaume Laurent (page perso, ) le 11/08/2003 à 22:25. (lien). Évalué à 1.Lorsque l'on juge un logiciel, on évite de juger des versions depuis longtemps obsolètes.
C'est vrai. Néanmoins, même sans juger des versions obsolètes, on peut dire des anneries. Démonstration par l'exemple :
Quand à la prétendue supériorité de Qt elle est certainement dûe (sans vouloir vous offenser) à votre goût trop prononcé pour le C++ *ahem*.
CQFD (sans vouloir t'offenser).
-
-
-
-
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par spart (page perso, ) le 06/08/2003 à 13:01. (lien). Évalué à 4.Ben Richard Dale est en train de dériver des bindings Ruby-Qt à partir de la version Perl (maintenue par ma pomme)...
Ca commence à être propre, même si encore un peu lent.
Comme on se base sur une librairie commune (SmokeQt, qui est une sorte d'interface introspective à la Corba pour Qt), il n'y a plus de problèmes de version. Le Smoke actuel peut être compilé avec Qt 2.3 à 3.2 et est généré automatiquement à partir des en-têtes.
Seule la partie Signal/Slots est susceptible de changer et de nécessiter des ajustements d'une version à l'autre (en gros, pour chaque version majeure).
Donc les bindings Perl et Ruby offrent le même niveau de fonctionnalité: accès complet à tout Qt, surcharge des fonctions virtuelles, signaux/slots illimités et définissables, etc...
-
Re: Ruby 1.8.0 est sorti
Quelques remarques en plus ...
1. Juste pour différencier Python et Ruby, un concept interressant dans Ruby (issu du langage CLU) qu'on ne retrouve pas dans Python : la conception facilitée des itérateurs.
Un simple exemple tiré du livre de référence ("Programming Ruby" déjà cité):
class Array
def find
for i in 0...size
value = self[i]
return value if yield(value)
end
return nil
end
end
[1, 3, 5, 7, 9].find {|v| v*v > 30 } --> donne 7
Au passage, on note la facilité d'extention des classes de bases, et l'utilisation du tout objet.
2. Le débat sur l'indentation dépend AMHA des habitudes de chacun et de l'éditeur utilisé.
Maintenant, le langage choisi n'est qu'une question de contexte et de gout personnel :)
3. Aux GUI FOX et GTK déjà mentionnés, on peut rajouter Tk ( voir http://www.rubygarden.org/ruby?RubyTk(...) ), et l'expérimentation Appolo (sur une base des librairies VCL de Delphi : http://www.moriq.com/apollo/index-en.html(...) ). Maintenant allez farfouiller du côté de RAA pour en trouver beaucoup d'autres : http://raa.ruby-lang.org/cat.rhtml?category_major=Library;category_(...) .
4. Deux nouveaux livres sur Ruby devraient sortir en fin d'année (en anglais ...) : "Game Programming With Python, Lua, and Ruby" et surtout "Code generation in action" ( http://www.codegeneration.net/(...) ) traitant de la métaprogrammation en basant ses exemples sur Ruby.
5. Désolé enfin pour les url non cliquables ... (c'était ma première brève sur DLFP :) ).
-
[^]Re: Ruby 1.8.0 est sorti
Posté par TazForEver () le 06/08/2003 à 14:20. (lien). Évalué à 3.1) ce concept existe aussi en python avec une synthaxe très similaire.
2) absolument d'accord-
[^]Re: Ruby 1.8.0 est sorti
-
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 14:35. (lien). Évalué à 4.Aux GUI FOX et GTK déjà mentionnés, on peut rajouter Tk
Et GNUstep ... le binding ruby est d'ailleurs assez original si je me souviens, car tirant partie des particularités de ruby et d'objective-c (à savoir l'instrospection). Du coup, le binding est toujours à jour en fait ... il "découvre" tout seul les classes au besoin :
One of the most interesting feature of RIGS is that it is 100%
dynamic. It means that RIGS maps Ruby object/methods to GNUstep and
vice/versa entirely on the fly when running the Ruby script. As a
consequence there is no need to generate any kind of wrapping code to
use either existing GNUstep classes or even new ones that you have
developped by yourself. Simply compile your new classes in a shared
library and then do a simple:
cool, non ?-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 06/08/2003 à 14:37. (lien). Évalué à 1.oops il manquait un bout :
require('MyNewClass') # load your extra ObjC shared library
Rigs.import("MyNewClass") # dynamically import the class in Ruby
and you are in business! Cool, hey.
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Laurent Sansonetti (page perso, ) le 06/08/2003 à 21:47. (lien). Évalué à 2.Une petite partie de l'API de Ruby-GNOME2 est également générée on-the-fly (c'est à dire les propriétés, les signaux et les accesseurs).
Tout ceci graçe à Ruby/GLib ;-)
-
[^]Re: Ruby 1.8.0 est sorti
Posté par HappyPeng () le 09/08/2003 à 05:25. (lien). Évalué à 1.Mentionnons en ce cas StepTalk, qui me semble un excellent projet.
-
[^]Re: Ruby 1.8.0 est sorti
Posté par Nicolas Roard (page perso, ) le 09/08/2003 à 07:52. (lien). Évalué à 1.Oui, c'est effectivement un très très bon projet :-P
Pour ceux qui ne connaissent pas, StepTalk permet d'inclure ultra-simplement dans une application un moteur de script (avec AppTalk), en indiquant quels sont les objets de l'appli qui peuvent être accédés. Vraiment cool.
Mais StepTalk est plus que ça, en fait il permet d'accèder très simplement à des objets qui ne sont pas forcément dans l'appli (objets répartis, ou objets d'une autre application). L'idée c'est que StepTalk soit une sorte de "glue" entre des objets et applications -- l'utilisateur ne travaillerait pas avec des "applications" en tête, mais en utilisant les objets disponibles, ou qu'ils soient. Donc c'est plus une sorte de VBScript ou AppleScript, dopé aux stéroïdes.
Théoriquement, il est langage-indépendant (les langages de scripts sont dans des bundles), mais pour le moment il n'y a que deux langages supportés : SmallTalk (héhé... forcément! :-) et Guile. Un bundle ruby serait bien cool !
Plus d'infos :
http://steptalk.host.sk/(...)
-
-
Tutoriel Ruby
Hello tout le monde,
Le tutoriel "Apprenez Ruby" est disponible sur ruby-doc: http://www.ruby-doc.org/docs/beginner-fr/xhtml/index.html(...) .
Le lien actuel pointe sur une machine cable, ca doit lagger un peu ;-)
Si un modérateur passe, saurait-il faire le changement?
(et également virer le premier jet sur le thread gentoo, je m'ai trompé ;-)
--
lrz
-
[^]Re: Tutoriel Ruby
Posté par bmc () le 06/08/2003 à 20:15. (lien). Évalué à 1.Merci à vous et à vos «collègues» pour cet excellent tutoriel.
-
[^]Re: Tutoriel Ruby
Posté par Laurent Sansonetti (page perso, ) le 06/08/2003 à 21:25. (lien). Évalué à 4.Mais de rien :-) Il faut surtout remercier Daniel Carrera, qui est l'initiateur du tutoriel.
Tant que j'y suis, nous allons traduire le hiki de Ruby-GNOME2 dans le courant de la semaine prochaine, et nous recherchons des volontaires. Contactez-moi si vous êtes intéressé ;-)
-




Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.