It is my pleasure to announce that I will hold a 90 minutes
session at the next ACCU conference in Oxford. This session will be part
of this year's special track on patterns. The abstract is provided below:
Revisiting The Visitor: The 'Just Do It' Pattern
A software design pattern is a three-part rule which expresses a
relation between a certain context, a problem, and a solution. The
well-known "GoF Book" describes 23 software design patterns. Its
influence in the software engineering community has been dramatic.
However, Peter Norvig notes that "16 of [these] 23 patterns are either
invisible or simpler [...]" in Dylan or Lisp (Design Patterns in Dynamic
Programming, Object World, 1996).
We claim that this is not a consequence of the notion of "pattern"
itself, but rather of the way patterns are generally described; the GoF
book being typical in this matter. Whereas patterns are supposed to be
general and abstract, the GoF book is actually very much oriented
towards mainstream object languages such as C++. As a result, most of
its 23 "design patterns" are actually closer to "programming patterns",
or "idioms", if you choose to adopt the terminology of the POSA Book.
In this talk, we would like to envision software design patterns from
the point of view of dynamic languages and specifically from the angle
of CLOS, the Common Lisp Object System. Taking the Visitor pattern as an
illustration, we will show how a generally useful pattern can be blurred
into the language, sometimes to the point of complete disappearance.
The lesson to be learned is that software design patterns should be used
with care, and in particular, will never replace an in-depth knowledge
of your preferred language (in our case, the mastering of first-class
and generic functions, lexical closures and meta-object protocol). By
using patterns blindly, your risk missing the obvious and most of the
time simpler solution: the "Just Do It" pattern.
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
EPITA/LRDE, 14-16 rue Voltaire, 94276 Le Kremlin-Bicêtre, France
Tel. +33 (0)1 44 08 01 85 Fax. +33 (0)1 53 14 59 22
The following message is a courtesy copy of an article
that has been posted to lrde.annonce,epita.adm.adm,epita.adm,iit.adm,fr.comp.developpement,fr.comp.lang.c++,fr.comp.lang.general,fr.comp.objet as well.
Chers collègues,
La prochaine session du séminaire Performance et Généricité du LRDE
(Laboratoire de Recherche et Développement de l'EPITA) aura lieu le
Mercredi 28 janvier 2009 (14h-17h).
Au programme:
* 14h: Programmer en JoCaml
-- Luc Maranget, Inria http://pauillac.inria.fr/~maranget/
JoCaml est une extension de Objective Caml pour la programmation
concurrente et distribuée, inspirée par le join-calcul. Nous avons
récemment publié une nouvelle version de JoCaml, dont la compatibilité
avec OCaml est meilleure que celle de la version initiale de F. Le
Fessant. La nouvelle version pourra facilement être mise à jour au
rythme d'OCaml et est binaire-compatible avec OCaml. L'exposé
s'attachera plus au langage JoCaml qu'au système JoCaml. Il montrera
comment, à partir d'un programme potentiellement parallélisable écrit en
OCaml (le ray tracer du concours ICFP 2001), on peut facilement produire
un programme distribué, dans le cas abordé, très efficace. Ce sera
l'occasion d'aborder la programmation en JoCaml de la coordination de
multiples agents coopérants, d'une manière simple et concise dans
l'esprit de la programmation fonctionnelle. JoCaml est disponible en
http://jocaml.inria.fr/.
Luc Maranget est chargé de recherche à l'Inria Rocquencourt. Il est
spécialiste de la conception et de l'implémentation des langages de
programmation, fonctionnels puis concurrents. À cet égard, il est
l'auteur du compilateur de filtrage de Objective Caml et plus récemment
de la nouvelle version de JoCaml.
* 15h15: ReactiveML : une extension d'OCaml pour la programmation de systèmes réactifs synchrones
-- Louis Mandel, Université Paris-Sud 11 -- LRI http://www.lri.fr/~mandel
ReactiveML est une extension de OCaml basée sur le modèle réactif
synchrone introduit par F. Boussinot au début des années 90. Il permet
la programmation de systèmes tels que les jeux vidéo ou les simulateurs.
Dans cet exposé, je présenterai ReactiveML à travers l'utilisation et la
programmation de rmltop, le pendant ReactiveML du toplevel d'OCaml. Ce
toplevel permet au programmeur d'écrire interactivement des programmes
ReactiveML qui sont typés, compilés et exécutés à la volée. Toute
expression ReactiveML valide peut être chargée dans le toplevel et a la
même sémantique et la même efficacité que sa version compilée.
Louis Mandel est docteur de l'Université Paris 6. Il a passé un an au
laboratoire Verimag de Grenoble et un an à l'INRIA Rocquencourt. Il est
actuellement Maître de Conférences à l'Université Paris-Sud 11. Il
conçoit et développe ReactiveML.
Pour plus de renseignements, consultez http://seminaire.lrde.epita.fr/.
L'entrée du séminaire est libre. Merci de bien vouloir diffuser cette
information le plus largement possible.
The Olena team is proud to announce that snapshots of Olena 1.0 beta are
now available. This is a major version of the Olena generic and
efficient image processing library developed at the LRDE
(http://olena.lrde.epita.fr).
This version has been completely rewritten from scratch and is not
compatible with the previous version.
The current snapshots do not include Swilena yet.
More information is available at:
http://www.lrde.epita.fr/Olena/Olena100beta
Les membres de l'équipe Olena sont fiers de vous annoncer la sortie
d'Olena 1.0 en bêta. Il s'agit d'une version majeur d'Olena, la
bibliothèque générique et performante de traitement d'image dévelopée au
LRDE (http://olena.lrde.epita.fr).
Cette version a été entièrement réécrite et n'est pas compatible avec
les versions précédentes.
Les archives fournies actuellement ne contiennent pas encore Swilena.
Pour plus d'informations, consulter :
http://www.lrde.epita.fr/Olena/Olena100beta
--
Guillaume Lazzara, for the Olena Team.
z(a)lrde.epita.fr