Scala Is for... Distributed Systems? Web Apps? Front-end Development? with Heather Miller
Scala's been around for a few years by now, so now's a good time to ask; what do people generally do with Scala? Is it a front-end language? Do people build server-side web apps with it? Or even distributed systems? The short answer is yes, yes, and yes! Scala has found uses in all of these areas and more, and is used by groups as varied as enterprises to academic researchers to hobbyists. Scala has created its own paradigm in a sense, cherrypicking the best features from functional and object-oriented paradigms, and blending them together seamlessly. For example, implement functionality in methods with higher-order functions and immutable data types, yet, organize your codebase and reuse code using class hierarchies. What's more? You can use this way of writing code for building both the backend and frontend of an application, all in the same project! In this talk, we're going to focus on what makes Scala such a nice language for being able to span application areas as diverse as distributed systems and front-end development, and we'll talk about some new directions Scala will be going in our next major release–Scala 3!
Heather Miller is the Executive Director and co-founder of the Scala Center at EPFL, where she is also a research scientist, as well as an Assistant Clinical Professor at Northeastern University. Beginning in fall 2018, Heather will be an Assistant Professor in the School of Computer Science at Carnegie Mellon University. She recently completed her PhD in EPFL's Faculty of Computer and Communication Science where she contributed to the now-widespread programming language, Scala. Heather's research interests are at the intersection of data-centric distributed systems and programming languages, with a focus on transferring her research results into industrial use. She has also led development of popular MOOCs some 1 million students strong, such as "Big Data Analysis with Scala and Spark," and "Functional Programming Principles in Scala."