3 ms·
please don't play the "modern language" game. if we're going to do that, we get to rule out, say, lisp. Which I'd rather write over most "modern" languages any
by mst 18y ago
please don't play the "modern language" game.
if we're going to do that, we get to rule out, say, lisp. Which I'd rather write over most "modern" languages any day.
And so far as I can tell, you're basically saying "I think the perl standard library should have more stuff in it and because it doesn't have the stuff -I- want in it, CPAN is pointless".
Well, sure. Except that not having all this stuff in core means I can update, say, my rich text processing stuff or a configuration parser on its own, and only re-QA that component rather than having to wait for an entire language point release.
And "wading" is a nicely loaded description as well. Here's what I did when I installed angerwhale:
tar xzf <tarball>
cd <unpacked dir>
perl Makefile.PL
make installdeps
and lo, from CPAN did the 50 or so modules that I didn't already have installed for something else that was -also- reusing that same code snap straight onto my system while I went for a coffee break.
perl is just syntax. CPAN is the language.
And by that standard all this -is- built in. It's just optional :)
- tptacek 18y ago"Modern language" --- you're right. I'm looking for a word that means "Python, Ruby, Scala, etc" but not Tcl and Perl. I'm fumbling trying to find it. Sorry. The rest of your reply kind of misses my point. If the 50-or-so modules you get from CPAN have built-in analogues in Python, why do I care about CPAN? Can I get a raytracer straight out of CPAN? Sure. So? What's a profoundly useful library in CPAN that isn't easily matched in Python? I bet you have an answer, and I'd like to hear it.
- jrockway 18y ago"Modern language" --- you're right. I'm looking for a word that means "Python, Ruby, Scala, etc" but not Tcl and Perl. I'm fumbling trying to find it. Sorry. What modern features is Perl missing? I hate to break it to you, but Python and Ruby have basically the same featureset as Perl. What's a profoundly useful library in CPAN that isn't easily matched in Python? A single profoundly useful library is not the point of CPAN. It's finding that random library that you need in some corner of an obscure internal application where CPAN really shines. Every language has their super-great web framework. The depth and breadth of module available on the CPAN is Perl's strength. If I had to pick a single CPAN module I couldn't be without, though, it would be Moose; followed closely by Catalyst and DBIx::Class.
- tptacek 18y ago"Modern language" --- I just agreed with you. And apologized. Moose --- doesn't Moose just make Perl's metaclass programming as simple as Python and Ruby's already is? Catalyst is an web MVC framework. DBIx::Class is an ORM. Clearly we can get those libraries elsewhere. Is there something really amazing in CPAN that I can't get in a gem in Ruby? I get that a lot of gems are crappy (Ruby's a younger community), so I'm not going to come back at you with some random -0.1alpha svn trunk thing.
- menloparkbum 18y ago"Is there something really amazing in CPAN that I can't get in a gem in Ruby?" No. (this is coming from an old PERL programmer)
- mst 18y agoTo be honest, the best thing about CPAN isn't any specific module, it's the sheer breadth of them - and the ability to install everything in a uniform way and have it usually work. Plus things like the cpantesters and cpandeps system that make it fairly trivial to tell if something -will- work on all the platforms you're targeting before you commit yourself to it. Of course, if you describe yourself as "an old PERL programmer" you may have missed a lot of the recent cool stuff on CPAN - the binary is called 'perl', the language 'Perl', and the mistake of calling it 'PERL' kinda went out with the 2001-era CGI.pm crowd (this isn't meant as an ad hominem - I've simply found that anybody who says 'PERL' as anything except a joke is -hugely- likely not to have taken advantage of most of CPAN and have no way of telling if you're an exception to that :)
- mst 18y agoThe last time a django core dev looked at DBIx::Class in front of me the response was "shit, we need to steal that". Sadly I didn't get to catch up with them properly at OSCON to find out if they'd manage to steal much of the awesome stuff yet. SQLAlchemy probably already has similar features though, so maybe they don't need to. Ruby can't handle MI. Ruby's metaprogramming seems limited. But I'm not informed. I've had several perl ->ruby guys come back to perl going "hey! it's like ruby but with a flexible object system" to me. But I don't know enough about it to have an opinion myself.
- mst 18y ago"What's a profoundly useful library in CPAN that isn't easily matched in Python?" Moose. I haven't been so happy programming since I first discovered scheme.
- tptacek 18y agoI swear to god I'm not challenging you, I really want to know: what makes Moose more interesting than the metaclass programming you get ``for free'' with Python and Ruby? Or am I totally missing what Moose does?
- mst 18y agoThey also stole non-trivial chunks of CLOS. The attribute metaprotocol and method modifiers are AFAIK rather more like the equivalents in CLOS or a smalltalk than they are like those in python/ruby, and the roles system is -way- nicer than mixins. I actually considered once implementing mixins for perl the way ruby does them with an anon class to keep single inheritance, then abandoned the concept as being a colossal hack. python's MI OTOH is sane with a C3 MRO, so we stole that for perl - in the cases where a mixin or role isn't sufficient it works very nicely. I'd suggest having a read of the Devel::REPL articles on http://chainsawblues.vox.com/ http://chainsawblues.vox.com/ - that might show off the capabilities of roles+method modifiers better than I can explain.
- nailer 18y agoI consider Lisp modern, as it: a) uses a very human language, similar to other modern languages b) is gaining interest, rather than decreasing interest like C, Java and Perl are [1]. [1] http://radar.oreilly.com/Language_all.jpg http://radar.oreilly.com/Language_all.jpg
- parenthesis 18y agoThe chart you link to shows C, Java and Perl going down, but it also shows Lisp going down a lot and Scheme going up only a little.
- nailer 18y agoCheck the colors again - Scheme is increasing popularity at the same level as Ruby is. Ack. re: Lisp.