=?iso-8859-1?q?les_r=F4le_des_dossier?=

Oui oui :slight_smile:
On a pas mal débattu de ça sur #rubyfr.

Après avoir dérivé sur le chat de Schrödinger, on en est revenu à deux
choses : Ruby n’est pas totalement objet (on a pensé aux structures de
contrôle notamment) d’une part, et cela ne nous empêche pas de l’aimer
d’autre part.

Enfin, oui, j’aimerais bien apprendre le japonais et le Lisp :wink:


Guillaume “Zifro” DESRAT
http://…/
– Aah Jeez…I Wish You Could See This…Lights Coming Up…I’ve
Never Seen A Painting That Captures The Beauty Of The Ocean…I’m
Gonna Make You Rich, Bud Fox…Rich Enough You Can Afford A Girl Like
Darien…This Is Your Wake-Up Call, Pall…Go To Work…DROP IT!!!
(3 Steps Ahead - Drop It)

2006/4/27, Jean-François [email protected]:

Il y a tout ce qui touche à l’introspection. Je sais pas si ça existe en
Java, je sais pas si ça a un intérêt dans un langage où les classes
sont fermées.

Je répond juste à ça parce que sur le reste j’ai rien de plus à ajouter.

Il y a de l’introspection en Java, un peu pénible certes mais c’est dans
les
paquets de base: java.lang, java.lang.reflect et un autres mais j’ai
plus
sont nom en tête.

C’est possibilité là (introspection et autres) en java commen en ruby
sont
sensé pouvoir “dynamiser” enormement une application, car ça signifie
pouvoir créer un objet et l’utilisé directement sans avoir à arreté
l’application.

Mais je m’étendrais pas sur le sujet. Je m’en suis beaucoup servi en
Java,
et en Ruby je n’ai pas encore eu l’occassion (sauf pour un test maison
ou
deux :wink: ).

A plus tard.

