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
Tag: Programming Languages
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
Declarative Interaction Design for Data Visualization
Declarative Interaction Design for Data Visualization - Satyanarayan et al. 2015 We've looked at the power of declarative approaches before when it comes to data and distribution (The Declarative Imperative, Bloom, Edelweiss, and of course let's not forget SQL itself!); today's paper applies a declarative approach to interactive data visualizations. With thanks to Dion Almaer … Continue reading Declarative Interaction Design for Data Visualization
Out of the Tar Pit
Out of the Tar Pit - Moseley & Marks 2006 This is the final Desert Island Paper choice from Jonas Bonér, and a great way to round out the week. 'Out of the Tar Pit' was the 10th paper that I covered in the #themorningpaper series, but at that time I was only giving highlights … Continue reading Out of the Tar Pit
Consistency analysis in Bloom: a CALM and collected approach
Consistency analysis in Bloom: a CALM and collected approach - Alvaro et al. 2011 This week I'm delighted to bring you another edition of Desert Island Papers, featuring Jonas Bonér. And it seems fitting that Jonas' first choice is a paper by our previous Desert Island Paper guest, Peter Alvaro. There are several big ideas … Continue reading Consistency analysis in Bloom: a CALM and collected approach
Generative Communication in Linda
Generative Communication in Linda - Gelernter 1985 This is the second of five papers selected by Peter Alvaro as part of his 'Desert Island papers' nominations. Generative communication is the basis of a new distributed programming language called Linda... Where most distributed languages are partially distributed in space and nondistributed in time, Linda is fully … Continue reading Generative Communication in Linda
Recursive Programming
Recursive Programming - Dijkstra 1960 * Updated link to one that is not behind a paywall - thanks to Graham Markall for the catch * This paper deals with something we take so much for granted that it's hard to imagine a time when it had yet to be introduced to the world. That time … Continue reading Recursive Programming
Predicate Logic as Programming Language
Predicate Logic as Programming Language - Kowalski 1974 The purpose of programming languages is to enable the communication from man to machine of problems and their general means of solution. Kowalski shows us that predicate logic can be used as the basis of a "useful and practical, high-level, non-deterministic programming language with sound theoretical foundations." … Continue reading Predicate Logic as Programming Language
Scala Actors: Unifying thread-based and event-based programming
Scala Actors: Unifying thread-based and event-based programming - Haller & Odersky 2008 Yesterday we saw a Haskell-based approach to unifying events and threads, today's paper shows how to apply some of those same ideas on top of the JVM using Scala. There is an impedance mismatch between message-passing concurrency and virtual machines, such as the … Continue reading Scala Actors: Unifying thread-based and event-based programming