7 ms·
Well.... How about Django, Evently, Moustache, CLOS, Hackage, Sinatra, Merb, OMQ as acronyms? ;) (None of it Perl..) Anyways. CPAN _is_ the killer app. It's a
by Su-Shee 16y ago
Well....
How about Django, Evently, Moustache, CLOS, Hackage, Sinatra, Merb, OMQ as acronyms? ;) (None of it Perl..)
Anyways. CPAN _is_ the killer app. It's a HUGE, extremely easy to install module/library archive. Perl's modules aren't spread around everywhere but neatly and nicely collected there and you just do a "cpan Foobar" and get Foobar with all possible dependencies included.
Which is something what many languages (some still don't) have these days one way or another but really nothing compared to CPAN in number, service, search, testing facility and so on. You plainly _never_ have to bother searching your ass off to find some library you might need.
Moose is Perl's OO system - as with JavaScript you can do different OO styles with Perl and Moose is a framework to do a role/trait based (please see Smalltalk for details or Perl 6's spec) OO with a heavy twist on metaprogramming.
Perl is for writing things like Amazon or the IMDB and keep it running for 12 years in a row or for creating Nagios and SpamAssassin to watch over half of the Internet. Thanks to Perl, everybody can easily imagine what push, pop, shift, unshift on Arrays/Lists does and thanks to Perl everybody has very shiny Regex these days. That's why Vim has a magic/nomagic flag and what the P in PCRE stands for. The Ruby world gladly thanks Perl's DBI after which it modeled its own database interface.
That's what Perl is about. Sharing shiny features and establishing a culture of "getting things done who run really fast".
- swombat 16y agoAnyways. CPAN _is_ the killer app. It's a HUGE, extremely easy to install module/library archive. Perl's modules aren't spread around everywhere but neatly and nicely collected there and you just do a "cpan Foobar" and get Foobar with all possible dependencies included. Sounds like Ruby's Gems: http://rubygems.org/ http://rubygems.org/ or even python's PyPi: http://pypi.python.org/pypi http://pypi.python.org/pypi ...
- Su-Shee 16y agoErr.. yeah - what do you think after whom gems etc. are modeled? :) Haskell's system is called "hackage" for example and "R" has its "CRAN" and so on. Though it's really no fair comparison as CPAN contains what.. 89033 modules? http://search.cpan.org/ http://search.cpan.org/
- microtherion 16y agoAnd CPAN itself was modeled after CTAN, as far as I recall...
- deleted 16y ago[deleted]
- danieldon 16y ago89033 modules Only 21694 distributions, though. The analogue in Ruby is a gem and RubyGems already has 19502.
- ldng 16y agoOk. Shitload of lib err bricks. Great. Where are the prefab houses (frameworks) that help you get the thing done ... fast ? Perl has building blocks but lacks known products. Either finished products you just have to configure (like Drupal or Wordpress) or higher level building blocks (say Rails) that help you get where you want to get faster. Note I didn't say there is not such product/framework, just, as the articles says, they are not promoted/known.
- Mithaldu 16y agoMojolicious, Dancer, Catalyst (biggest and most enterprise one), CGI::Application, Jifty. There's a whole bunch of them, with different design goals or philosophies.
- ldng 16y agoI didn't there wasn't, just that the need better promotion. Call it screencast if you wish. They need Promotive Passionate Users. [edit] I'm gonna pick a little bit on Catalyst and do a quick surface review at website level from a non-Perlist POV. Homepage : ok, looks nice. Documentation : uuh ! Dry redirect to CPAN. First impression before reading, it's not the doc, it's the API doc. Ah, wait a second, it _is_ the doc. Not very appealing and some things are so not obvious that it takes a note to understand it like "Note: Click on the heading in the previous line to jump to the actual chapter. Below is a "table of contents" for this chapter." Download : Again directly to CPAN, at first sight confusingly looks like an API doc. For newcomers not versed in Perl it is not very friendly. Community : not much to say, a good wiki with apparently interesting stuff to read. But the first thing you see is that the "Why Catalyst is an excellent web application framework?" is an empty page. The perl community has every reason to be proud of CPAN. It's great tool but it's not the answer to everything. It's all therem but it lacks the last mile, the 20% of polish to make it a tad more friendly/attractive. It's the whole point of the article I think. It's not to criticize Perl, just to say it needs a better marketing strategy.
- FraaJad 16y agoAs a seasoned Python programmer,I think PyPI doesn't even come close to CPAN. CPAN is the only reason that I've kept my Camel book around since 2000, hoping that "someday" I'll learn Perl.
- Mithaldu 16y agoCPAN is the killer app for developers because it is: - an archive of libraries for them to use - a publication mechanism - a documentation mechanism - a global distribution mechanism And most importantly: It provides you globalized automated testing on a variety of systems of anything you upload, through CPANTesters. Just as an example: I uploaded a module yesterday and now it has 38 tests on as many different configurations already: http://matrix.cpantesters.org/?dist=CGI-Application-Plugin-TT-Any+0.110080 http://matrix.cpantesters.org/?dist=CGI-Application-Plugin-T... So not only gives it a very useful and otherwise extremely expensive tool to you, the developer, it also shows you this information about other modules, so it lets you gauge the quality of the modules you are considering to use. Edit: Also, as an additional goody: The testing culture of CPAN allows development of ancillary tools that analyze the current state of CPAN and highlight modules that are having issues with their tests: http://analysis.cpantesters.org/ http://analysis.cpantesters.org/ This can help generate bug reports for developers who don't have time to figure out exactly why a test failed on an obscure combo and they provide an in for CPAN-Newbies by pointing out to them which distributions could use patches.
- sigzero 16y agoNeither one of those actually holds a candle to CPAN.
- steveklabnik 16y agoThen maybe CPAN's advantages shouldn't be explained as "gem install", err... "perl -e -MCPAN "install net::foo". Explain the _actual_ strengths of CPAN that make it a killer app. Oh, and "It has MOAR!" isn't really a good argument. I've authored two gems, I think. Those are the only two times in two years of using Ruby that I haven't had the ability to just install the library that I needed. (I loved Perl for years until I found Ruby, then never turned back...)
- deleted 16y ago[deleted]
- ack 16y agotry "cpan Module::Name", which installs the requested module
- steveklabnik 16y agoSweet. That's still on par with Rubygems, cabal, and everything else, though. That wasn't my main point.
- kentnl 16y agoTests. Integrated Bug Tracking. There's 2 reasons.
- steveklabnik 16y agoSweet! Then lead with that. I'm not saying that CPAN isn't better than Rubygems somehow, but that "easy installation" isn't a selling point.
- jonknee 16y ago> Perl is for writing things like Amazon or the IMDB and keep it running for 12 years in a row or for creating Nagios and SpamAssassin to watch over half of the Internet. Perl was the hip thing back when those projects were being developed. If they were being made today, it's overwhelmingly likely that Perl would not be used (see Facebook).
- jcoby 16y agoThe problem with perl is that it got a bad rap and has never shaken it. The "perl is line noise that makes magic" sort of reputation. The people who love perl don't seem to be interested in moving the language forward and shedding the old ways of doing things. Now.. CPAN. Let me explain my latest round with fighting Perl/CPAN. I wanted a perl interactive mode. When I want to test out something in Ruby I use irb. In Python, I can type in `python` and enter interactive mode. Even PHP has a rudimentary interactive mode now. So I try looking at `perl --help`. Nothing there. So I turn to google and find that I need a REPL whatever that is. So I try to figure out what a REPL is. Find that. Now I find that I need to run a little script to run Devel::REPL. Doesn't work. So I load up CPAN and type in `install Devel::REPL`. No less than thirty minutes later, 150 or so screens of noise, and at least 25 questions that I have to hit [enter] for I get a failed install. I have no clue what failed -- something to do with tests (the error is 4 screens back in the middle of even more text) so I try to force the install. I'm now 45 minutes into this and finally get Devel::REPL installed. I fire up re.pl and I get `SCALAR(0x100b81070) is not of type SCALAR at /opt/local/lib/perl5/site_perl/5.8.9/namespace/clean.pm line 56`. All of this for a feature that should come with a base install. This is just one example of why I avoid perl as much as possible.
- dotandimet 16y agoPerl has a built-in REPL, it's called the debugger. perl -d myscript.pl starts a debugging session on a given script, but you can start the debugger without one, just by passing an empty program on the command line: perl -d -E 3 (-E is new in Perl 5.10, if you have an older perl, use -e; "3" has no significance, any expression will do). You'll get a prompt, type "h" for brief help, or just use x EXPRESSION to evaluate any Perl expression and see what it returns.
- microtherion 16y agoNotwithstanding your apparent problems with CPAN, the traditional way to go to an interactive mode in perl is perl -de0 which still seems to work.
- mst 16y agoAs the author of Devel::REPL, I've never seen that error or have it reported. If you want to email me (address in profile) I'd love to figure out what went wrong so nobody else has the same problem in future.
- mmb 16y agoCPAN is large and comprehensive but every time I've had to use it I've had to watch a minimum of 20 minutes of scrolling compilation, installing dependencies and running tests. Ruby and python install what I need in a few seconds so I can get back to work. Maybe it's a question of perl putting a lot of things in CPAN versus other languages putting more in the standard library?
- draegtun 16y agoCPAN is large and comprehensive but every time I've had to use it I've had to watch a minimum of 20 minutes of scrolling compilation Have a look at cpanminus (http://search.cpan.org/dist/App-cpanminus/lib/App/cpanminus.pm http://search.cpan.org/dist/App-cpanminus/lib/App/cpanminus....). Its a lightweight and JFDI alternative to the default CPAN client. Maybe it's a question of perl putting a lot of things in CPAN versus other languages putting more in the standard library? Swings and roundabouts really because there is no definitive advantage in either approach. Advantage in CPAN approach: Its more darwinian. Your libraries are more up-to-date (stdlibs often get stale) Advantage in stdlib approach: Less dependencies. Batteries included out of the box. After installing Perl first thing I do is load a few important CPAN modules (like Moose, AnyEvent, Coro, Devel::Repl, DBIx::Class) and then all your big loads are pretty much done.