Ca n'est pas pour rien si Scala ajoute une extension dynamique au langage, et que Groovy a enfanté Groovy++ qui, lui, tend vers le typage statique : ça montre simplement qu'au sein d'un même langage, les 2 ont leur place. Il faut simplement savoir quand utiliser l'un et l'autre.
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Je t'invite à utiliser Groovy dans une semaine, et je relèverai ta copie à ce moment là :-)
Moandji--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Quel est les criteres pour "simplifiées", "aussi puissantes si ce
n'est plus" et "code métier lisible" ?
> Les langages statiques arrivent aussi à faire des choses pas mal non plus,
> mais souvent un cran en deça de ce que peut faire un langage dynamique.
Y a de la recherche [1] sur le sujet ou des bouquins [2] pour se faire
une reelle idee en tant que programmeur. C'est plus utile que de
lancer des assertions sans reel fondement.
On est en 2011, on a plusieurs decennies de recherche en theorie des
langages derriere nous, mais encore trop peu de gens capable de parler
formellement (ni meme qualitativement) de langages informatiques avec
un niveau satisfaisant...
J'accepte que l'implementeur d'une API me dise "le typage statique ca
me fait un peu mal a la tete car je dois reflechir un peu plus". Mais
au moins, en tant qu'utilisateur, je peux me laisser guider par les
types, aide par l'analysateur statique de mon langage prefere. Et ca,
quelque soit la metrique retenue (et un peu de mauvaise foi) pour dire
qu'un langage dynamique sera mieux, je ne l'abandonnerai pour rien au
monde.
Alexandre Bertails, W3C Systems Team.
[1] http://crpit.com/confpapers/CRPITV91Holkner.pdf
[2] http://www.manning.com/ghosh/
Bof... C'est pas un arguement, Guillaume, c'est du marchéage...
Si c'était aussi évident, les langages statiquement liés ne seraient pas
dominant...
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
> Mon expérience fait que j'arrive beaucoup plus facilement à écrire des APIs
> et des algorithmes en Groovy qu'en Java ou en Scala.
*ton* expérience. Mais tu Groovytes depuis des années.
> Plus facile qu'en Java car le code est beaucoup plus lisible, plus concis,
> moins verbeux, grâce à des aspects de programmation fonctionnelle, les
> closures, la syntaxe allégée, etc...
Oauis, bon, là, je te rejoins pas. Je fais parti du clan de ceux qui
pense que rajouter toutes ces cocherneries dans un langage c'est juste
filer du viagra à des violeurs en séries...
> et j'ai aussi beaucoup moins mal au
> crâne que quand j'utilise Scala, avec son type system super complexe.
Bon, désolé, j'ai pas d'aspirine. Et j'ai pas non plus envie d'avoir mal
au crane, donc je fais pas de Scala. Scala, c'est comme plus haut, le
viagra, sauf que là, tu le donnes au violeur en série et tu lui indiques
le chemin le plus court pour aller au pensionnat de jeune filles d'à
côté (et en plus, tu lui files le code de la porte)...
> Personnellement, c'est plus la pratique qui me fait préférer les langages
> dynamiques que les langages statiquement compilés.
ca se comprend.
> J'aime évidemment particulièrement Groovy car tu as le "typage optionnel"
> qui te permet d'ajouter autant de typage dont tu as besoin, ou avec lequel
> tu te sens à l'aise dans tes baskets.
> Voila.
C'est sûr que c'est plus confortable que des rangers (Java)... D'un
autre côté, dans un chemin boueux :)
> Je ne cherche pas à convaincre qui que ce soit, ou à sortir des études
> partisanes de mon chapeau.
ben voilà...
On est en 2011, on a plusieurs decennies de recherche en theorie des
langages derriere nous, mais encore trop peu de gens capable de parler
formellement (ni meme qualitativement) de langages informatiques avec
un niveau satisfaisant...
Feature: pay bill on-line
In order to reduce the time I spend paying bills
As a bank customer with a checking account
I want to pay my bills on-line
Scenario: pay a bill
Given checking account with $50
And a payee named Acme
And an Acme bill for $37
When I pay the Acme bill
Then I should have $13 remaining in my checking account
And the payment of $37 to Acme should be listed in Recent
Payments
Mais c'est ça qui est stupide ! Poruquoi faudrait-il être d'un camp ou dans l'autre ? Les langages dynamiques répondre à un cerain type de problèmes, les langages statiques à un autre. A quel esprit opacifié par la pâte à rire viendrait-il l'idée d'écrire des scripts en java, par exemple ? Et à contrario, pour une application critique avec de spbs de perfs à la clé, pourquoi chosirait-on un langage dynamique (ta mère) ?
Donc je peux te dire que les langages dynamiques ne sont pas bons que pour du scripting, et pas bons pour des applications critiques.Idées préconçues tout ça.
Heureusement que c'est que de la simulation :)
> et l'autre fait de la
> finance quantique (je sais plus comment ça se traduit en français) pour des
> hedge funds pour les traders (et je peux te dire qu'il y a une tonne de
> calculs là-dedans).
Ouais... Il était chez Lehmann Brother en 2008 ? ;)
> Donc je peux te dire que les langages dynamiques ne sont pas bons que pour
> du scripting, et pas bons pour des applications critiques.
> Idées préconçues tout ça.
Bien sûr. Mais ça n'a pas d'importance. Globalement, ceux qui aiment les
langages dynamques pensent que c'est mieux, ceux qui aiment les langages
statiques pensent que c'est mieux, et les autres utilisent ce qui
correspond le plus à leur besoin.
Que demander de plus ?
PS: Guillaume tu n'as pas le droit de voter :)
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
<rant non personnel>
dans ton mail, j'ai pas compris la moitié de choses, il me donne mal à
la tête...
J'ai pas la prétention d'être un cador du dev, mais j'ai quand même un
certain background et technique et pratique dans la besace.
Si je comprend pas la moitié de ce que tu racontes sans avoir besoin
d'aspirine et de co-doliprane, alors je pense qu'il y a bien la moitié
des développeurs qui comprennent pas non plus.
Pas de chance, c'est avec eux qu'on bosse tous les jours... Alors,
désolé, si je tombe sur un gars sur un projet qui me sort des trucs
aussi imbitables, moi, je le gicle ou je me démerde pourt qu'il revienne
à une pratique du code absorbable par ses petits camarades.
Nivellement par le base ? Peut-être. Mais franchement, j'en ai ma claque
des têtes d'ampoules qui me chient des frameworks à la mord moi le
chibre sur un projet, et qui se cassent au bout de trois mois pour aller
pondre leur bouse dans une techno top de la pointe, en laissant leur
fatras à des personnes qui n'ont pas le bagage technique pour reprende
le travail pas fini et non maintenable...
</rant non personel>
Sinon, je suis sûr qu'à l'INIRIA, il y a de la place pour ce genre de
technos :) Non, franchement, on a l'impression qu'ici, tout le monde
développe un nouveau Linux dans leur salon le soir avant d'aller se
brosser les dents !
Sérieusement, vous avez *déjà* bossé dans une équipe projet avec plus de
2 personnes ???
>> lescastcodeur...@googlegroups.com<lescastcodeurs%2Bunsu...@googlegroups.com>
>> .
>> Pour plus d'options, consultez la page de ce groupe :
>> http://groups.google.com/group/lescastcodeurs?hl=fr
>>
>>
>
--
Emmanuel dans son style inimitable souligne un point important que
nous connaissons tous.
Dans la plupart des boutiques, la population n'est pas homogène.
* Les cadors qui sortent des trucs de folie avec des frameworks en
0.87-dev et que personne ne comprend (le framework et le cador).
D'ailleurs ils changent tellement souvent de framework nouveaux
qu'après quelques années, plus personne en plus ne les écoute. Par
contre on se retrouve avec un beau SICOB où il y a tellement de piles
différentes qu'on se demande souvent comment ça fonctionne.
* Des personnes qui feront leur job de bien à médiocrement parce que
le développement ce n'est juste pas leur truc. L'informatique est un
boulot qui n'est pas leur passion et font ce qu'on leur demande, sans
forcément chercher à juger ou remettre en cause.
* Des chefs de projets et fonctionnels qui se moquent de la beauté de
l'archi mais veulent juste que ça marche en temps et heure et
martellent qu'on nettoiera quand on aura le temps (donc jamais).
* Des équipes de productions qui frémissent dès qu'on leur met pose un
nouveau dev, tant ils ont été échaudés dans 20 précédents qu'on leur
avait juré mordicus qu'ils passeraient comme une lettre à la poste.
* Des architectes qui essaient de faire le pendant dans tout ça, en
essayant d'injecter un peu de nouveautés mais qu'ils savent abordables
par la majorité des acteurs, travail de longue haleine qui passe par
des POC sans fins et des .... sur la table.
Tout ça pour dire que je comprends le point de vue d'Emmanuel, la
France ne comporte pas 60 millions de Castcodeurs, loin de là, et
adopter une technologie, c'est souvent le parcours du combattant, et
on retient bien souvent les solutions en fonction de l'environnement
humain plus que technique ou fonctionnel.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Merci Henri de mettre un peu de baume sur mon quad-core ...
Monvécu, c'est que généralement, quand on fait appel à moi, on est déjà
dans la merde fumante avec une mise en prod dans quinze jours max (et
oui, la première mise en prod a foirée comme un pet liquide trois
semaines avant, et là, faut des Terminators pour rectifier le code...).
Bilan :
"Non, manu, *TU CASSES PAS TOUT*"
"Non, manu, *ON *PEUT* *PAS* TOUT REFAIRE"
"Non, manu, on peut pas *VIRER* le fou furieux qui a voulu mettre de
l'AspectJ dans le framework et ouvrir des sockets dans des entity beans,
il est déjà parti il y a 6 mois chez un autre client (d'ailleurs, il en
est aussi parti, et c'est ta prochaine mission, si tu l'acceptes)"
Je plaisante à peine...
Un jour, faudra faire une session "Jean-Pierre Coffe" au Jug, j'en ai
des belles à raconter sur ce que j'ai vu...
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
note bien que mon rant ne te prenais pas pour cible.
Je pense qu'il s'agit plus d'un débat style "si jeunesse savait, si
vieillesse pouvait"...
Henri a, comme d'habitude, bien résumé ma pensée.
J'ai peur aussi de ne pas être un technophile, je hais les buzzwords, je
deteste toute nouvelle techno par principe, et 95% du temps, j'ai
raison, mais il faut attendre un ou deux ans pour avoir raison, et dans
les 5% des cas, et bien, je passe pour un sale réac.
Le plus marrant, c'est qu'il m'arrive aussi de m'enthousiasmer pour de
nouvelles technos. Quelques exemples :
- en 2001, j'ai découvert Spring framework et j'avais trouvé ça génial.
Par contre, ce que je trouvait génial n'était pas du tout lié à l'IOC
(que je trouve totalement sur-utilisé), mais plutôt ce qu'apportait
SpringMVC, qui était franchement 100 fois plus clean que Strutseuarg (et
meeeerde, j'ai encore vomis)
- Jess : un moteur de règle en java, qui était open source (et qui ne
l'est plus malheureusement). Par contre, pas à mettre entre toutes les
mains.
- REST. Si vous cherchez une techno dans laquelle investir, allez à fond
là dedans
- Eclipse. Parce qu'à l'époque, je venais de VisualAge, probablement une
des plus merdique IDE du monde et de l'univers.
- RAP : le pendant web de RCP. On peut ne pas aimer Eclipse, mais SWT
c'est quand même de la balle
- JMS : juste essentiel
- Log4J, JUnit, Ant
- NoSQL : parceque ça peut être plus utile que de se fader un énorme
base oracle dans certains cas
- Groovy : perce que c'est un meilleur langage que Jython, et que c'est
le premier langage dynamique vraiment bien foutu qui tourne sur une JVM
Ca fait pas beaucoup, mais c'est plus que suffisant pour bosser.
Dans ce que je déteste :
- Agile, Scrum, Craftmanship, XPair programming, enfin toutes les
méthodes de mes boules qui ne durent que le temps que fowler chie de
nouveaux slides pour ses présentations à 2500 $ les 4 heures. Tout ça,
c'est des conneries. Soit vous savez bosser en équipe, soit vous savez
pas. Et la meilleur façon de savoir, c'est d'avoir un bon chef de
projet, ou d'en devenir un vous même.
- AOP : de la branlette de manchots
- DSL : En fait, c'est l'acronyme de 'désolé'. Ca a été inventé il y a
environ 6000 ans, les DSL, et vous en avez la preuve dans un de mes
livres de contes pour enfant préféré (Genèse 11,1-9). c'est un bon moyen
pour que votre code soit inmaintenable.
- J2EE : il y a 60 millions d'années, on a eu la chance de voir
disparaitre les dinosaures. 2011 est là, on attend la second extinction
massive des dinausores de l'informatique. REST in peace, J2EE...
- SOAP : à ne pas faire tomber dans une douche collective, ça fait le
même effet qu'en prison. Le problème, c'est que vous avez même pas
besoin de le faire tomber pour en ressentir les effets.
- SOA : la vaseline qui permet de faire passer le SOAP.
- Design Pattern : Où un bouquin écrit par des mecs qui ont décrit des
principes de développement d'une UI est maintenant utilisé pour tout , y
compris l'épluchage de pommes de terre. Le GoF est brandi par des
personnes qui croient que La Bible nous dit que l'univers a été créée il
y a environ 9000 ans.
- Spring : le plus débile des framework. Ca me rappelle Lisp, mais Lisp
était un beau langage : Spring est sans doute implémenté en Spring.
Quand je vois du Spring sur un projet, j'impose que le code coverage
soit de 200% : 100% pour les code lui-même, et je punis les développeurs
en imposant de tester les tests eux-même, d'où les 100% suplémentaires.
Généralement, au bout de 15 jours de ce traitement, ils laissent tomber
Spring...
- RoR, Grails, Grouik, ROTFL, enfin, tous les frameworks qui sont
développés au dessus de languages qui ne sont pas fait pour.
- Play! Framework : parce qu'on me fera pas croire qu'il est possible en
2010 d'inventer le framework qui remplace tous les autres, comme si en
10 ans, les mecs qui avaient dévelopés des frameworks web était qu'une
bande de débiles consanguins (quoique...).
- Scala : parce que c'est un super langage, et qu'utilisé par n'importe
qui, ça va donner n'importe quoi (il y a certainement matière pour une
vidéo à Montpellier, là). Un peu comme si vous donniez une ferrari à
tous le monde.
J'en ai certainement oublié.
>> lescastcodeur...@googlegroups.com<lescastcodeurs%2Bunsu...@googlegroups.com>
>> .
>> Pour plus d'options, consultez la page de ce groupe :
>> http://groups.google.com/group/lescastcodeurs?hl=fr
>>
>>
>
--
je suis trop fainéant :) Bon, faut que j'arrête, j'ai fini mon café...
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Si je mets de cote la static vs dynamic, Groovy est plus "facile" a
apprendre que Scala aussi. Le langage en lui-meme est tres vite vu :
c'est Java avec des allegements et une syntaxe de closure.
Guillaume,Tu louvoies et tu ne réponds pas à la question.
C'est pas pour te provoquer ou pour recréer un débat qui serait déjà présent ailleurs (où d'ailleurs)
Evidemment Groovy est mieux que Java pour plein d'aspects, mais c'est à cause de la compatibilité et de l'historique.
Comparons avec un langage statique, que ne traîne pas de casserolse : Scala, qui bénéficie des mêmes avantagesque ceux dont tu parles.
La question est :"Dans quel cas d'utilisation est-il plus pertinent d'utiliser Groovy (ou un autre langage dynamique) que Scala ?"
Sans vouloir répondre à ta place, je vois un avantage pour Groovy : l'écosystème actuel de Groovy est plus importantque celui de Scala, donc si on a que des développeurs Groovy, taille-haut, faisons du Groovy, mais à part ça ?
Euh Guillaume ?
Fais gaffe, t'as marché dans un troll, t'en as plein les pompes.
Limite on va croire qu'Emmanuel L est dans ta tête (et ça, ça me
ferait peur).
--
Nicolas Delsaux
*Finger*Tree, rien que le nom... Je crois pas qu'ils fassent référence à
Cadbury :)
> Play! Je ne comprends pas non plus le hype et je me sens stupide. Qu'est ce que ça apporte
> fonctionnellement parlant par rapport à Grails du coup ? (ou Lift ou je ne sais pas).
--
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
Genre tu fais du REST avec Grails, tu veux retourner un résultat sous
form de JSON dans ton action de ton contrôleur...
Et ben c'est très compliqué en Grails, t'as juste à faire :
myResuts as JSON
:-)
C'est ce genre d'exemple que tu veux ?
2011/2/4 Grégory Bougeard <gbou...@gmail.com>:
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
> Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
> Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr
>
>
--
2011/2/4 Grégory Bougeard <gbou...@gmail.com>:
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Le 04/02/2011 10:06, Gr�gory Bougeard a �crit :
> alors je connais nib' en groovy, grails& autres donc ca ne me parle
> pas trop ton exemple vu que je trouve �a super simpliste (tes
> r�sultats ils arrivent d'o�? d'une BDD? appel�e comment? en Grails?)
> L� j'ai l'impression qu'il y a de la magie que je ne maitrise pas :D
>
> je ne vais pas demander un exemple particulier (je ne pense pas etre
> encore demandeur d'une nouvelle techno j'essaye pour le moment de
> maitriser d�j� la derni�re que j'ai attaqu�e)
> mais tu dois etre plus � m�me de pouvoir nous donner l'exemple typique
Posez donc vos bits sur la table !
C'est quand je présente le projet Gaelyk.
Gaelyk, c'est un framework super léger au dessus du SDK de Google App
Engine, pour développer facilement et rapidement des applications en
Groovy, pour être déployées sur Google App Engine :
Jetez-y un coup d'oeil ;-)
En fait, ce que Cédric me suggère, c'est de vous montrer l'exemple
d'envoi de mail.
Quand on utilise Java, c'est généralement JavaMail qu'on utilise pour
envoyer des mails.
En plus, comme ça balance des checked exceptions, on est obligé de les
catcher, etc.
Et l'API est très verbeuse, au lieu de proposer des racourcis.
Du coup, en Java, pour envoyer un mail, à peu de choses près, on fait ça :
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("ot...@gmail.com"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("t...@example.com"));
msg.setSubject("Hello World");
msg.setText("<bold>Hello</bold>");
Transport.send(msg);
} catch (AddressException e) {}
} catch (MessagingException e) {}
Avec Gaelyk, et sa fine surcouche au-dessus du SDK de App Engine, je
fais juste ça :
mail.send to: 't...@gmail.com', from: 'ot...@gmail.com', subject: 'Hello
World', htmlBody: '<bold>Hello</bold>'
Bon, sur plusieurs lignes, c'est plus joli comme ça :
mail.send to: 't...@gmail.com',
from: 'ot...@gmail.com',
subject: 'Hello World',
htmlBody: '<bold>Hello</bold>'
Voila.
Souvent, beaucoup de frameworks font compliqué même quand ils peuvent
faire simple.
Alors que des frameworks style Gaelyk, Grails, Play! essaient
justement de faire plus simple, plus lisible, plus concis, et donc au
final plus maintenable.
Guillaume
2011/2/4 Cédric CHAMPEAU <cedric....@gmail.com>:
> Guillaume, j'adore ton exemple de DSL pour envoyer des mails, qui compare
> Java à Groovy. C'est l'exemple absolu pour moi. Pas facile à copier/coller
> de tes prez, tu peux copier ça ?
>
> Le 04/02/2011 10:06, Grégory Bougeard a écrit :
>>
>> alors je connais nib' en groovy, grails& autres donc ca ne me parle
>> pas trop ton exemple vu que je trouve ça super simpliste (tes
>> résultats ils arrivent d'où? d'une BDD? appelée comment? en Grails?)
>> Là j'ai l'impression qu'il y a de la magie que je ne maitrise pas :D
>>
>> je ne vais pas demander un exemple particulier (je ne pense pas etre
>> encore demandeur d'une nouvelle techno j'essaye pour le moment de
>> maitriser déjà la dernière que j'ai attaquée)
>> mais tu dois etre plus à même de pouvoir nous donner l'exemple typique
>> qui fait que ta religion est meilleure que celle des autres, non? :)
>>
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes lescastcodeurs.
> Pour envoyer un message à ce groupe, adressez un e-mail
> à lescast...@googlegroups.com.
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> lescastcodeur...@googlegroups.com.
En fait, ce que Cédric me suggère, c'est de vous montrer l'exemple d'envoi de mail.
Bien sûr, même en Java, tu peux faire plus simple que du pur JavaMail !
Mais pourquoi les gens qui développent des APIs font souvent plus
compliqué alors qu'ils peuvent faire plus simple ???
> A l'utilisation, ça donne (avec un import statique de
> MailBuilder.from) :
> from("mwa...@gmail.com")
> .to("lescast...@googlegroups.com", "glaf...@gmail.com")
> .subject("Hello, world")
> .body("Bonjour.")
> .send();
>
> Il est probable qu'avec Fantom ou Scala ce serait un peu plus joli.
Par exemple, avec ton "builder" (ta "fluent API"), avec Groovy 1.8, tu
peux la réutiliser directement, mais avec moins de ponctuation :
from "mwa...@gmail.com" to "lescast...@googlegroups.com",
"glaf...@gmail.com" subject "Hello, world" body "Bonjour." send()
Bon, ça fait une longue ligne, cela dit :-)
> Pour éviter les accusations de concours de longueur (quoique, là c'est la
> plus courte qui gagne :), je veux juste montrer qu'il ne faut pas confondre
> problèmes d'API et problèmes de langage.
Malheureusement, tout est lié.
Néanmoins les langages alternatifs permettent de faire plus simple et
plus lisible, bien souvent.
Du coup, les gens qui développent des frameworks avec ces langages là
sont plus soucieux de faire du code plus concis et lisible.
Un autre exemple pour la lisibilité, les DSLs, etc.
En Groovy, tu peux écrire un truc comme ça, par exemple :
take 3.pills of chloroquinine after 6.hours
Si je devais l'écrire en Java de la manière la plus lisible possible,
ça deviendrait sans doute quelque chose comme ça :
take( 3, pills ).of ( chloroquinine ).after ( 6, hours )
> Stephan Schmidt m'a fait me rendre
> compte de ça il y a plus de 2 ans
> : http://codemonkeyism.com/funny-some-rubyists-are-stupider-than-a-piece-of-wood/ (le
> titre du billet est plus virulent que son contenu...). Toutefois, je suis
> sûr que c'est 10 fois moins pénible de créer ce genre d'API avec un langage
> dynamique qu'en Java (et 3 fois moins qu'en Fantom/Scala) et qu'il y a
> quelques APIs impossibles à reproduire dans un langage statique.
> Grégory disait "donc un peu de code serait peut-etre plus simple qu'un
> long discours..." mais je pense que c'est assez difficile de trouver un
> exemple court qui reflète la réalité d'un projet de taille significative
> pour décrire les avantages d'un langage dynamique sur un langage statique
> moderne.
Je suis aussi d'accord que tous les exemples qu'on trouvera, et
bien... on trouvera quelque chose à redire :-)
Guillaume
> Moandji
Malheureusement, tout est lié.
Néanmoins les langages alternatifs permettent de faire plus simple et
plus lisible, bien souvent.
Du coup, les gens qui développent des frameworks avec ces langages là
sont plus soucieux de faire du code plus concis et lisible.
Un autre exemple pour la lisibilité, les DSLs, etc.
En Groovy, tu peux écrire un truc comme ça, par exemple :
take 3.pills of chloroquinine after 6.hours
Ici, c'est clair que c'est le problème aussi de l'exemple.
JavaMail, c'est effectivement une vieille API.
Mais quand je vois du code Java pondu encore aujourd'hui, on se
gargarise de layers et d'abstractions (au cas où on en ait besoin un
jour) au lieu de penser à la simplicité d'abord.
J'ai l'impression que dans la sphère Java, il faut vraiment se forcer
(ou forcer la main des gens), pour avoir ce principe de simplicité (et
YAGNI aussià dans la tête.
> [...]
>> En Groovy, tu peux écrire un truc comme ça, par exemple :
>>
>> take 3.pills of chloroquinine after 6.hours
>
> Je pense (sans vraiment savoir) qu'on pourrait reproduire la même syntaxe en
> Scala.
Je ne me souviens plus exactement des détails, mais en Scala, on peut
faire ce genre de choses aussi, mais il y a un peu plus de
contraintes, de mémoire pour l'écriture de ce genre de "phrases"
(style seulement avec un nombre impair de "mots", et je sais plus trop
quoi). Faudrait que je me replonge dans le bouquin de Scala que j'ai,
mais j'ai pas le courage :-)
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes lescastcodeurs.
Pour envoyer un message à ce groupe, adressez un e-mail à lescast...@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse lescastcodeur...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/lescastcodeurs?hl=fr