Стоит ли выбирать ActivePerl или Strawberry Perl для Windows? [Дубликат]

96

Я абсолютно не знаком с Perl, но я бы хотел попробовать. Я читал о двух конкурирующих дистрибутивах, доступных для платформы Windows (я предполагаю, что только Perl на других ОС:).

Wikipedia говорит, что Strawberry поставляется с дополнительными инструментами для компиляции модулей CPAN, если это необходимо. Звучит неплохо для меня.

В нем также говорится, что в ActivePerl есть много предварительно упакованных модулей, которые проще установить с помощью PPM. Звучит здорово!

Там есть четкий компромисс между этими двумя. И мне интересно, что мне выбрать, чтобы начать? Если я выбираю один, как трудно перейти на другой?

Изменить: Я дал обоим дистрибутивам бежать на пару недель. Мне действительно понравилось то, что было хорошо! Нельзя ошибиться ни с одним из них. Я закончил работу с ActivePerl просто потому, что он поставляется с автономной документацией (в формате HTML) - отличный спаситель жизни для тех, кто находится в дороге или просто не всегда связан. Мне было очень легко начать работу с языком Perl, пока я был в отпуске, когда я не всегда был в сети.

Клубника по крайней мере столь же велика, если не больше. Поэтому я тоже могу это порекомендовать. И я должен сказать, что нужно просто изучить Perl - это очень красивый язык. Попробуйте!

  • 3
    AFAICT, клубника поставляется с perldoc поэтому с автономной документацией для всего.
Теги:
strawberry-perl
activeperl

10 ответов

30
Лучший ответ

После использования обоих в течение многих лет, я бы сказал, для меня, по крайней мере, Activeperl - гораздо более удобный выбор. ppm-Installer, включенный в Activeperl, позволяет добавлять альтернативные репозитории ppm, который предоставит вам доступ ко всем полезным модулям perl, доступным на CPAN, но подготовленным и протестированным для окон. Это было для меня, в конечном счете, намного лучшим (и более надежным) выбором. Даже для версии Windows Apache http-сервера существует предварительно скомпилированный mod_perl (2.0.4) ppm, который будет (для меня) работать из коробки с Activeperl 5. 12.1 и Apache 2.2.15.

Я думаю, что я сбросил Strawberry после попытки установить DBI + DBD:: mysql на Windows 7 (что неинтересно в Activeperl, просто нажмите на ppms и выберите установку).

Но, возможно, это решило к настоящему времени. И, возможно, можно выбрать каталог, в котором установлена ​​Strawberry (я не мог).

BTW: для компиляции ваших собственных материалов Inline или XS просто установить компилятор MinGW на ppm (я этого не делал, но он выглядит интересно).

Привет

БВУ

Добавление: после прочтения комментария ниже я снова проверил Strawberry Perl и теперь можно изменить каталог установки, который является обозначенной функцией версии 5.12.0 (которая является фактической версией). Это решило бы один важный (imho) недостаток Strawberry Perl (по сравнению с Activeperl).

  • 5
    ppm также доступен для Strawberry, а DBD :: mysql включен в установку Strawberry. Также вы можете установить Strawberry 5.12.x в любой каталог.
  • 1
    Да, каталог установки Strawberry может находиться где угодно, кроме случаев, когда он содержит пробелы или символы, не входящие в ASCII.
Показать ещё 2 комментария
38

Strawberry Perl использует CPAN, что означает, что вы обновляетесь в отношении модулей. Когда вещи добавляются в CPAN, у вас есть немедленный доступ к ним. Strawberry Perl также поставляется с MinGW, что означает, что Strawberry Perl может использовать довольно много модулей XS непосредственно из CPAN без каких-либо изменений. В дистрибутив MinGW входят gcc, make, ld и другие инструменты, которые помогут вам создавать модули. Я думаю, что Strawberry Perl также поставляется с несколькими модулями, которые позволяют устанавливать PPM (файлы менеджера пакетов Perl).

ActivePerl устанавливает модули, используя собственный формат PPM (Perl Package Manager). Официальный репозиторий размещен ActiveState. Вы можете найти PPM для большинства популярных модулей, поэтому у вас не должно быть никаких проблем, если вы не ищете неясный или действительно новый пакет (так что кровоточащие вещи не будут работать, потому что PPM обычно отстает от CPAN). Хотя они проще устанавливать, чем модули CPAN, PPM специально созданы для Windows и поэтому некоторые модули CPAN не будут работать (поскольку они имеют специфические для Unix вещи).

Я использовал как раньше, так и, казалось, работал в большинстве случаев. Но я склоняюсь к Strawberry Perl, потому что среда ближе к Unix, и поэтому не так много несовместимостей. С другой стороны, ActivePerl создан для Windows и очень хорошо работает с Windows.

Другой вариант - установить Cygwin и Perl, которые поставляются вместе с Cygwin. Я делал это раньше, и он работает достаточно хорошо. Вы также получаете доступ к CPAN.

Выберите, что вы считаете лучшим для вас.

33

Усиление всего лишь крошечного бита на полезном ответе Вивина Палиата:

