What is Modern Perl
josetteorama.com
What is Modern Perl
1–10 of 46 posts
Re: What is Modern Perl
#2Re: What is Modern Perl
#3I really wanted to see what Modern Perl looks like.
Re: What is Modern Perl
#4I really wanted to see what Modern Perl looks like.
Have a look at http://onyxneon.com/books/modern_perl/ This is from the author of the book, there's a nice pdf preview there to show the book off and a way to buy it.
Re: What is Modern Perl
#5Until one morning a colleague of mine, saw me doing some stuff I was taking really long to finish. He just walked up to my cubicle and just said 'Why dont you use Perl to do this' and then started my crazy journey with Perl. What I really like about languages like Perl/Python and Ruby is how quickly you can go from learning to building something really useful.
Perl has seen atleast 3 major rise in its popularity since its inception. First one among sysadmins, its from these days that you will powerful terse, small but elegant solutions to a range of problems. If you ever get a chance, do browse and read essays from Tom christiansen written during those times. They are just pure gem. The second was during Perl/CGI days. And third was the most recent with the Modern Perl movement. Much of the thanks for this goes to People like Chromatic, Audrey, People of p5p, Moose devs and etc. From each of those times, you will see varying variety of code written. Starting from really amazing one liners to at times some frustrating code during the dot com bubble, to now where Perl code really looks very nice.
Modern Perl really is set of many successful sub projects. And its not just code, it covers everything. Code is just the beginning. To give you an example, these days you have very nice cpan package managers. You can search packages using Metacpan in a very user friendly GUI with nice syntax highlighting. You have awesome documentation, Modern Perl book really is the Perl's equivalent of the K&R book. There is Moose, And there are things like Class::MOP. There are things like DBIx::Class.
In terms of other new breath taking stuff you will see things like Devel::Declare. This allows new syntax extensions to be written using Perl itself. Then as a result you have a range of modules like Moosex::,Try::Catch, Gather::Take etc.
In terms of web frameworks your have Catalyst.
So its really these many many successful subprojects together which form 'Modern Perl', if you wish to describe it that way. Its no one thing. Code, documentation, culture, events, infrastructure etc etc all together form the 'Modern Perl' thing.
If you come to the Perl core development, then they have real good time based releases. They are fixing bugs, adding new features, and doing a lot of amazing stuff. There have been pretty neat syntax features added in the past few releases and I guess much of Perl 6 based features will continually seep into Perl 5 as needed over time.
Modern Perl, or other wise. Perl continues to retain its niche. Which is text heavy lifting, automation, rapid prototyping, development, a deep learing curve and larger gains in productivity with time. Its still the go-to tool for most back end tasks. If you wish to get something done faster, with little effort, sanely with little bugs in say over a weekend, You have little alternatives apart from Perl. If you are in dev ops and you have P1 tickets standing on your head pretty often, a tool like Perl is indispensible.
And most importantly its areas of strengths are only growing- Unicode, regular expressions, CPAN, powerful syntax etc. If you ever get a chance Higher Order Perl is one book you must read. It really opens your mind to elegant solution to a range of problems.
But like every other language, you need to invest time and effort incrementally to keep yourself updated.
Re: What is Modern Perl
#6I really wanted to see what Modern Perl looks like.
Have a look at http://onyxneon.com/books/modern_perl/ This is from the author of the book, there's a nice pdf preview there to show the book off and a way to buy it.
It is a bit of a marketing term, though. Not many of the "modern" features are really new to Perl, but basically rather common modules. In the case of Moose, they do change the language use significantly, but mostly it's about showing that Perl can be used beyond small, one-file Unix scripts. And it's been able to do that for quite a while, the Perl 4 days are long gone.
Still, getting some new-found traction is important, and popularizing some great CPAN modules definitely won't hurt.
Re: What is Modern Perl
#7There are now dozens of CPAN modules with names like "common::sense" and "Modern::Perl" that provide no useful code, but introduce packaging dependencies and administrative overhead in the name of not having to type "use strict;" out by hand.
Modern Perl is using Moose::Any instead of just using a language that does what you want. Modern Perl involves an average of 130 CPAN dependencies for any give application.
Modern Perl is when perl stopped being perl and started being awful.
Re: What is Modern Perl
#8Long-time perl programmer here, until I found Python. Perl is powerful, but Perl is for the programmer, not the programmer's coworkers. It's not even for the programmer 6 months down the line. This is nothing new, and it has become a stereotype in the community.
Yes, this argument has been made and refuted many times, but I argue the reason isn't the language, but the dominant language paradigms.
Perl's "monk" ideal is not sustainable in the long term, and encourages "clever hackers" who can do things with the fewest lines of fundamentally unreadable code. Yes, the language has evolved. Yes, it is slightly easier to read now. But the goals of the community still tend toward the ideals of becoming a master of arcana who can pass his wisdom down to the less experienced.
Give me a language that the commoners can read, that a beginning programmer can feel empowered to learn because he can take one look at the source code of someone truly experienced and know at least a part of what is going on.
You can change Perl all you want, but you cannot get away from the fundamental guiding principles of the language, which encourage antisocial, clever, and magic code.
Re: What is Modern Perl
#9I started using Perl around 2006'ish, that was pretty late in the day compared to most Perl hackers. I was primarily a C/C++ Dev, going the OO way. And I was doing Java here and there. Until one morning a colleague of mine, saw me doing some stuff I was taking really long to finish. He just walked up to my cubicle and just said 'Why dont you use Perl to do this' and then started my crazy journey with Perl. What I rea…
This being said like most frameworks it is extremely important to know when to leave the framework or leave things out. While I LOVE working with Moose, my own projects are very heavily stored procedure centric and therefore an ORM like DBIx::Class really does me very little good. DBIx::Class by all reports is an excellent ORM but it's still an ORM. ;-)
There is no better glue language I have ever encountered than Perl We use it in LedgerSMB to glue together stored procedures, web templates (in Template Toolkit), and the web server interfaces. It's a wonderful language and I can't recommend it highly enough.
As for Perl 6, it has joined HURD 1.0 as one of those projects that will be released when pigs fly. I suspect that Perl 5.x will be as far as Perl gets.
Re: What is Modern Perl
#10In perl culture, "Modern Perl" refers to bad programming by a core group of egocentric, sanctimonious developers who are to Perl what Lennart Poettering is to Linux. There are now dozens of CPAN modules with names like "common::sense" and "Modern::Perl" that provide no useful code, but introduce packaging dependencies and administrative overhead in the name of not having to type "use strict;" out by hand. Modern Perl…
But a lot of these things are not for all projects. I use Moose but not DBIx::Class in most of my projects.
I think Moose is wonderfully designed, but that's just me. you may differ in your opinion and build your own modules your way. There's more than one way to do it!