Której wersji Perla powinienem używać w systemie Windows? [Zamknięte]

98

Win32.perl.org strona internetowa zawiera odnośniki do kilku dystrybucjach Perl dla MS Windows.

Od dłuższego czasu korzystam z ActivePerl z ActiveState, ale ostatnio przesiadłem się na Strawberry Perl .

IMHO Jedyną przewagą Active Perl nad Strawberry Perl jest fakt, że zawiera Perl Tk, co oznacza, że ​​jest łatwy do zainstalowania graficznego debuggera Devel :: ptkdb . Poza tym myślę, że Strawberry Perl ma wszystkie zalety.

szabgab
źródło
Od tego postu zacząłem ponownie pakować Strawberry Perl z wieloma dodatkowymi modułami, w tym Moose, Dancer i Padre. Czytelnicy również mogą chcieć to rozważyć: dwimperl.com
szabgab

Odpowiedzi:

80

Strawberry Perl staje się coraz lepszy. Jednym z problemów, które wielokrotnie miałem z ActiveState, jest to, że moje moduły czasami nie instalują się, ponieważ potrzebuję uaktualnienia do modułu podstawowego, ale nie pozwalają na to. Tak więc każdy, kto nie używa Windowsa, może używać mojego kodu, ale nie może tego zrobić z Perlem ActiveState.

ActiveState ma również bardzo podejrzany system kompilacji, który często nie informuje dokładnie, dlaczego moduł nie został zbudowany. Byłem tak zmęczony wysyłaniem e-maili i proszeniem o te informacje, że w końcu się poddałem. Chcę, aby mój kod działał w systemie Windows, ale jeśli ActiveState nie dostarcza mi tych informacji i nie daje mi żadnej opcji aktualizacji podstawowych modułów, po prostu nie mogę go użyć. Niektóre z moich modułów NIE mają błędów kompilacji w żadnym systemie operacyjnym - z wyjątkiem tych z ActiveState Perl. Wspieraj Strawberry Perl i po prostu nie martw się o ActiveState.

Jeśli ActiveState naprawił swój system kompilacji i zasadę `` braku aktualizacji do modułów podstawowych '', warto to ponownie odwiedzić.

Owidiusz
źródło
8
Istnieje możliwość aktualizacji podstawowych modułów z AS Perl 5.8.8 build 518 (wydany w styczniu 2007). Zaktualizowali również swój system kompilacji CPAN w 2008 roku, ale nie wiem dokładnie, kiedy.
Alexandr Ciornii
1
Strawberry Perl jest świetny. Jeśli jednak używasz MSys Bash jako powłoki, istnieje znany problem polegający na tym, że polecenia takie jak cpannie działają.
Colonel Panic
30

Nie ma jednej najlepszej dystrybucji Perla. Vanilla Perl (przenoszony, redystrybucyjny Perl) i bardziej przyjazny dla programistów Strawberry Perl mają znaczny potencjał.

Jest jednak bardzo dobry powód, dla którego ActivePerl jest tak bardzo popularny. Korzyści są głównie w postaci łatwości wdrażania dla użytkowników końcowych (nie jest potrzebny kompilator do korzystania z ich menedżera pakietów, PPM). ActiveState PDK (Perl Development Kit) to także bardzo przyjemny sposób na spakowanie pełnego pliku binarnego Windows, który nie wymaga instalacji Perla na komputerze użytkownika.

Niestety, wiele bardzo ładnych modułów CPAN (takich jak powiązania Perla dla OpenSSL) nie jest dostępnych za pośrednictwem repozytorium ActiveState.

Podobnie jak w przypadku większości rzeczy, powinieneś dokonać wyboru na podstawie dystrybucji najlepiej odpowiadającej Twoim potrzebom.

Darren Meyer
źródło
PerlApp wydaje się być użytecznym narzędziem (nie porównałem go z Par :: Packer), ale pakiet PDK, w który wchodzi, kosztuje 300 USD.
Nate Glenn,
17

Używam przede wszystkim ActivePerl, ale bardzo podoba mi się to, do czego zmierza Strawberry Perl. Uwielbiam to, że powłoka cpan "po prostu działa" i nie muszę przeskakiwać przez kilka kółek, aby zainstalować moduły XS. (np. ExtUtils :: FakeConfig, chociaż jest to mniej potrzebne w nowszych kompilacjach ActivePerl.) Jestem również podekscytowany możliwością używania Perla na pendrive. Wersja deweloperska Portable Perl jest już całkiem użyteczna.

Zgadzam się, że główną zaletą ActivePerl jest Tk zaraz po wyjęciu z pudełka, ale zauważ, że od 5.10 ActivePerl nie jest już domyślnie dostarczany z Tk. Zamiast tego jest dostarczany z Tkx.

Michael Carman
źródło
13

