small medium large xlarge

Programming Elm: Build Safe and Maintainable Front-End Applications; Practical Programming in print

December 20, 2017

Maybe you've heard about a way of writing website front-ends that doesn't suck. A magical land where there are no run-time errors, where you don't have to struggle against the cognitive dissonance inherent in modern web stacks. A better way to develop that still deploys as JavaScript.

Well it's not magic, it's Elm; and it's here today. Come take a look at Programming Elm: Build Safe and Maintainable Front-End Applications, now in beta at

Three editions and tens of thousands of students later, Practical Programming, Third Edition: An Introduction to Computer Science Using Python 3.6 is now in print and shipping. It's a perfect gift for young programmers ready for the vagaries of real world programs. Come and get it from

In the meantime, there won't be a newsletter next week. Please have a happy and safe holiday and we'll see you next year!


Programming Elm: Build Safe and Maintainable Front-End Applications

Functional programming offers safer applications with decreased runtime errors, but functional solutions that are type-safe and easy to use have been hard to find, until the Elm language. Elm has the benefits of functional languages while compiling to JavaScript. This book provides a complete tutorial for the Elm language, starting with a simple static application that introduces Elm syntax, modules, and the virtual DOM, to exploring how to create a UI using functions. See how Elm handles the issues of state in functional languages. You'll continue to build up larger applications involving HTTP requests for communication. Integrate your Elm applications with JavaScript so you can update legacy applications or take advantage of JavaScript resources.

Elm also provides built-in tooling to alleviate the tooling creep that's so common in JavaScript. This book covers Elm's deployment and testing tools that ease development confusion. Dive into advanced concepts including creating single-page applications, and creating performance improvements. Elm expert Jeremy Fairbank brings his years of web development experience to teaching how to use Elm for front-end development.

Your web UIs will be faster, safer, and easier to develop with Elm and this tutorial.

Now in beta at

Practical Programming, Third Edition: An Introduction to Computer Science Using Python 3.6

No programming experience required! Incremental examples show you the steps and missteps that happen while developing programs, so you know what to expect when you tackle a problem on your own. Inspired by "How to Design Programs" (HtDP), discover a five-step recipe for designing functions, which helps you learn the concepts—and becomes an integral part of writing programs.

In this detailed introduction to Python and to computer programming, find out exactly what happens when your programs are executed. Work with numbers, text, big data sets, and files using real-world examples. Create and use your own data types. Make your programs reliable, work with databases, download data from the web automatically, and build user interfaces. As you use the fundamental programming tools in this book, you'll see how to document and organize your code so that you and other programmers can more easily read and understand it. This new edition takes advantage of Python 3.6's new features, including type annotations on parameters, return types and variable declarations, and changes to string formatting.

Most importantly, you'll learn how to think like a professional programmer.

Now in print and shipping from

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 (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</a>, <a href="">pragpub, Andy Hunt @PragmaticAndy.

Coming Soon:

  • Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales in print
  • Release It! Second Edition: Design and Deploy Production-Ready Software in print
  • Simplifying JavaScript in beta
  • Complex Network Analysis in Python: Recognize → Construct → Visualize → Analyze → Interpret
  • …and a whole lot more in 2018!

Recently Released:

Thanks for your continued support,

Andy Hunt
Publisher, Pragmatic Bookshelf

Books • eBooks • PragPub Magazine • Audiobooks and Screencasts