web-dev-qa-db-fra.com

Devrais-je choisir ActivePerl ou Strawberry Perl pour Windows?

Je suis totalement nouveau chez Perl mais j'aimerais bien l'essayer. J'ai lu à propos de deux distributions rivales disponibles pour la plate-forme Windows (je suppose qu'il y a seulement Perl sur d'autres systèmes d'exploitation :).

Wikipedia dit que Strawberry est livré avec des outils de développement supplémentaires pour compiler des modules CPAN si nécessaire. Ça m'a l'air plutôt bien.

Il indique également qu'ActivePerl possède de nombreux modules préemballés qui sont plus faciles à installer avec PPM. Ça sonne bien aussi!

Il y a un compromis clair entre ces deux. Et je me demande ce que je devrais choisir pour commencer? Si j'en choisis un, à quel point est-il difficile de migrer vers l'autre?

Edit: J'ai analysé les deux distributions pendant quelques semaines. J'ai effectivement aimé les deux, ce qui est une bonne chose! On ne peut pas se tromper avec l'un ou l'autre. J'ai fini par utiliser ActivePerl simplement parce qu'il est livré avec une documentation hors ligne.(en HTML) - un grand sauveur de vie pour ceux qui sont sur la route ou tout simplement pas toujours connectés. Il était très facile pour moi de commencer à utiliser le langage Perl lorsque j'étais en vacances alors que je n'étais pas toujours en ligne.

La fraise est au moins aussi grande sinon supérieure. Donc, je peux tout à fait le recommander aussi. Et je dois dire qu’il faut juste apprendre le Perl - c’est une très belle langue. Essaie!

Après avoir utilisé les deux pendant des années, je dirais, pour moi au moins, Activeperl est un choix beaucoup plus pratique. Le ppm-Installer inclus dans Activeperl vous permet d'ajouter autres référentiels de ppm qui vous donnera accès à presque tous les modules Perl utiles disponibles sur CPAN - mais préparés et testés pour Windows. C’était pour moi, à long terme, un choix bien meilleur (et plus robuste). Même pour la version Windows du serveur http Apache, il existe une version précompilée mod_Perl (2.0.4) disponible, qui fonctionnera (a mon avis) fonctionnera immédiatement avec Activeperl 5. 12 . 1 et Apache 2.2.15 .

