Cooking the Books: Formalizing the JMM Implementation Recipes - Petri et al. 2015 A decade ago, the semantics of concurrent Java programs, the Java Memory Model (JMM), was revised and redefined... ... this refinement introduced a formalization called the Data-Race Free (DRF) guarantee. Programs that do not have data races (DRF) in their sequentially consistent … Continue reading Cooking the Books: Formalizing the JMM Implementation Recipes
Optimization Coaching for JavaScript
Optimization Coaching for JavaScript - St-Amour & Guo, 2015 Because modern programming languages heavily rely on compiler optimizations for performance, failure to apply certain key optimizations is often the source of performance issues. To diagnose these performance issues, programmers need insight about what happens during the optimization process. Consider the following program snippet from the … Continue reading Optimization Coaching for JavaScript
The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript
The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript - Pradel and Sen, 2015 Updated to fix conditional coercion example: "0" == "false" is false, but "0" == false is true. "JavaScript is notorious for its heavy use of implicit type coercions" - and many of those are … Continue reading The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript
Towards Practical Gradual Typing
Towards Practical Gradual Typing - Takikawa et al. 2015 This is the first in a selection of papers this week from the recent ECOOP '15 conference. What's the best building material? It's fairly easy to see that the answer depends on what you are building (e.g. a garden shed vs. a skyscraper), where you are … Continue reading Towards Practical Gradual Typing
Welcome Back – and ECOOP ’15
Welcome Back! I hope you enjoyed the summer break and managed to catch up on some of your reading :). To kick things off again, I've pulled together a selection of papers from ECOOP '15 that was held in Prague last month: Towards Practical Gradual Typing examines the age-old debate between dynamically and statically typed … Continue reading Welcome Back – and ECOOP ’15
Summer Recess
It's summer recess time on The Morning Paper. I'm taking July off from daily publishing, and paper reviews will resume again on Monday 3rd August. I've hugely enjoyed interacting with all of you over the last few months - according to WordPress there have been just shy of a quarter of a million visits to … Continue reading Summer Recess
Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes
Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes - Barnett et al. 2015 Earlier this week we saw that pull requests with well organised commits are strongly preferred by integrators. Unfortunately, developers often make changes that incorporate multiple bug fixes, feature additions, refactorings, etc.. These result in changes that are both large and … Continue reading Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes
The Art of Testing Less Without Sacrificing Quality
The Art of Testing Less Without Sacrificing Quality - Herzig et al. 2015 Why on earth would anyone want to test less? Maybe if you could guarantee the same eventually quality, and save a couple of million dollars along the way... By nature, system and compliance tests are complex and time-consuming although they rarely find … Continue reading The Art of Testing Less Without Sacrificing Quality
When and Why Your Code Starts to Smell Bad
When and Why Your Code Starts to Smell Bad - Tufano et al. 2015 Yesterday we saw that maintaining project quality is a key issue for integrators (maintainers). So it seems appropriate that my third choice from the recent ICSE '15 conference papers examines the question of when quality starts to slip at the code … Continue reading When and Why Your Code Starts to Smell Bad
Work Practices and Challenges in Pull-Based Development
Work Practices and Challenges in Pull-based Development - Gousios et al. 2015 In the recent years, we are witnessing that collaborative, lightweight code review is increasingly becoming the default mechanism for integrating changes, in both collocated and distributed development. Effectively, the pull request (in various forms) is becoming the atomic unit of software change. How … Continue reading Work Practices and Challenges in Pull-Based Development