Преимущества AcitveState/PPM: если у вас есть PPM для вашей версии, она будет работать и просто.

ActiveState/PPM минусы: не всегда PPM или, по крайней мере, не всегда обновленный.

Специалисты Strawberry/CPAN: ваш репозиторий - это CPAN, а не куча бинарных файлов, поддерживаемых третьими лицами. У вас есть новые модули, когда автор выпускает их, и вы используете систему сборки, которую автор намеревался.

Strawberry/CPAN минусы: не все гарантировано прекрасно работает с инструментами Windows.

Фактор смягчения Strawberry/CPAN: разработчики Strawberry действительно стараются сделать все, чтобы все прошло гладко и насколько возможно доступность CPAN для вас, и когда модули идентифицируются как проблемные места (сложность в построении Windows, но необходимые для других популярных модулей/приложений), они либо будут работать с автором, чтобы модуль был исправлен, чтобы каждый мог установить его, либо в исключительных случаях применять свои собственные исправления и связывать модуль с Strawberry или Strawberry Professional.

Я предпочитаю клубнику. Я ценю то, что ActiveState пытается сделать, но я считаю это узким местом в процессе разработки. Они были необходимы, прежде чем сообщество собралось вместе и построило Strawberry, чтобы принести Windows в "первый мир" экосистемы Perl, но они больше не нужны.

19

Strawberry больше Unixy в своем подходе, и я всегда был очень доволен, когда работал с ним.

ActiveState, однако, благодаря своей пользовательской системе управления пакетами, была колоссальной болью, когда я работал с ней. Это имеет значение, когда вы находитесь в корпоративной среде.

Для просто возиться, ИМО, Клубника лучше./Субъективны

12

Оба отличные и работают одинаково. Известно, что Strawberry может создавать модули XS, но вы также можете сделать это с помощью ActiveState, если просто установите Visual Studio SDK (или бесплатную экспресс-версию).

В этом случае, если у вас есть доступ к Visual Studio, самое лучшее, что вы можете сделать, это построить Perl из исходного кода (это довольно легко, если вы читаете README), и продолжайте строить свои модули с тем же компилятором. Это на самом деле лучшая идея, чем наличие смеси компилятора/модулей.

Одна вещь, которую вы должны учитывать при использовании ActiveState:. Если вы устанавливаете его на сервере, обращенном к Интернету, вам необходимо приобрести лицензию на бизнес (1000 долларов США/год/сервер, как указано Ron Warshawsky). Это не значит, что это не сработает, это только вопрос требования в EULA. Многие люди этого не знают и устанавливают на интернет-серверы без покупки соответствующей лицензии.

  • 2
    +1 за предупреждение о том, что ActiveState не является бесплатным (вопреки распространенному мнению).
3

ActivePerl исключает тонны модулей из версии сообщества, а их создание под Windows - настоящая боль.

Кроме того, они позволят вам бесплатно загружать и использовать только последние выпуски. Все остальное, например доступ к версии 5.8.8 или более ранней версии модулей, - это бизнес (1000 долларов США/год/сервер) или корпоративная версия (за кавычку).

3

В идеальном мире я бы выбрал debian-interix или pkgsrc-interix perl (а не древний Perl, который поставляется с Interix/SFU/SUA), поскольку он предоставляет самую POSIX/UNIX-подобную систему (включая реальную вилку для копирования на запись, а не виртуализацию вил Cygwin). У меня в прошлом (и он установлен на компьютерах Windows здесь), но не все могут/будут устанавливать SFU/SUA только для Perl. В таких случаях я бы рекомендовал ActivePerl, в первую очередь, для знакомства с интерфейсом пользователей Windows (графическая оболочка PPM и CPAN) и его интеграция с Perl Dev Kit (PerlExe, PerlNET, PerlSvc и друзьями). Кроме того, вопреки тому, что ответили другие, вы можете использовать CPAN (и оболочку CPAN) с помощью ActivePerl (хотя для этого требуется установка необходимых инструментов для разработчиков через PPM), если вам это нужно.

2

Если ваш дизайн вашего приложения правильно, не важно, что вы выберете.

Большей точкой могут быть версии различных модулей, которые каждый может предоставить или не предоставлять. Пакеты PPM могут отставать от релизов CPAN, но если вы не будете осторожны, выпуски CPAN с выпуклым днищем могут нарушить обратную совместимость. Кроме того, иногда будут пакеты PPM для вещей, которые просто не будут правильно создаваться в Strawberry (хотя это означает, что модуль плохо разработан чаще).

Просто знайте о версиях любых модулей, которые вы используете, и вы должны быть в порядке, независимо от того, что вы выберете.

1

Если Ларри Уолл использует Strawberry Perl, так и вы.;)

1

Если вы используете клиент box.com для синхронизации файлов, то вы, вероятно, захотите (по крайней мере, на данный момент) пойти со Strawberry Perl. Исполняемый файл ppm конфликтует с одной из библиотек Box.com. Gui не запускается вообще (появляется сообщение Windows, которое "интерпретатор perl... перестало работать".) У меня также были проблемы с прерываниями, используя версию командной строки ppm, когда установлен клиент Box.com.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню