Please log in to watch this conference skillscast.
What happens when you try to apply Scala to projects that seem bad candidates for a functional approach–due to their computational intensity or the nature of their domain? Two attempts at such 'inappropriate' applications will serve as examples: an MP3 decoder and a Game Boy emulator, both written entirely in Scala and sticking as far as possible to functional principles.
Developers considering attacking such problems with a functional language may wonder about performance, the look of the resulting code or simply why they would want to do it that way. The personal experiences and lessons learnt from these endeavours may shed some light.
Both projects are intentionally exaggerations of what one might want to use Scala for in practice, but even as learning projects, there are points of wider interest: how functional purity can be usefully sacrificed in the worst bottlenecks, how design of types is key to performance, and how expressing a problem functionally, despite the toil, is possible and satisfying and very often makes it clearer.
In getting both of these applications to work Danielle also hopes to give counterexamples to the perception held by some that Scala is necessarily slow, inefficient or uncool.
YOU MAY ALSO LIKE:
'Inappropriate' applications for Scala
Danielle was a hobbyist programmer for well over a decade before it finally dawned upon her a couple of years ago to make a career out of it. She is currently employed by American Express and was previously employed by Crunch Accounting and Sussex Police.