¿Debo elegir ActivePerl o Strawberry Perl para Windows? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Soy totalmente nuevo en Perl, pero me gustaría probarlo. Leí sobre dos distribuciones rivales disponibles para la plataforma Windows (supongo que hay solo Perl en otros sistemas operativos :).

Wikipedia dice que Strawberry viene con herramientas de desarrollo adicionales para compilar módulos CPAN si es necesario. Suena bastante bien para mí.

También dice que ActivePerl tiene muchos módulos preempaquetados que son más fáciles de instalar con PPM. Suena genial también!

Hay una clara compensación entre esos dos. Y me pregunto qué debo elegir para empezar. Si elijo uno, ¿qué tan difícil es migrar al otro?

Edit: Le di a ambas distribuciones una carrera por un par de semanas. En realidad me gustó ¡ambas cosas son buenas! Uno no puede equivocarse con ninguno de estos. Terminé yendo con ActivePerl simplemente porque viene con documentación fuera de línea (en HTML) - un gran salvador de vida para aquellos que están en el camino o simplemente no siempre conectados. Fue súper fácil para mí comenzar con Perl language mientras estaba de vacaciones cuando no siempre estaba en línea.

La fresa es al menos igual de grande si no mayor. Así que puedo recomendarlo totalmente, también. Y tengo que decir una debería aprender Perl - es un idioma muy hermoso. ¡Inténtalo!

Author: Johannes Pille, 2010-07-29

10 answers

Después de haber usado ambos durante años, diría que, al menos para mí, Activeperl es una opción mucho más conveniente. El ppm-Installer incluido en Activeperl le permite agregar repositorios ppm alternativos que le darán acceso a casi todos los módulos útiles de perl disponibles en CPAN, pero preparados y probados para windows. Esta fue para mí, a la larga, una opción mucho mejor (y más robusta). Incluso para la versión de Windows del servidor http Apache, hay un precompilado mod_perl (2.0.4) ppm disponible que (hizo para mí) trabajar fuera de la caja con Activeperl 5.12.1 y Apache 2.2.15 .

Creo que se me cayó Strawberry después de tratar de instalar DBI + DBD::mysql en Windows 7 (que es un no brainer en Activeperl, simplemente haga clic en el ppms y elija instalar).

Pero tal vez eso ya está resuelto. Y tal vez uno puede elegir el directorio donde se instala Strawberry (no pude).

Por cierto: para compilar su propio En línea o cosas XS, simplemente instalar el compilador MinGW por ppm (yo no hice eso, pero parece interesante).

Saludos

Rbo

Addendum : después de leer el comentario a continuación, revisé Strawberry Perl nuevamente y ahora es posible cambiar el directorio de instalación, que es una característica denotada de la versión 5.12.0 (que es la versión real). Esto resolvería una importante (imho) desventaja de Strawberry Perl (en comparación con Activeperl).

 31
Author: rubber boots,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-30 19:51:23

Strawberry Perl utiliza CPAN, lo que significa que está actualizado en lo que respecta a los módulos. Cuando se agregan cosas a CPAN, tiene acceso inmediato a ellas. Strawberry Perl también viene con MinGW, lo que significa que Strawberry Perl puede usar bastantes módulos XS directamente desde CPAN sin ninguna modificación. La distribución MinGW viene con gcc, make, ld y otras herramientas para ayudarle a construir módulos. Creo que Strawberry Perl también viene con algunos módulos que le permiten instalar PPMs (Perl Archivos del Gestor de paquetes).

ActivePerl instala módulos usando su propio formato llamado PPM (Perl Package Manager). El repositorio oficial está alojado por ActiveState. Puede encontrar PPMs para la mayoría de los módulos populares, por lo que no debería tener ningún problema a menos que esté buscando un paquete oscuro o realmente nuevo (por lo que las cosas de vanguardia no funcionarán porque PPM generalmente va por detrás de CPAN). Aunque es más fácil de instalar que los módulos CPAN, los PPM se crean específicamente para Windows y, por lo tanto, algunos CPAN los módulos no funcionarán (porque hacen cosas específicas de Unix).

He usado ambos antes y parecía funcionar para la mayoría de los casos. Pero me inclino hacia Strawberry Perl porque el entorno está más cerca de Unix y por lo tanto no hay muchas incompatibilidades. Por otro lado, ActivePerl está hecho para Windows y por lo tanto funciona muy bien con Windows.

Otra opción es instalar Cygwin y Perl que viene con Cygwin. He hecho eso antes y funciona razonablemente bien. Usted también consigue acceso a CPAN.

Elige lo que creas que funciona mejor para ti.

 42
Author: Vivin Paliath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-29 18:03:53

Amplificando un poco la útil respuesta de Vivin Paliath:

AcitveState / PPM pros: Si hay un PPM para su versión, va a funcionar, y simplemente.

ActiveState / PPM contras: No siempre hay un PPM, o al menos no siempre uno actualizado.

Strawberry / CPAN pros: Tu repositorio es CPAN, no un montón de binarios mantenidos por terceros. Tiene nuevos módulos en el momento en que el autor los libera, y está utilizando el sistema de compilación que el autor destinado.