Pour ceux qui aiment Ruby mais gardent un petit quelque chose pour C++
jetez
donc un oeuil sur le language D (comme son nom l’indique :slight_smile:

http://www.digitalmars.com/d/sdwest/index.html

Le 27/04/06, Nicolas P.[email protected] a écrit :

il me semble que Ruby est OO de partout
J’aime bien cette expression : “Ruby est OO de partout” :slight_smile:
(même en dessous des pieds ?)

(pas d’implémentation explicite d’une couche OO) ;

ça ne pose pas de pb à Java à ce niveau-là je crois.

ruby est OO Ã haut et bas niveau ; et
Ruby offre des possibilité OO poussées

mmmh…

avec les blocks (d’où viennent
les each(), collect()…),

ça ça a plutôt à voir dans la manière dont Ruby implémente les
itérateurs. En Java, si un spécialiste ne m’arrête pas, si une
classe implémente l’interface Itérateur qui va bien, alors elle
doit pouvoir des tas de choses super chouettes équivalentes
à ce qu’offre le module Enumerable.

Le pattern Itérateur est implémenté en Java (plus ou moins
élégamment qu’en Ruby, ça je sais pas…)

Les blocs de code (blocks) ont parfois plus à voir avec
la programmation fonctionnelle, on s’en sert comme handlers
fonctions anonymes ou callbacks. Eventuellement pour des
fermetures.

les enchaînements de méthodes, les
symboles

ça à voir avec la POO ? ya l’équivalent en lisp, je pense bien
(avec la notation :foo )

, nil ,

Java utilise null, c’est donc moins bien ? :slight_smile:

tout ce que tu décris plus bas.

Après y a-t-il un expert Ruby dans la salle pour nous en dire plus ?

Il y a tout ce qui touche à l’introspection. Je sais pas si ça existe en
Java, je sais pas si ça a un intérêt dans un langage où les classes
sont fermées.

qui l’est plus que C++ qui l’est plus que C qui ne l’est
pas du tout ?

En même temps on peut faire de l’objet en C :slight_smile:
On encapsule tout ça dans des structures avec des pointeurs
de fonctions et zou :slight_smile:

Certes. C peut être OO mais ne l’est pas par nature.

ok.

ça me fait penser aussi à un autre point sur lequel j’ai tiqué
dans ton article dont je ferai les remarques plus tard, car il est
tard, le C++ comme un patch du C, ouais, c’est un point de vue…
Au départ, c’était pas une lib en C ? c’est plus propre qu’un patch :slight_smile:

héhé, désolé, c’était un peu un raccourci d’énonciation. Ce n’est un
patch mais C++ dérive de C. J’ai mis ça en image par le patch. Ca ne
fait pas de C++ un mauvais langage OO mais il est incontestablement
plus lourd à utiliser que quelque chose comme Ruby.

Et encore, t’as pas vu la suite :

http://www.artima.com/cppsource/cpp0xP.html

mmmhh miam miam !!

Les messages cascadés (les appels de méthode en chaîne).

Haskell (mais le gros morceau je pense c’est de digérer la notion
de Monades)

Ouais emacs, ça paraît un peu chaud, je ne suis pas programmeur Ã
temps complet, alors faire de la programmation sous lisp paraît
difficile. Mais je serai curieux d’apprendre les fondement de Lisp et
Smalltalk sans programmer dans ces langages.

Erlang et Haskell, je suis infoutu de dire quoi que ce soit lÃ
dessus.

Erlang est un langage assez porté sur la récursivité, orienté
concurrence et tolérance aux pannes. La syntaxe est moins
agréable qu’en Ruby.

Haskell est un langage fonctionnel, assez porté je crois
sur les histoires de curryfication (mmmh je pourrais pas
en dire plus)

Ca m’intéresse vivement ! J’ai commencé un peu de
programmation il y 6 ou 8 ans avec du C++ et du Java. J’ai alors été
assez dégoûté par ces langages. Je suis passé par du PHP et pas mal
de programmation de page web (xhtml/css…) Je n’ai été reconquit Ã
la vrai programmation qu’avec ruby (et rails), récemment. Et je me
rend compte adorer ça. Je vais me renseigner sur ces 2 langages !

Il peut être aussi intéressant de voir comment 2 langages “frères”
comme Perl et Python ont influencé Ruby. Et lisp sur d’autres
aspects (les continuations par exemple).

Et alors les Monades… connaît encore moins !

En googlant, viens de trouver ça :

"En tant que telles, les monades ne sont pas une spécificité de Haskell,
ou même des langages fonctionnels. Elles sont accessibles à tout
langage pouvant utiliser des closures (fermetures) et des fonctions
anonymes. ML, Scheme et Lisp, donc, mais également le trio des
langage de scripting : Perl, Python et Ruby, au travers de certaines
de leurs capacités fonctionnelles… "

tiens donc, on peut faire ça en Ruby !

"Les monades sont un moyen de construire et regrouper les traitements
de manière séquentielle. Il faut savoir que les langages fonctionnels
purs (sans effets de bords) considèrent qu’afficher des données Ã
l’écran,
ou les écrire, est “impur”. Un effet de bord est un effet inattendu
d’une
fonction, et par extension, une modification de l’environnement :
changer la
valeur d’une variable, par exemple, est un effet de bord. Les monades
sont
un moyen de briser cette limitation en rendant possible la présence de
telles “impuretés” dans un langage “pur”. Vous avez suivi ?

Les monades sont donc une technique pour introduire une forme de
programmation impérative (accès E/S, changement d’état, exceptionsâ?¦) au
sein d’un langage fonctionnel. Elles le font en “emmagasinant”, en
quelque
sorte, les calculs en cours de traitement au sein de blocs séquentiels,
eux-mêmes séquençables en calculs. Une monade détermine en quoi ces
calculs combinés peuvent créer un nouveau calcul reprenant leurs
traitements."

Faut lire ça à tête reposée. Je vais pas tarder à méditer là dessus…

Et puis le japonnais, le mandarin, l’arabe et le russe…

On peut pas complètement comparer les langages de programmation
et les langues. Rien que pour le vocabulaire par exemple, ya qu’Ã voir
le nombre de mots réservés existant en Ruby…

C’était une blague… Mais ayant fait des études littéraires
(toujours en licence de lettre d’ailleurs), j’ai été étonné de voir
dans mes cours de linguistique l’importance de l’aspect mécanique de
la langue.

Ce qu’il y a en commun, ce sont les notions de lexique, de syntaxe
(+ les ambiguïtés) notamment, mais pas celle du déboguage !

bonne nuit,

-- Jean-François.

2006/4/27, Jean-François [email protected]:

J’ai pas mis Java dans la liste, car j’étais pas sûr, les entiers
sont des objets en Java ?

Bah en Java il y a

Guillaume Zifro DESRAT wrote :
| Enfin, oui, j’aimerais bien apprendre le japonais et le Lisp :wink:

Un bon bouquin pour commencer (même s’il n’utilise à priori Lisp que
comme support) : http://mitpress.mit.edu/sicp/full-text/book/book.html

Il est libre et se trouve même en version texinfo


Frederick R. aka Sleeper – [email protected]

Make sure comments and code agree.
- The Elements of Programming Style (Kernighan & Plaugher)

Oue bah franchement le Lisp ça t’avancera pas beaucoup. C’est un
langage où le code est impossible à relire (Et merde il n’y a que
39 parenthèses alors qu’il en fallait 40 à droite …). En plus ça
reste (presque) exclusivement un langage de laboratoire comme le
Prolog, pour prototyper (notamment) des programmes d’IA.
Le SmallTalk par contre est lui, de mon point de vue, bien plus
intéressant et surtout bien plus utile (mais la je m’aventure sur
un terrain que je ne connais pas :x).

Merci du conseil ! Je pensais au Lisp notamment à cause de Paul
Graham qui en parle tant et plus. Je me mettrais donc certainement au
smalltalk en premier.

NP_______________________________________________
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Merci du conseil ! Je pensais au Lisp notamment à cause de Paul
Graham qui en parle tant et plus. Je me mettrais donc certainement au
smalltalk en premier.

Sinon en langage fontionnel, tu as le caml (notamment Objective Caml) et
Scheme qui sont pas mal utilisé (pour des langages fonctionnels). Car le
SmallTalk contrairement à Lisp est un langage impératif et non
fonctionnel.

Oups erreur de manip :x Désolé pour l’envois du message precedent.

Le 27/04/06, Nicolas P.[email protected] a écrit :

Tout ceci n’est pas gênant, comme le dit Eric. Mais si on cherche
à établir une sorte d’échelle de gradation objet, Ruby l’est
plus que le C (:slight_smile: ), plus que le Perl, plus que Python, moins que
Smalltalk…

Puis-je ajouter, sans froisser personne, que Ruby est beaucoup plus
OO que Java

J’ai pas mis Java dans la liste, car j’étais pas sûr, les entiers
sont des objets en Java ?

Donc je reprend :slight_smile:
En Java tu as les types primitif (type de base qui ne sont pas des
objets:
char, int, long, float, etc…), et la redéfinition de ces types en
objet
(Character pour char, Interger pour int, Long pour long, etc…).

Si je devais apprendre d’autres langages je serais tenté par

Smalltalk et Lisp (ok c’est pas très utile tout ça, et alors ?).

Oue bah franchement le Lisp ça t’avancera pas beaucoup. C’est un langage
où
le code est impossible à relire (Et merde il n’y a que 39 parenthèses
alors
qu’il en fallait 40 à droite …). En plus ça reste (presque)
exclusivement
un langage de laboratoire comme le Prolog, pour prototyper (notamment)
des
programmes d’IA.
Le SmallTalk par contre est lui, de mon point de vue, bien plus
intéressant
et surtout bien plus utile (mais la je m’aventure sur un terrain que je
ne
connais pas :x).

Salut,

Il y a aussi Io, un petit nouveau, qui a l’air intéressant. (http://
www.iolanguage.com/about/)

Bonne journée,
NP

Vincent J. wrote:

Merci du conseil ! Je pensais au Lisp notamment à cause de Paul
Graham qui en parle tant et plus. Je me mettrais donc certainement au
smalltalk en premier.

Sinon en langage fontionnel, tu as le caml (notamment Objective Caml) et
Scheme qui sont pas mal utilisé (pour des langages fonctionnels).

Et templeet.

Car le

En plus il est multi plate forme. Tu l’as testé ?

Le 27/04/06, Nicolas P. [email protected] a écrit :

http://c2.com/cgi/wiki?ExtraLegsOntoAdog

----- Original Message -----
From: “Aurélien DEHAY” [email protected]
To: [email protected]
Sent: Thursday, April 27, 2006 12:30 PM
Subject: Re: [RailsFr] les rôle des dossier

Vincent J. wrote:

Merci du conseil ! Je pensais au Lisp notamment à cause de Paul
Graham qui en parle tant et plus. Je me mettrais donc certainement

au

smalltalk en premier.

Sinon en langage fontionnel, tu as le caml (notamment Objective Caml) et
Scheme qui sont pas mal utilisé (pour des langages fonctionnels).

Et templeet.

Car le

SmallTalk contrairement à Lisp est un langage impératif et non
fonctionnel.


Aurélien DEHAY


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance


non pas encore, juste lu des trucs dessus.
NP

Le 27 avr. 06 à 12:53, Bolo a écrit :

non pas encore, juste lu des trucs dessus.NP

Mais avec on peut également faire des applications web. Il y a un
framework
web écris en lio

Vincent J. wrote :
| Oue bah franchement le Lisp ça t’avancera pas beaucoup. C’est un langage où
| le code est impossible à relire (Et merde il n’y a que 39 parenthèses alors
| qu’il en fallait 40 à droite …). En plus ça reste (presque) exclusivement
| un langage de laboratoire comme le Prolog, pour prototyper (notamment) des
| programmes d’IA.

Hummm …; pas trop d’accord … comme tout language, tu peux ecrire du
lisp comme un goret … Si tu en arrives a 40 niveaux de parentheses,
c’est un peu l’equivalent de dire qu’en C, tu arrives a 20 niveaux
imbriques de if … else … Faut commencer à se poser des questions
avant … Sinon pour ce qui est de Lisp et Prolog, utilises dans
l’industrie il m’est arrive d’en rencontrer quelque fois :slight_smile:


Frederick R. aka Sleeper – [email protected]

Make input easy to proofread.
- The Elements of Programming Style (Kernighan & Plaugher)

Vincent J. wrote :
| Sinon en langage fontionnel, tu as le caml (notamment Objective Caml) et
| Scheme qui sont pas mal utilisé (pour des langages fonctionnels). Car le
| SmallTalk contrairement à Lisp est un langage impératif et non fonctionnel.

Pour ce qui est de OCaml, c’est vraiment pas mal, mais comme pour
Haskell, j’accroche vraiment pas à la syntaxe.


Frederick R. aka Sleeper – [email protected]

“Even more amazing was the realization that God has Internet access. I
wonder if He has a full newsfeed?”
(By Matt Welsh)

Je regarderais, merci.
Mais il paraît que Io plante encore pas mal…

NP

Le 27 avr. 06 à 13:00, Bolo a écrit :

Je regarderais, merci.Mais il paraît que Io plante encore pas mal…

l IDE qui plante ou le lange.
Je vais faire des tit test cet aprem ( il encore tot pour moi :slight_smile: )

non pas encore, juste lu des trucs dessus.
NP

Mais avec on peut également faire des applications web. Il y a un
framework web écris en lio
Io (langage) — Wikipédia
En aparté : On pourrait citer énormément de langage avec leurs
évolutions, leurs défauts… aussi pour les curieux voici deux sites
intéressants sur les langages OO ou non ainsi que leurs dépendances

“Computer Languages History”: Computer Languages History
“The Language List”:
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm