Intel has given Pentium BUG
key chains as gifts to the
employees to remind them
how expensive a BUG could be.
Slide 7
Slide 7 text
Ariane 5 rocket self
destruction
A Bug = $370
Million
Slide 8
Slide 8 text
Knight Capital Trading
Glitch
$440 Million
Slide 9
Slide 9 text
Software bugs cost the US
economy $59.5 billion every
year.
Slide 10
Slide 10 text
This is your manager when you have
introduced a million dollar bug...
Slide 11
Slide 11 text
The Big Boss after you have introduced a million
dollar bug...
Slide 12
Slide 12 text
What happens to a developer with a million dollar
bug?
Slide 13
Slide 13 text
DEVELOPER
Slide 14
Slide 14 text
Why Haskell is going to save your life?
Slide 15
Slide 15 text
Haskell is a functional
programming language that
will open your mind for a new
way of thinking. Haskell will
expand your vision and will
make you a better developer.
Slide 16
Slide 16 text
Haskell is like the summer
rain - it will clear your mind of
all non-functionall impurities.
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
Why learning
Haskell is good for
you?
Slide 19
Slide 19 text
It is highly unlikely that you
will find a job doing Haskell.
BUT learning Haskell will
make you a better developer.
Slide 20
Slide 20 text
Why is Haskell good
at eliminating BUGS
?
Slide 21
Slide 21 text
Bug Eliminator #1
Static typing
Slide 22
Slide 22 text
Static typing gives earlier
feedback on whether or not
the code meets the
requirements that can be
expressed by the type system.
Slide 23
Slide 23 text
Bug Eliminator #2
Sophisticated
type system
Slide 24
Slide 24 text
Haskell’s type checker
catches most of the bugs
that happen at runtime
in other languages.
Slide 25
Slide 25 text
The Maybe type in Haskell:
data Maybe a =
Nothing | Just a
Slide 26
Slide 26 text
Bug Eliminator #3
Immutability
Slide 27
Slide 27 text
Haskell is a pure functional
programming language and
state and side effects are
modeled using “Monads”.
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
Bug Eliminator #4
Isolation
Slide 31
Slide 31 text
In Haskell Monads are used to
create imperative style
computational structures
which remain isolated from
the main body of the
functional program.
Slide 32
Slide 32 text
A function to read from a file using the IO monad
readFile :: FilePath -> IO String
Slide 33
Slide 33 text
Bug Eliminator #5
Property based
testing
Slide 34
Slide 34 text
Haskell has excellent support
for property based testing
implemented in the
QuickCheck library.