Strawberry / CPAN contras: No todo está garantizado para construir perfectamente con las herramientas de Windows.

Factor atenuante de Strawberry / CPAN: Los desarrolladores de Strawberry intentan muy, muy difícil asegurarse de que todo vaya bien y que la mayor cantidad de CPAN posible esté disponible para usted, y cuando los módulos se identifican como puntos problemáticos (difícil de construir en Windows, pero requerido para otros módulos/aplicaciones populares), trabajarán con el autor para obtener módulo arreglado para que todos puedan instalarlo, o en casos excepcionales, aplicar sus propias correcciones y agrupar el módulo con Strawberry o Strawberry Professional.

Mi preferencia es con fresa. Aprecio lo que ActiveState está tratando de hacer, pero creo que es un cuello de botella en el proceso de desarrollo. Eran necesarias antes de que la comunidad se reuniera y construyera Strawberry para traer Ventanas al" primer mundo " del ecosistema Perl, pero no son necesarias nunca más.

 36
Author: hobbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-29 22:22:37

Strawberry es más Unixy en su enfoque, y siempre he estado muy feliz cuando he trabajado con ella.

ActiveState, sin embargo, debido a su sistema de gestión de paquetes personalizados, ha sido un dolor colosal cuando he trabajado con él. Esto es importante cuando estás en un entorno empresarial.

Por sólo jugar, IMO, Fresa es mejor. /subjetivo

 19
Author: Paul Nathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-29 18:13:41

Ambos son geniales y funcionan igual. Strawberry es conocido por ser capaz de construir módulos XS, pero también puedes hacerlo con ActiveState si instalas Visual Studio SDK (o la versión gratuita express).

Para el caso, si tienes acceso a Visual Studio, lo mejor que puedes hacer es compilar Perl desde el código fuente (es bastante fácil si lees el README) y seguir construyendo tus módulos con el mismo compilador. Esa es en realidad una mejor idea que tener una mezcla de compilador/módulos.

Una cosa que debe tener en cuenta si usa ActiveState: Si lo instala en un servidor frente a Internet, entonces debe comprar una licencia comercial ($1000/año/servidor como señaló Ron Warshawsky). No significa que no funcione, es solo una cuestión de ser un requisito en el EULA. Muchas personas no saben esto y lo tienen instalado en servidores orientados a Internet sin comprar la licencia correspondiente.

 12
Author: Francisco Zarabozo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-19 14:30:17

En un mundo perfecto, elegiría debian-interix o pkgsrc-interix perl (no el antiguo Perl que viene con Interix/SFU/SUA) ya que proporciona el sistema más POSIX / UNIX (incluyendo la bifurcación de copy-on-write real, no la emulación de la bifurcación de Windows desde Cygwin). Tengo en el pasado (y está instalado en máquinas Windows aquí), pero no todo el mundo puede / instalará SFU/SUA solo para Perl. En esos casos, recomendaría ActivePerl, principalmente para la familiaridad de la interfaz con Usuarios de Windows (shell gráfico PPM versus CPAN) y su integración con el Kit de desarrollo de Perl (PerlExe, PerlNET, PerlSvc y amigos). Además, contrariamente a lo que otros han respondido, puede usar CPAN (y el shell CPAN) con ActivePerl (aunque implica instalar las herramientas de desarrollo necesarias a través de PPM primero) si lo necesita.

 3
Author: MkV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-21 11:00:23

ActivePerl excluye toneladas de módulos de Community edition y construirlos bajo Windows es un verdadero dolor.

Además, te permitirían descargar y usar solo las últimas ediciones de forma gratuita. Todo lo demás, como el acceso a la versión 5.8.8 o a una versión anterior de los módulos, es Business ($1000/año/servidor) o Enterprise edition (por presupuesto).

 3
Author: Ron Warshawsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-03 03:04:39

Si su diseño de su derecho de aplicación, no debería importar que usted elija.

Un punto importante podría ser las versiones de varios módulos que cada uno puede proporcionar, o no proporcionar. Los paquetes de PPM pueden ir por detrás de las versiones de CPAN, pero si no tiene cuidado, las versiones de CPAN de vanguardia pueden romper la compatibilidad con versiones anteriores. Además, a veces habrá paquetes PPM para cosas que simplemente no se construirán correctamente bajo Strawberry (aunque esto implica que el módulo está mal diseñado más a menudo que no).

Solo tenga en cuenta las versiones de cualquier módulo que use, y debería estar bien, independientemente de la que elija.

 2
Author: Charles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-29 18:03:05

Si está utilizando el box.com cliente para sincronizar archivos, entonces probablemente quieras (al menos por el momento) ir con Strawberry Perl. El ejecutable ppm entra en conflicto con uno de los Box.com DLL. La gui no se iniciará en absoluto (produciendo un mensaje de Windows que el " perl ... intérprete ha dejado de funcionar".) También he tenido problemas intermitentes usando la versión de línea de comandos de ppm cuando el Box.com el cliente está instalado.

 1
Author: Kevin Coombes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-14 16:56:20

Si Larry Wall usa Strawberry Perl, tú también deberías. ;)

 1
Author: Steve Lloyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-05 18:43:14