Proceedings of the companion publication of the 2014 ACM SIGPLAN conference on Systems, Programming, and Applications: Software for Humanity

On behalf of the whole SPLASH organizing committee, I am delighted to welcome you (back!) to Portland, Oregon, for SPLASH 2014. While OOPSLA has a long and storied history, starting in Portland in 1986, we took the plunge into SPLASH only in 2010, when we started using that name for the umbrella venue that encompasses OOPSLA, Onward!, Onward! Essays, Wavefront, and the Dynamic Languages Symposium, as well as the lively collection of keynotes, demonstrations, tutorials, workshops and smaller symposia that make SPLASH unique. In 1986 it was hard to imagine that object-orientation would become the dominant technology for the software industry. With that dominance has come the recognition that objects are not the only viable technology, nor even the best technology for all situations. Thus, SPLASH now embraces all aspects of software construction and delivery, as well as programming languages, and software engineering. OOPSLA continues to present research that pushes the edge of what objects can do. Onward! encompasses everything to do with programming and software, including software process, development methods, languages, communities, and applications. We hope that Onward! remains more open than other conferences to not yet well-proven ideas. For the first time, SPLASH is co-locating with HILT, the annual SIGAda conference on High Integrity Language Technology. SPLASH-E for educators is in its second year, and Kathi Fissler has put together an interesting program that brings together research in learning and developments in software technology. Some other familiar symposia, like SLE and PLoP, are elsewhere this year, but are likely to be back in 2015. Wavefront should be about the practice of software development. It's always been difficult to get practicing software engineers to write papers: the incentives of the software industry reward running code, not academic papers. This year we tried something a little different: soliciting talks rather than papers. The small size of Wavefront is a clear indicator that we don't yet have the right formula; you are invited to share your ideas on how to re-invent Wavefront with the SPLASH Steering committee. In contrast, the Dynamic Languages Symposium continues to attract a lively collection of submissions. Indeed, I am tempted to argue that DLS represents both the cutting edge of innovation in OO and the continued evolution of some of the far-out ideas from the 1980s -- ideas that the far greater speed and memory capacity of today's hardware have enabled us to take to their logical conclusion. I'm especially pleased to welcome three very distinguished keynote speakers: Gary McGraw, Peter Norvig, and Bret Victor. Security, or rather the lack of it, has made headlines this year -- as it does every year -- with the usual batch of embarrassing security breaches, but also the interesting case of the Heartbleed vulnerability, which helped to make clear that opening software to the scrutiny of many eyes, while helpful, does not itself solve the security problem. On Wednesday, Gary McGraw of Cigital will talk about transitioning (security) technologies from the lab into practice, and will also participate in a panel on security. On Thursday, Peter Norvig of Google asks us to consider whether machine learning could, or should, make traditional programming obsolete. Just as we routinely use machine learning algorithms to capture the complex decision-making that goes into recognizing human speech or faces in photographs, might we not use those same algorithms to capture the decision-making that goes into, say, writing a compiler? On Friday, Bret Victor challenges us to think about the costs as well as the benefits of static, written notations. Computing technology offers us the possibility to represent ideas dynamically rather statically: does this offer a better cost/benefit ratio? Or, to put it another way: could the "movie" of your program replace the program text?