GOTO is a vendor independent international software development conference with more that 90 top speaker and 1300 attendees. The conference cover topics such as .Net, Java, Open Source, Agile, Architecture and Design, Web, Cloud, New Languages and Processes

Cristina Videira Lopes, Member of the Ivory Tower and Undercover Developer

Cristina Videira Lopes

Biography: Cristina Videira Lopes

Crista Lopes is a Professor of Informatics in the School of Information and Computer Sciences at the University of California, Irvine. Her research focuses on software engineering for large-scale data and systems. Early in her career, she was a founding member of the team at Xerox PARC that developed Aspect-Oriented Programming.

Along with her research program, she is also a prolific software developer. Her open source contributions include being one of the core developers of OpenSimulator, a virtual world server. She is also a founder of Encitra, a company specializing in online virtual reality for early-stage sustainable urban redevelopment projects.

She has a PhD from Northeastern University, and MS and BS degrees from Instituto Superior Tecnico in Portugal. She is the recipient of several National Science Foundation grants, including a prestigious CAREER Award. She claims to be the only person in the world who is both an ACM Distinguished Scientist and Ohloh Kudos Rank 9.

Presentation: Exercises in Style

Track: Embedded technologies and the Internet of Things / Time: Tuesday 13:20 - 14:10 / Location: Lille Sal, Musikhuset

Back in the 1940s, a French writer called Raymond Queneau wrote an interesting book with the title Exercises in Style featuring 99 renditions of the exact same short story, each written in a different style. This talk will shamelessly do the same for a simple program. From monolithic to object-oriented to continuations to relational to publish/subscribe to monadic to aspect-oriented to map-reduce, and much more, you will get a tour through the richness of human computational thought by means of implementing one simple program in many different ways.

This is more than an academic exercise; large-scale systems design feeds on these ways of thinking, and often concepts that start as programming language constructs find their way to large-scale distributed systems. I will talk about the dangers of getting trapped in just one or two prescribed styles during your professional career, and the need to truly understand this wide variety of concepts when architecting software.