I want to share a story with you. It’s about how Haskell can change
the way that we write code for the better. By the end of my story, I
hope that you’ll understand why things need to change, and how Haskell
can help us. If nothing else, I want to give you a glimpse of a world
where you have a better chance of fighting against the complexity of
modern software development. I’m making the case for Haskell.
The challenges of writing software today are catching up to
us. Race conditions and deadlocks slow our adoption of
multi-core. Systems are increasingly spread across the network.
We battle to keep them available and scalable. Needs change,
often unexpectedly, and so must the code that we labored to
ensure worked correctly.
We’ve faced off against these challenges with both dynamic and
static languages. In both cases, we rely on the tried
and true method of: writing tests, writing code, testing it -
and fixing it or updating. Rinse and repeat!
This approach falls short, however. Code changes and
evolves. Tests soon grow to be a maintenance burden. Most tests
won’t expose issues with parallel or concurrent code. Worse
yet, tests grow stale, and quickly become invalidated.
There’s hope, however! There’s a way to overcome these
hurdles. You can safely refactor. You can write fewer
tests. You can have parallelism, concurrency, and most of the
performance of C. All this, without the dangers of memory
corruption, null pointer exceptions, or race conditions. Allow
me to introduce you to Haskell.
Why Haskell, and how can it keep these lofty promises? It’s
about purity. It’s about laziness. It’s about the types! The
compiler can enforce amazing truths about your code at
compile-time, all while staying out of the way. It’s portable,
too: Windows, Mac OS, and Linux, on x86 or ARM – all supported.
Haskell isn’t perfect – I’m not selling you a silver
bullet. I’ll show you where it needs help, and together we can
overcome those problems.
Join me, and I’ll share with you why I believe Haskell can help us all become better programmers.
Hey! Nice to meet you. I’m a developer at Rackspace, and I work on the Openstack Marconi project during the day. I enjoy learning from others and sharing knowledge.
Great friends, Linux, open source, Python, and Haskell have helped me get to where I am today.
For exhibition and sponsorship opportunities, contact Sharon Cordesse at firstname.lastname@example.org
For information on trade opportunities with O'Reilly conferences contact email@example.com
For media-related inquiries, contact Maureen Jennings at firstname.lastname@example.org
View a complete list of OSCON contacts