|
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 the 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 Appearances2019-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.
Andy Hunt
Publisher, Pragmatic Bookshelf
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. • 9650 Strickland Rd Ste 103-255• Raleigh NC 27615
|