Je pense que j'ai abandonné Strawberry après avoir essayé d'installer DBI + DBD :: mysql sur Windows 7 (ce qui est un aucune idée dans Activeperl, il suffit de cliquer sur le fichier ppms et de choisir l'installation).

Mais peut-être que cela est résolu maintenant. Et peut-être que l'on peut choisir le répertoire où Strawberry est installé (je ne pouvais pas).

BTW: pour compiler vos propres trucs Inline ou XS, il suffit de installer le compilateur MinGW par ppm (je ne l’ai pas fait mais c’est intéressant).

Cordialement

rbo

Addendum : après avoir lu le commentaire ci-dessous, j'ai vérifié Strawberry Perl à nouveau et il est maintenant possible de changer de répertoire d'installation, ce qui est une fonctionnalité notée de la version 5.12.0. release (qui est la version actuelle). Cela résoudrait un inconvénient important (à mon humble avis) de Strawberry Perl (par rapport à Activeperl).

33
rubber boots

Strawberry Perl utilise CPAN, ce qui signifie que vous êtes à jour en ce qui concerne les modules. Lorsque des éléments sont ajoutés à CPAN, vous pouvez y accéder immédiatement. Strawberry Perl est également livré avec MinGW, ce qui signifie que Strawberry Perl peut utiliser plusieurs modules XS directement à partir de CPAN, sans aucune modification. La distribution MinGW est fournie avec gcc, make, ld et d'autres outils pour vous aider à construire des modules. Je pense que Strawberry Perl est également livré avec quelques modules qui vous permettent d’installer des fichiers PPM (fichiers du gestionnaire de paquets Perl).

ActivePerl installe les modules en utilisant son propre format appelé PPM (Gestionnaire de paquets Perl). Le référentiel officiel est hébergé par ActiveState. Vous pouvez trouver des PPM pour la plupart des modules populaires, vous ne devriez donc pas avoir de problèmes à moins que vous ne cherchiez un paquet obscur ou vraiment nouveau (donc, les choses bleeding-Edge ne fonctionneront pas car PPM est généralement en retard sur CPAN). Bien que plus facile à installer que les modules CPAN, les PPM sont créés spécifiquement pour Windows et donc certains modules CPAN ne fonctionneront pas (car ils font des choses spécifiques à Unix).

J'ai utilisé les deux auparavant et cela semblait fonctionner dans la plupart des cas. Mais je me penche vers Strawberry Perl car l'environnement est plus proche de Unix et il n'y a donc pas beaucoup d'incompatibilités. ActivePerl, par contre, est conçu pour Windows et fonctionne donc très bien avec Windows.

Une autre option consiste à installer Cygwin et Perl fournis avec Cygwin. Je l'ai déjà fait et cela fonctionne raisonnablement bien. Vous avez également accès à CPAN.

Choisissez ce qui vous convient le mieux.

45
Vivin Paliath

En amplifiant juste un petit peu la réponse utile de Vivin Paliath:

AcitveState/PPM pros: S'il y a un PPM pour votre version, cela va fonctionner, et tout simplement.

ActiveState/PPM contre: Il n’ya pas toujours de PPM, ou du moins pas toujours de mise à jour.

Strawberry/CPAN pros: Votre référentiel est CPAN, et non un ensemble de fichiers binaires gérés par des tiers. Vous avez de nouveaux modules au moment où l'auteur les publie, et vous utilisez le système de construction que l'auteur a voulu.

Inconvénients Strawberry/CPAN: Il n’est pas garanti que tout sera parfaitement construit avec les outils Windows.

Facteur atténuant Strawberry/CPAN: Les développeurs Strawberry essaient vraiment, vraiment difficile de s’assurer que tout se passe bien et que le plus grand nombre possible de CPAN est disponible, et lorsque les modules sont identifiés comme des points chauds ( difficile à compiler sur Windows, mais requis pour d’autres modules/applications populaires), ils travailleront avec l’auteur pour faire corriger le module afin que tout le monde le peut l’installe, ou dans des cas exceptionnels, applique leur propres correctifs et associez le module à Strawberry ou Strawberry Professional.

Ma préférence va aux fraises. J'apprécie ce qu'ActiveState essaie de faire, mais je pense que c'est un goulot d'étranglement dans le processus de développement. Ils étaient nécessaires avant que la communauté se réunisse et construise Strawberry pour permettre à Windows d'entrer dans le "premier monde" de l'écosystème Perl, mais ils ne sont plus nécessaires.

37
hobbs

La fraise est plus Unixy dans son approche, et j'ai toujours été très heureux quand j'ai travaillé avec elle.

Cependant, ActiveState, en raison de son système de gestion de paquets personnalisé, a été une douleur colossale lorsque j'ai travaillé avec. Ceci est important lorsque vous êtes dans un environnement d'entreprise.

IMO, Strawberry, c'est mieux. /subjectif

19
Paul Nathan

Les deux sont géniaux et fonctionnent de la même manière. Strawberry est connu pour être capable de construire des modules XS, mais vous pouvez aussi le faire avec ActiveState si vous installez simplement le SDK de Visual Studio (ou la version gratuite express).

Par ailleurs, si vous avez accès à Visual Studio, le mieux que vous puissiez faire est de compiler Perl à partir des sources (c’est assez facile si vous lisez le fichier README) et de continuer à construire vos modules avec le même compilateur. C'est en fait une meilleure idée que d'avoir un mélange de compilateur/modules.

ne chose que vous devez prendre en compte si vous utilisez ActiveState: Si vous l’installez sur un serveur faisant face à Internet, vous devez acheter une licence Business (1 000 $/an/serveur, comme indiqué par Ron Warshawsky). Cela ne signifie pas que cela ne fonctionnera pas, il ne s'agit que d'une exigence du CLUF. Beaucoup de gens l'ignorent et l'installent sur des serveurs connectés à Internet sans acheter la licence correspondante.

13
Francisco Zarabozo

ActivePerl exclut des tonnes de modules de l'édition communautaire et leur construction sous Windows est une véritable gêne.

En outre, ils vous laisseraient télécharger et utiliser uniquement les dernières éditions gratuitement. Tout le reste, comme l’accès à la version 5.8.8 ou à une version antérieure de modules, est soit Business (1000 $/an/serveur), soit Enterprise Edition (par devis).

3
Ron Warshawsky

Dans un monde parfait, je choisirais debian-interix ou pkgsrc-interix Perl (pas l'ancien Perl livré avec Interix/SFU/SUA) car il fournit le plus Système de type POSIX/UNIX (y compris une modification de copie à la copie et d’écriture réelle, pas une émulation Windows fork de Cygwin). Je l'ai fait par le passé (et il est installé sur des machines Windows ici), mais tout le monde ne peut/ne pourra installer SFU/SUA juste pour Perl. Dans ces cas, je recommanderais ActivePerl, principalement pour la familiarité de l'interface avec les utilisateurs Windows (shell graphique PPM versus CPAN) et son intégration avec le kit de développement Perl (PerlExe, PerlNET, PerlSvc et leurs amis). En outre, contrairement à ce que d’autres ont répondu, vous pouvez utiliser CPAN (et le shell CPAN) avec ActivePerl (bien que cela implique l’installation des outils de développement nécessaires via PPM en premier) si vous en avez besoin.

3
MkV

Si Larry Wall utilise Strawberry Perl, vous devriez le faire. ;)

2
Steve Lloyd

Si vous concevez votre application correctement, peu importe ce que vous choisissez.

Un point important pourrait être les versions des différents modules que chacun peut fournir ou ne pas fournir. Les packages PPM peuvent prendre du retard par rapport aux versions de CPAN, mais si vous ne faites pas attention, les dernières versions de CPAN Edge peuvent rompre la compatibilité avec les versions antérieures. De plus, il y aura parfois PPM paquets pour des choses qui ne se construiront pas correctement sous Strawberry (bien que cela implique que le module est mal conçu le plus souvent).

Soyez juste conscient des versions de tous les modules que vous utilisez, et ça devrait aller, peu importe ce que vous choisissez.

2
Charles

Si vous utilisez le client box.com pour synchroniser des fichiers, vous souhaiterez probablement (du moins pour le moment) utiliser Strawberry Perl. L'exécutable ppm est en conflit avec l'une des DLL Box.com. L'interface graphique ne démarre pas du tout (ce qui donne un message Windows indiquant que "l'interpréteur Perl ... a cessé de fonctionner".) J'ai également eu des problèmes intermittents lors de l'utilisation de la version en ligne de commande de ppm lors de l'installation du client Box.com.

1
Kevin Coombes