Discussion:
Pourquoi Perl/Python et pas OCaml ?
(trop ancien pour répondre)
Olivier FAURAX
2007-08-15 12:41:57 UTC
Permalink
Bonjour,

Non, ce n'est pas encore une demande concernant les mérites/limitations
des langages.

Simplement, je me rends compte dans les logiciels que j'utilise (Linux
Mandriva) que la plupart des possibilités de plugins, d'extensions, etc.
sont souvent en Perl, de plus en plus en Python.
Quelques fois, des plugins sont en C, mais ce sont des .so à charger au
démarrage, alors que les Perl/Python ont l'air de pouvoir être
charger/décharger pendant l'exécution.

Je suppose que cela vient du faire que Perl/Python sont des langages
interprétés et que le logiciel hôte doit faire appel à l'interpréteur du
système.

Ma question est : qu'est-ce qu'il manque à OCaml pour faire la même chose ?

Il existe un interpréteur qui fonctionne bien.
Est-ce que le problème vient de la difficulté à faire utiliser OCaml à
l'intérieur d'autres langages ?

Bon 15 Août.
Olivier
Justinver
2007-08-15 17:23:05 UTC
Permalink
Bonjour,

Je me pose aussi la question. Je ne pense qu'il ne manque rien à OCaml
pour pouvoir être utilisé comme langage interprété à part peut-être
des librairies d'interface graphique.
Il semblerait que Python remporte un grand succès parce qu'il a
maintenant de nombreuses bibliothèques de liaison qui permettent de
mettre au point des programmes pour qt par exemple. Ces programmes
seraient alors transcrits en C++.
TeXitoi
2007-08-15 17:38:53 UTC
Permalink
Post by Olivier FAURAX
Bonjour,
Je me pose aussi la question. Je ne pense qu'il ne manque rien à OCaml
pour pouvoir être utilisé comme langage interprété à part peut-être
des librairies d'interface graphique.
Il semblerait que Python remporte un grand succès parce qu'il a
maintenant de nombreuses bibliothèques de liaison qui permettent de
mettre au point des programmes pour qt par exemple. Ces programmes
seraient alors transcrits en C++.
Il y a aussi le fait que « le typage dynamique, c'est tellement plus
simple... » (pouah, beark !)

La syntaxe spéciale d'OCaml semble en rebuter pas mal, également.
--
Guillaume Pinot http://www.irccyn.ec-nantes.fr/~pinot/

``Computers are good at following instructions, but not at reading your
mind.'' -- Donald E. Knuth, the TeXbook

() ASCII ribbon campaign -- Against HTML e-mail
/\ http://www.asciiribbon.org -- Against proprietary attachments
Samuel Thibault
2007-08-16 08:42:11 UTC
Permalink
peut-être des librairies d'interface graphique.
Heu, il y a tcl/tk, gtk et GL qui sont disponibles, que faudrait-il
d'autre ?

Samuel
Justinver
2007-08-16 10:33:11 UTC
Permalink
Post by Samuel Thibault
Heu, il y a tcl/tk, gtk et GL qui sont disponibles, que faudrait-il
d'autre ?
Samuel
Il me semble qu'actuellement, la bibliothèque d'interface graphique la
plus << multiplate-forme >> est wxwidget (alias wxindows).
Jean Guillaume Pyraksos
2007-08-18 08:53:26 UTC
Permalink
Post by Justinver
Il me semble qu'actuellement, la bibliothèque d'interface graphique la
plus << multiplate-forme >> est wxwidget (alias wxindows).
Je seconde ce point. Cela résoudrait l'absence d'un bel IDE pour O'Caml
qui soit multi plate-formes (en particulier MacOS-X).
Voir la qualité de DrScheme par exemple...

-JG
Olivier FAURAX
2007-08-16 16:39:00 UTC
Permalink
Post by Samuel Thibault
peut-être des librairies d'interface graphique.
Heu, il y a tcl/tk, gtk et GL qui sont disponibles, que faudrait-il
d'autre ?
Qt ?
David MENTRE
2007-08-20 19:15:33 UTC
Permalink
Bonjour,
Post by Justinver
Je me pose aussi la question. Je ne pense qu'il ne manque rien à OCaml
pour pouvoir être utilisé comme langage interprété à part peut-être
des librairies d'interface graphique.
Je me suis aussi souvent posé la question. Bien que grand adepte
d'OCaml, j'utilise aussi souvent le Python ou Perl pour des petites
bidouilles rapides alors que je pourrais le faire en OCaml. J'y vois
deux raisons principales :

