The best of what's new on CPAN 2014
2014 has come and gone, which means that we’ve completed 12 editions of “What’s New on CPAN”. This seems like an appropriate moment to take stock and reflect on the past year of new CPAN uploads. I’ve compiled a shortlist of modules by using the scientific approach of “stuff that I remember”. Have a think about what would be on your “best of” list, and maybe let the author know, or better, write about it and let the World know.
Config & DevOps
Ingy and David’s grant work on the next generation of Inline generated a lot of excitement. But along with re-furbishing the whole Inline ecosystem, a number of side-effect modules were created too. One of those is Devel::PerlLog which simply logs a configurable message every time a Perl process starts.
C-related Perl libraries got a big boost in 2014. Asides from Ingy’s refreshed Inline::C, Graham Ollis has been working and presenting on another XS alternative: FFI. FFI::CheckLib will check that a particular C library is available as well as FFI::TinyCC, a compiler interface.
Module::Loader is a nifty way of loading plugins at runtime.
Ah Sereal, the super-fast seralizer software. SerealX::Store was an attempt to create a storable-like interface over Sereal, except tastier. XML::Dataset implements a simple DSL for extracting data from XML/XHTML documents.
Remember the big debate about Perl 5’s version numbering? Whilst some tirelessly debating the topic, others were hard at work at real solutions™. This is Acme::Futuristic::Perl.
Speaking of real solutions™, check out bare which removes the need to use sigils for scalars. Finally, the last barrier to mass adoption of Perl has been solved!
CPAN advanced more in hardware-related modules than perhaps any other area. YAPC NA 2014 was awash with drones. This really does seem like a promising area for Perl to lay claim. Several modules stand out in particular. Let’s start with the shiny: Timm Murray’s UAV::Pilot::ARDrone and UAV::Pilot::WumpusRover enables WiFi remote control (with video) of drones! Timm’s Device::WebIO provides a standardized interface for accessing many devices with drivers available for Raspberry Pi and Arduino among others.
Pretend you’re a command line wizard with App::Cleo, which will playback a list of commands from a file for airtight demos. No more typos!
There was a tonne of new testing stuff this year, but not much stuck with me. One module that did was Test::RequiresInternet. Import this module with
use and it will skip over the unit tests in your test file unless an active internet connection is found. Very handy!
Not exactly testing related, but surely useful for debugging, Regexp::Lexer tokenizes regexes, which is just cool.
Masahiro Nagano created Gazelle, a highly optimized pre-forking Plack handler with Nginx-like performance. Incredible stuff!
2014 also brought the usual flood of plugins for the major web frameworks. Big news for Mojo fans was the announcement of the platform moving away from MongoDB support and embracing a Postgres backend instead with Mojo::Pg.