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.
Plus, we’ve got the April edition of PragPub magazine!
Check out the details below.
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
, 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
Upcoming Author Appearances
ACCU, Bristol UK
Web à Québec
ACCU, Bristol UK
RubyKaigi, Fukuoka, Japan
Influential Agile Leader, Toronto
Lambda Squared, Knoxville, TN
SoftwareGR, Grand Rapids, Michigan
NDC Minnesota 2019
SATURN 2019 in Pittsburgh, PA
Agile PM Roundtable (Virtual)
Scrum Patterns Course
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</a>, <a href="http://twitter.com/pragpub">pragpub, Andy Hunt @PragmaticAndy.
- 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
- Programming WebAssembly with Rust
- Programming Machine Learning
- Modern Erlang for Beginners
- The Ray Tracer Challenge
Thanks for your continued support,
Publisher, Pragmatic Bookshelf
Books • eBooks • PragPub Magazine • Audiobooks and Screencasts