- bibliothèque standard beaucoup trop réduite. Sur un Python de base,
on a quasiment tout[1] : xml, serveur http, email, gestion des
encodages, bases de données, etc. C'est généralement tout aussi
réalisable en OCaml, mais il faut y ajouter des bibliothèques
externes. Par exemple les regexps de la bibliothèque standard d'OCaml
sont très lourdes à utiliser alors que c'est un plaisir en Perl ou
Python (il y a le bon sucre syntaxique _en standard_) ;

- syntaxe ésotérique (par exemple appel de fonction sans parenthèses)
qui déroute le débutant.

Cordialement,
david

Footnotes:
[1] http://docs.python.org/lib/lib.html
--
David Mentré
i***@free.fr
2007-09-26 10:24:01 UTC
Permalink
Post by David MENTRE
- syntaxe ésotérique (par exemple appel de fonction sans parenthèses)
qui déroute le débutant.
C'est dommage mais c'est ce que je préfère en OCaml (ha oui ya aussi
le fait qu'on ne mette pas () pour une méthode sans argument). Bon par
contre quand on veut définir plusieurs variables la syntaxe devient
lourde :
let i = 1 in let j = 2 in etc.
bon ya le
let (i, j, ...) = (1, 2, ...) mais c'est peu lisible.
Samuel Colin
2007-09-26 11:01:43 UTC
Permalink
Post by i***@free.fr
Post by David MENTRE
- syntaxe ésotérique (par exemple appel de fonction sans parenthèses)
qui déroute le débutant.
C'est dommage mais c'est ce que je préfère en OCaml (ha oui ya aussi
le fait qu'on ne mette pas () pour une méthode sans argument). Bon par
contre quand on veut définir plusieurs variables la syntaxe devient
let i = 1 in let j = 2 in etc.
bon ya le
let (i, j, ...) = (1, 2, ...) mais c'est peu lisible.
Et let i = 1 and j = 2 and ... in ?
i***@free.fr
2007-09-26 11:19:38 UTC
Permalink
Post by Samuel Colin
Et let i = 1 and j = 2 and ... in ?
Ha oui, j'avais oublié. Le pire étant que je ne programme jamais avec
mais j'essayerai d'y penser à l'avenir.

Matthieu Moy
2007-08-16 12:41:35 UTC
Permalink
Post by Olivier FAURAX
Simplement, je me rends compte dans les logiciels que j'utilise (Linux
Mandriva) que la plupart des possibilités de plugins, d'extensions, etc.
sont souvent en Perl, de plus en plus en Python.
Il y a au moins une chose que Python peut faire et que OCaml (comme
n'importe quel language typé statiquement) ne peut pas directement
faire : changer des objets arbitrairement à l'exécution. Si j'écris
« x.y » et que « y » n'existe pas sur l'objet « x », en Python, il est
créé à la volée. Avec du typage statique, c'est refusé à la
compilation.

En général, c'est le comportement de OCaml qui est souhaité (sinon,
une typo dans un nom de membre, et on ne trouvera l'erreur qu'à
l'exécution !!), mais pour ajouter des fonctionnalités qui n'étaient
pas prévues au départ à un logiciel, ça peut vraiment être une
killer-feature.

Ceci dit, je pense que le succès de Python est plus du à des raisons
non liées directement au language : c'est à la mode, il y a beaucoup
de bibliothèques pour faire un peu de tout, ...
--
Matthieu
Samuel Colin
2007-08-17 09:41:25 UTC
Permalink
Post by Olivier FAURAX
Bonjour,
Bonjour,
Post by Olivier FAURAX
Ma question est : qu'est-ce qu'il manque à OCaml pour faire la même chose ?
Il existe un interpréteur qui fonctionne bien.
Est-ce que le problème vient de la difficulté à faire utiliser OCaml à
l'intérieur d'autres langages ?
Il y a des points qui reviennent souvent quand on critique OCaml sur ce
terrain-là, la page qui suit en est un bon exemple:
http://test.blog2geek.com/pourquoi-f-plutot-qu-ocaml--764.html
Comparer les éléments non spécifiques au langage par rapport à ce qui se
passe pour Python et Perl donne des éléments de réponse.

L'argument sur les bibliothèques d'OCaml est assez pertinent, mais la
critique peut être atténuée grâce aux efforts des distributeurs d'un
système d'exploitation.
Développer en OCaml sous Debian est sûrement nettement plus agréable que
sous Mandriva, au vu des efforts de la OCaml-team Debian pour faire des
paquets de toutes les biblios existantes, par exemple.
Loading...