February 01, 2017
February PragPub Magazine
“By the early 1960s,” Wikipedia informs us, “computer designs were approaching the point of diminishing returns. CPU speeds appeared to be reaching a plateau.” One way computer designers tried to solve the problem was through parallel computing, and one notable implementation was ILLIAC IV, an SIMD parallel machine delivered to NASA Ames Research Center at Moffett Field in Mountain View in 1971. Stanley Kubrick visited the lab where it was being built and ILLIAC IV became the inspiration for the HAL 9000 computer in 2001: A Space Odyssey.
The more things change, the more they stay the same. Around the same time this was happening, Intel co-founder Gordon Moore articulated what became known as Moore's law: the number of transistors per chip would double every twelve months. Other important measures, like execution speed, seemed to scale with this. Later Moore had to stretch the timeframe, though, and before long it was clear that Moore’s law was not going to rule forever. Computer design had hit another plateau, and some solution had to be found to move forward.
Semiconductor designers turned once again to parallelism. They designed multiple processor cores within a single chip. Making use of these multiple cores, well, that was left as a software problem.
Today we’ve gotten a lot more sophisticated about how to recast problems for parallel solutions, and we’ve also moved beyond the single-computer model of application software, with web apps and cloud computing. Interestingly enough, these new models seem to be particularly welcoming to parallel approaches.
And parallel approaches invite functional programming. This month, Hal Fulton reflects on functional programming, parallelism, and the future of computing.
Also in this issue, Venkat Subramaniam continues his series on refactoring iterative code in Java 8 to functional style. This month he focuses on the functional (and conceptually parallel) approach of treating collections as objects to manipulate directly, rather than piece-by-piece.
Parallelism can be implemented at the human level, too. Mark Pearl returns this month with the second installment in his hands-on series on getting into mob programming. With the preliminaries out of the way, he takes you right through your first mobbing session.
Marcus Blankenship writes for us on being a team manager or leader, about the mistakes you make the first time you are given responsibility over others, and how to avoid them. This month he talks about the importance of getting feedback from your team, and ways to invite it. Johanna Rothman writes on managing product development, and this month looks at what to do when some members of your team are not members of your team. Plus Antonio Cangiano has all the latest tech books and John Shade casts shade on the phenomenon of the perpetual beta.
And one more thing: writing. You’re obviously a reader, and we suspect you may also be a writer. If you have an idea for an article or a book, we want to hear from you. Toward that end, Derek Sivers and I have pulled together some advice on writing articles for PragPub, writing books for The Pragmatic Bookshelf, and writing in general.
It’s a fatter-than-usual issue. We hope you enjoy it!
Now available from theprosegarden.com.
Upcoming Author Appearances
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
- The Cucumber Book Second Edition
- Effective Testing with RSpec 3: Build Ruby Apps with Confidence
Thanks for your continued support,
Publisher, Pragmatic Bookshelf
Books • eBooks • PragPub Magazine • Audiobooks and Screencasts