Przyszłość to zdecydowanie Strawberry Perl. Niezależnie od tego, co wybierzesz (i ten problem nie jest unikalny dla systemu Windows), jeśli dystrybuujesz wynik końcowy na inne maszyny, będziesz musiał uważać na instrukcje dotyczące instalacji / instalacji, które dostarczasz.

Penfold
źródło
6

Strawberry Perl jest bardziej podobny do Perla na * nix. Jest wyposażony w MinGW, który może być przydatny samodzielnie. Moduły Perla można również zainstalować za pomocą ppm lub cpan.

Rob Kam
źródło
1
Uwaga: jeśli zainstalujesz mingw razem z truskawkowym perlem, pamiętaj, że truskawkowy perl może używać różnych wersji aplikacji minsys. Miałem poważne problemy ze zmontowaniem Strawberry Perl do zbudowania Win32 :: OLE i innych modułów, dopóki nie usunąłem mingw z mojej ścieżki.
Robert P
Jeśli naprawdę chcesz Perla na Windows, takiego jak Perl na * nix, zainstaluj SUA / SFU (nie instaluj Perla, który jest dołączony) i użyj Perla Debiana Interix / pkgsrc-interix.
MkV,
4

Zdecydowanie wolę Strawberry Perl. Po pierwsze, instaluje gcc jako część mingwin, dzięki czemu można zainstalować bezpośrednio z CPAN.

Używałem perla ActiveState przez jakiś czas, ale miałem dużo niestabilności z jednej maszyny na drugą, mimo że były (pozornie) identycznie skonfigurowane. Ich opakowanie modułów PPM również pozostawiło zły smak. Ułatwia to zarządzanie pakietami, ale polegasz na nich, aby zaktualizować PPM po aktualizacjach CPAN. Ponadto PPM w żadnym wypadku nie stanowi pełnej zawartości CPAN; Kiedy ostatnio korzystałem z ActivePerl, trudno mi było znaleźć wszystkie potrzebne moduły, a te, które tam były, często były starą wersją.

gWaldo
źródło
2
Jestem ciekawy, co dało ocenę negatywną.
gWaldo
3

Zawsze używam Cygwina (xtermy z bashem są o wiele lepsze niż okna cmd) i Perla, który jest z nim związany. Instaluję moduły Perla z powłoką CPAN (komenda "cpan"); to działa dobrze.

reinierpost
źródło
3

ActiveState Perl był de facto uważany za Windows Perl od dłuższego czasu. Chociaż ma wiele wad i wielu z nas używa czegoś innego, pozostaje bardzo popularny. Jeśli tworzysz kod Perla do wykonania na komputerze z systemem Windows (innym niż twój własny), rozważałbym napisanie go z myślą o domyślnej (lub domyślnej, jak tylko mogłem) instalacji Perla wykonującej go. Cokolwiek innego i wprowadzasz bariery wejścia dla innych osób, które chcą później skorzystać z Twojej aplikacji.

phreakre
źródło
AFAIK, PAR pp działa dobrze z Strawberry, co jest wielką zaletą pod względem dystrybucji własnych aplikacji, ponieważ IIUC będziesz potrzebować licencji OEM, aby móc dystrybuować skompilowane aplikacje pp, jeśli używasz ich bibliotek DLL.
Sinan Ünür
3
@Sinan, twoje stwierdzenie o licencjonowaniu ActivePerl i PAR jest nieprawidłowe. Zobacz klauzulę 4 licencji The license also allows You to redistribute parts of the Package as part of an application generated by wrapping tools such as PAR, PerlApp or Perl2Exe. However, this License does not allow You to (a) redistribute the Package as a whole, (b) use its parts to create a language distribution, or (c) redistribute the PerlScript, Perl for ISAPI or PerlEx components with Your application. activestate.com/activeperl/license
daotoad
@daotoad Hmmmm ... Mógłbym przysiąc, że wcześniejsza wersja na to nie pozwalała, ale nie jestem nawet pewien, czy dobrze pamiętam. Dziękuję za poprawę.
Sinan Ünür
2

Miałem poważne problemy z Strawberry i czułem, że nie ma wsparcia. Dobrzy ludzie z PerlMonks nie mogli mi pomóc, więc poddałem się. Jeśli ta strona pozostawia Cię z pewnym brakiem pewności siebie, oto Twoja odpowiedź.

AmbroseChapel
źródło
1

Kod, który piszę, trafia do firm z listy Fortune 500, więc poczucie „korporacji” jest pomocne. Do tej pory używałem ActivePerl i działa dobrze zarówno w przypadku narzędzi wewnętrznych, jak i przy dystrybucji do tych dużych klientów.

aczarnowski
źródło
1

Używam Active State Perl 5.014, który działa OK.

Problem w tym, że nie ma najnowszej wersji Padre (IDE, środowisko debbugujące).

Helen Craigman
źródło