Having trouble reading this email? View it in your browser.
New This Week

Modern Perl, Fourth Edition »

Modern Perl teaches you how Perl really works. It's the only book that explains Perl thoroughly, from its philosophical roots to the pragmatic decisions that help you solve real problems—and keep them solved. You'll understand how the language fits together and discover the secrets used by the global Perl community. This beloved guide is now completely updated for Perl 5.22.

Elm: Signals, Mailboxes & Ports »

As a sequel to The Pragmatic Studio's popular video tutorial Elm: Building Reactive Web Apps comes their newest video tutorial Elm: Signals, Mailboxes & Ports. See below for details.

Recently Released:

 

Coming Up Next:

  • Practical Vim, 2nd Ed., in print
  • Serverless Single Page Apps: Fast, Scalable, and Available, in beta
  • Creating Great Teams: How Self-Selection Lets People Excel, in print
  • Developing for Apple Watch, Second Edition, in beta
Modern Perl & Elm Signals
October 21, 2015

A Perl expert can solve a problem in a few lines of well-tested code. Now you can unlock these powers for yourself, with chromatic's classic Modern Perl, Fourth Edition, now in print and shipping from pragprog.com/book/swperl. The ebook is free for your enjoyment.

And our sister company The Pragmatic Studio has a new video tutorial for you: Elm: Signals, Mailboxes & Ports. Check out the incredible power and elegance of Elm's signals. See below for details.

Welcome to the future!

Modern Perl, Fourth Edition

When you have to solve a problem now, reach for Perl. When you have to solve a problem right, reach for Modern Perl. Discover how to scale your skills from one-liners to asynchronous Unicode-aware web services and everything in between.

Modern Perl will take you from novice to proficient Perl hacker. You'll see which features of modern Perl will make you more productive, and which features of this well-loved language are best left in the past. Along the way, you'll take advantage of Perl to write well-tested, clear, maintainable code that evolves with you. Learn how the language works, how to take advantage of the CPAN's immense trove of time-tested solutions, and how to write clear, concise, powerful code that runs everywhere. Specific coverage explains how to use Moose, how to write testable code, and how to deploy and maintain real-world Perl applications.

This new edition covers the new features of Perl 5.20 and Perl 5.22, including all the new operators, standard library changes, bug and security fixes, and productivity enhancements. It gives you what you need to use the most up-to-date Perl most effectively, all day, every day.

The ebook is available for free from pragprog.com/book/swperl, and you can order the paperback as well.

Five Things Perl (Still) Gets Right

by chromatic

In the late '90s, I switched from Java to Perl because Perl made things easier. Perl let me get things done. Almost 20 years later, Perl still has a special place in my toolbox. I keep using it for certain projects because it still does some things so very well.

I can get many of these features from a lot of languages and platforms, and that's great. Yet the combination available from Perl and its ecosystem keeps me coming back to the language.

Compatibility The first serious program I wrote in Perl was a statistical analysis of random number sequences. It was last modified on February 26, 2003 and still runs, untouched. This program isn't unique in its longevity. Most programs written to run even for Perl 3 or 4 will run today on Perl 5.22. In the 8 major and 38 minor stable releases of Perl since 2000, nearly any program written will run without modification. The expectation of compatibility guides people to keep existing code working.

Quality Perl has a standard test suite that's expected to pass on every platform with every commit. It has monthly unstable releases so that intrepid volunteer testers can test the CPAN—Perl's large library of freely reusable third-party code—against the latest development versions.

A project called "Bleadperl Breaks CPAN" bisect commits to Perl itself to find out exactly which change breaks which modules when something goes wrong. In practice, it's possible to update an application to run on the newest release of Perl the day it's released with no changes to your code. Just install the new version, install your module dependencies, and go.

Usability Writing documentation as a programmer is like flossing: everyone knows they should do it, but most of us don't do it often enough. Yet Perl's documentation standard has set a bar that few other projects I've seen have ever matched. Perl set this standard early; it includes voluminous documentation of the language, core libraries, and even its expected documentation format. CPAN modules have a well-established standard for documentation, including running code you can often copy and paste and modify into your own programs.

