Should I choose ActivePerl or Strawberry Perl for

2019-03-07 19:21发布

This question already has an answer here:

I'm totally new to Perl but I'd like to try it out. I read about two rival distributions available for Windows platform (I guess there's just Perl on other OSes :).

Wikipedia says that Strawberry comes with additional dev tools to compile CPAN modules if necessary. Sounds pretty good to me.

It also says that ActivePerl has a lot of prepackaged modules which are easier to install with PPM. Sounds great too!

There's a clear trade-off between those two. And I wonder what should I pick to get started? If I pick one how hard is it to migrate to the other?

Edit: I gave both distributions a run for a couple of weeks. I actually liked both which is a good thing! One can't go wrong with either of these. I ended up going with ActivePerl simply because it comes with offline documentation(in HTML) - a great life-savior for those who are on the road or just not always connected. It was super-easy for me to get started with Perl language while I was on vacation when I wasn't always online.

Strawberry is at least as great if not greater. So I can totally recommend it, too. And I have to say one should just learn Perl - it's a very beautiful language. Give it a try!

10条回答
Evening l夕情丶
2楼-- · 2019-03-07 19:26

After having used both for years, I'd say, for me at least, Activeperl is a much more convenient choice. The ppm-Installer included in Activeperl allows you to add alternative ppm repositories which will give you access to almost all useful perl modules available on CPAN - but prepared and tested for windows. This was for me, in the long run, a much better (and more robust) choice. Even for the windows version of the Apache http server, there is a precompiled mod_perl (2.0.4) ppm available which will (did for me) work out of the box with Activeperl 5.12.1 and Apache 2.2.15.

I think I dropped Strawberry after trying to install DBI + DBD::mysql on Windows 7 (which is a no brainer in Activeperl, just click on the ppms and choose install).

But maybe that's solved by now. And maybe one can choose the directory where Strawberry gets installed (I couldn't).

BTW: for compiling your own Inline or XS stuff, just install the MinGW compiler by ppm (I didn't do that but it looks interesting).

Regards

rbo

Addendum: after reading the comment below, I checked Strawberry Perl again and it's now possible to change installation directory, which is a denoted feature of the 5.12.0 release (which is the actual version). This would solve one important (imho) disadvantage of Strawberry Perl (compared to Activeperl).

查看更多
疯言疯语
3楼-- · 2019-03-07 19:33

ActivePerl excludes tons of modules from Community edition and building them under Windows is a real pain.

Also, they would let you download and use only latest editions for free. Everything else, like access to 5.8.8 or to earlier version of modules is either Business ($1000/year/server) or Enterprise edition (per quote).

查看更多
在下西门庆
4楼-- · 2019-03-07 19:38

If Larry Wall uses Strawberry Perl so should you. ;)

查看更多
等我变得足够好
5楼-- · 2019-03-07 19:43

Amplifying just a tiny bit on Vivin Paliath's helpful answer:

AcitveState / PPM pros: If there's a PPM for your version, it's going to work, and simply.

ActiveState / PPM cons: There's not always a PPM, or at least not always an up-to-date one.

Strawberry / CPAN pros: Your repository is CPAN, not a bunch of binaries maintained by third-parties. You have new modules the moment the author releases them, and you're using the build system that the author intended.

Strawberry / CPAN cons: Not everything is guaranteed to build perfectly with the Windows tools.

Strawberry / CPAN mitigating factor: The Strawberry devs try really, really hard to make sure that everything goes smoothly and that as much of CPAN as possible is available to you, and when modules are identified as trouble spots (difficult to build on Windows, but required for other popular modules/apps), they'll either work with the author to get the module fixed so that everyone can install it, or in exceptional cases, apply their own fixups and bundle the module with Strawberry or Strawberry Professional.

My preference is with Strawberry. I appreciate what ActiveState is trying to do, but I think it's a bottleneck in the development process. They were necessary before the community got together and built Strawberry to bring Windows into the "first world" of the Perl ecosystem, but they're not necessary anymore.

查看更多
Emotional °昔
6楼-- · 2019-03-07 19:44

Both are great and work the same. Strawberry is known for being able to build XS modules, but you can do that with ActiveState too if you just install the Visual Studio SDK (or the free express version).

For that matter, if you have access to Visual Studio, the best you can do is to build Perl from source (it's pretty easy if you read the README) and keep building your modules with the same compiler. That's actually a better idea than having a mixture of compiler/modules.

One thing you have to consider if using ActiveState: If you install it on a server facing the internet, then you are required to buy a Business license ($1000/year/server as noted by Ron Warshawsky). It doesn't mean it won't work, it's only a matter of being a requirement in the EULA. Many people don't know this and have it installed on internet-facing servers without buying the corresponding license.

查看更多
女痞
7楼-- · 2019-03-07 19:45

Strawberry is more Unixy in its approach, and I have been always very happy when I've worked with it.

ActiveState, however, due to its custom package management system, has been a colossal pain when I've worked with it. This matters when you're in an enterprise environment.

For just messing around, IMO, Strawberry is better. /subjective

查看更多
登录 后发表回答