small medium large xlarge

Web Development with ReasonML, in print

April 03, 2019

The evolution of dialects is great fun for language scholars and folks who like debating the origins of “youze” vs. “y’all” vs. “yinz.” English in particular is prone to spawning new dialects, usually as a result of geographical differences and the diverse groups of people who settled in a particular location. The nature of a community influences dialect as well; a language in a heavy manufacturing area will develop differently than in an agrarian area.

ReasonML is a dialect of OCaml, a functional language that’s been around for a long time. OCaml is well-loved infunctional language communities but doesn’t have mainstream appeal. ReasonML takes the advantages of a functional language and matches them with JavaScript interoperability. Web Development with ReasonML gets you up to speed and coding in this new dialect.

Plus, we’ve got the April edition of PragPub magazine!

Check out the details below.

Web Development with ReasonML: Type-Safe, Functional Programming for JavaScript Developers

ReasonML is a new syntax for OCaml, a battle-tested programming language used in industry for over 20 years. Designed to be familiar to JavaScript programmers, ReasonML code compiles to highly readable JavaScript. With ReasonML, you get OCaml’s powerful functional programming features: a strong static type system with an excellent type inference engine, pattern matching, and features for functional programming with immutable variables. ReasonML also allows flexibility with opt-in side effects, mutation, and object-oriented programming. ReasonML hits the sweet spot between the pure theoretical world and the laissez-faire approach of JavaScript.

Start using ReasonML’s powerful type system as you learn the essentials of the language: variables and arithmetic operations. Gain expressive power as you write functions with named parameters and currying. Define your own data types, and integrate all these capabilities into a simple web page. Take advantage of ReasonML's functional data structures with map and reduce functions. Discover new ways to write algorithms with ReasonML's recursion support. Interoperate with existing JavaScript libraries with bindings, and write reactive web applications using ReasonML in tandem with React. Reinforce concepts with examples that range from short, tightly focused functions to complete programs, and practice your new skills with exercises in each chapter.

With ReasonML, harness the awesome power of a functional language while retaining the best features of JavaScript to produce concise, fast, type-safe programs.

Now in print from pragprog.com/book/reasonml.

April PragPub Magazine

Is there something distinctive about the thought processes of a programmer while programming? Your editor asks the question in this month’s PragPub, and thinks that the answer might have something to do with dealing with complexity. Expanding on that, three authors reflect on coding practices and how they affect a programmer’s ability to deal with complexity.

Michael Nygard describes a delightfully elegant design motif in Smalltalk. An elegant design combines a small number of primitives in a variety of ways. It is conservative in its consumption of mechanisms. Michael shows how much can be accomplished with just three features. Elegance in design can mean clarity and simplicty in the code — assuming you are familiar with the techniques used.

On the other hand …

David Bryant Copeland makes the argument for the value of “fewest concepts needed to understand the code.” And this leads him in a very different direction. He cites the Python principle that “explicit is better than implicit” and by implication, explicit code is better than elegant code. But better in what sense? In the sense of clarity of purpose, David thinks, and maintainability.

Onorio Catenacci teaches junior developers. In his article in this issue, he takes the principle of explicit code further. He works through a classic programming kata, analyzing the problem down to its smallest components, then codes solutions to these individually. He says,

“What I’ve tried to show here is a reflection of how I’ve seen good developers think over the years. Even if the answer comes to them as a jumbled assortment of ideas, they start with the simple parts first and solve them correctly.”

Clearly, the issue of complexity is complex.

Complexity of a different sort arises when you work in teams, and especially when those teams are geographically distributed. Trying to work in an agile way when your colleagues are in different countries or time zones can raise all kinds of problems. Mark Kilby and Johanna Rothman have thought long about those problems, and offer their advice in a new series on distributed agile teams, starting this month.

And of course our regular contributors are all here: Russ Olsen on hash tables, Marcus Blankenship on managing managers, Antonio Cangiano on tech books, and John Shade on code anonymity. Plus there’s a puzzle! We hope you enjoy this April PragPub.

Upcoming Author Appearances

  • 2019-04-09 Frances Buontempo, ACCU, Bristol UK
  • 2019-04-09 Fred Hebert, Web à Québec
  • 2019-04-10 Ethan Garofolo, OpenWest 2019
  • 2019-04-11 Frances Buontempo, ACCU, Bristol UK
  • 2019-04-18 Paolo Perrotta, RubyKaigi, Fukuoka, Japan
  • 2019-04-24 Johanna Rothman, Influential Agile Leader, Toronto
  • 2019-04-26 Jeremy Fairbank, Lambda Squared, Knoxville, TN
  • 2019-04-30 Colin Jones, RailsConf, Minneapolis
  • 2019-04-30 Andy Lester, SoftwareGR, Grand Rapids, Michigan
  • 2019-05-08 Brian MacDonald, NDC Minnesota 2019
  • 2019-05-08 Michael Keeling, SATURN 2019 in Pittsburgh, PA
  • 2019-05-09 Johanna Rothman, Agile PM Roundtable (Virtual)
  • 2019-05-11 James O. Coplien, Scrum Patterns Course
  • 2019-05-16 Johanna Rothman, Austin Agile at Scale SIG
  • Did You Know?

    If you've bought a paperback copy of one of our titles, you can still buy the ebook at our discounted "combo" price—even if you bought the paperback from a book store. Look on the last page of your paper book for directions.

    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 Hunt @PragmaticAndy.

    Coming Soon:

    • A Scrum Book: The Spirit of the Game, in beta
    • Programming Ecto: Build Database Apps in Elixir for Scalability and Performance, in print
    • Designing Elixir Systems with OTP, in beta

    Recently Released:

    Thanks for your continued support,

    Andy Hunt Publisher, Pragmatic Bookshelf

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