Scalability One of Larry Wall's early design goals was to fill the gap between one-off shell scripts and serious programs written in C. I like to think he took the ease of prototyping and low ceremony of shell scripting and combined it with the full power of Unix available from C.

If you plotted the sizes of all the programs I've written in the past couple of decades, you'd see a wide range: lots of one-liners, countless Unix filter scripts, and larger programs of tens of thousands or hundreds of thousands of lines. That's not by accident; scalability of programmer effort is a deliberate goal of Perl that's pervasive through much of the CPAN as well.

Availability Perl's been available on every professional system I've used in recent memory. It was quicker and easier to write a simple log parser in Perl on a new work laptop than to make sure I had all the development dependencies installed to install the correct other language dependencies to use the libraries I'd need there. (Though to be fair, I'm really good at writing simple log parsers after decades of Unix experience.)

Going from "I have a fresh account on a new machine" to "I can use Spreadsheet::WriteExcel to fill in the gaps of an existing spreadsheet just uploaded by a user" is easy—in part because I know all the pieces, but in part because I have confidence that they're stable, well-tested, work together, and are available not just on my new laptop but on my server. I appreciate that Perl works and continues to work.

Elm: Signals, Mailboxes & Ports

Check out The Pragmatic Studio's newest video tutorial.

Understanding signals is the key to successfully creating reactive Elm apps.

To react to any type of user input, you apply a function to a signal.

To receive messages sent to a mailbox, you tune in to a signal.

To maintain application state, you create a past-dependent signal.

Communicating with JavaScript via ports? You guessed it, you use signals!

In Elm, a signal is a value that changes over time. But that definition can feel fairly abstract until you see signals in action. So this course is loaded with lots of practical examples and use cases of signals in various scenarios.

Throughout the course, you'll discover how to:

  • transform signals to react to a variety of inputs in specialized ways
  • create a simple game that responds to multiple user inputs
  • use signals as they relate to mailboxes and ports in web apps
  • build a simple reactive HTML app with JavaScript interop, without the aid of the StartApp module

You'll come away with an appreciation for the power of signals, mailboxes, and ports and more importantly, you'll have the confidence to immediately apply these techniques and patterns to your own projects!

Check it out! You can watch the first 3 videos for free at pragmaticstudio.com/elm-signals.

Upcoming Author Appearances

  • 2015-10-24 Chris Johnson, Twin Cities Code Camp
  • 2015-10-25 Johanna Rothman, Tel Aviv, Israel
  • 2015-10-26 Adam Tornhill, Trondheim Developer Conference, Norway
  • 2015-10-26 Johanna Rothman, Tel Aviv, Israel
  • 2015-11-04 Adam Tornhill, Øredev 2015, Malmö, Sweden
  • 2015-11-05 Chris Adamson, CocoaConf San Jose
  • 2015-11-06 Chris Adamson, CocoaConf San Jose
  • 2015-11-07 Chris Adamson, CocoaConf San Jose
  • 2015-11-10 Johanna Rothman, Product Owner Training (online)
  • 2015-11-10 Andrew Hunt, GROWS Tutorial, ADC East, Orlando
  • 2015-11-12 Andrew Hunt, Keynote, ADC East, Orlando
  • 2015-11-15 Noel Rappin, RubyConf
  • 2015-11-16 Mattias Skarin, Lean Kanban Central Europe 2015
  • 2015-11-16 Alex Miller, Clojure/conj 2015 - Philadelphia, PA
  • Don't Get Left Out

    Are your friends jealous that you get these spiffy email newsletters and they don't? Clue them in that all they need to do is create an account on pragprog.com (email address and password is all it takes) and select the checkbox to receive newsletters.

    Are you following us on Twitter and/or Facebook? Here's where you can find us and keep up with the latest news and commentary, and occasional discounts:

    Tell your friends! Tweet this

    Follow us on Twitter: @pragprog, @pragpub, Andy @PragmaticAndy and Dave @pragdave.

    Dave & Andy
    The Pragmatic Programmers

    Books • eBooks • PragPub Magazine • Audiobooks and Screencasts
    PragProg.com

    Manage your subscription using your account, or permanently unsubscribe here.
    Sent by the Pragmatic Programmers, LLC. • 2831 El Dorado Pkwy, #103-381 • Frisco TX 75033