Você está na página 1de 2

Company Overview

Bump Technologies (Mountain View, CA), founded in 2009,


launched its file-sharing app for smartphones in 2010 that
skyrocketed in popularity overnight. It was the billionth
downloaded app from Apple iTunes and became the 9th
most popular free app there. Behind the seemingly simple
bump of two phones to share files is a sophisticated blend
of technologies using GPS, timing of the bumps, latency
compensation of different cellular carriers network speed,
adjusting for environmental
factors (light, sound and
background) where the phones
are, as well as accelerometers to
measure the bumps impact.

Python Constrictions

Bump wrote their app originally in Python since most of the
founding team were familiar with it, which allowed them to
get started quickly. As the app grew quickly and needed to
scale, however, the team started having significant issues,
including high error rates and a rash of single points of
failure, particularly in shared memory functionality. The
tipping point came when the volume of code eclipsed the
programmers ability to remember all the code in their
heads and share it accurately.

Thankfully some developers had experience in Haskell and
persuaded their team to use it. They knew Haskell would
drastically reduce the amount of code through its inherently
clean and terse syntax. It would be an excellent way to
drive down the error rate and eliminate the need to hire a
large team of Java programmers.

HaskellFun to Code, Get More Work Done

As they gained experience with Haskell, Bumps developers
found that it was fun to program. It runs long and flat in
memory with few problems out of the gate. Haskells
reliable, extensive type system and checking functionality
eliminated coding errors common in Python. Result:

Case Study
BumpThe Easiest Way to Share
Industry/Application
File Sharing and Mobile App
Problems
Started with Python, then discovered:
High error rates.
Single points of failure, particularly in
shared memory functionality.
Code volume exceeds programmers
memory and ability to collaborate.
Need to hire many more Java
programmers.
Doesnt scale beyond prototype.
Haskell Solution/benefits
Quickly develop prototypes with few
errors.
Easily extend code and scale app.
Simply and reliably deploy changes or
new features without introducing
errors.
Dramatically reduced time spent on
testing and debugging, which
accelerated time to market.
Reduce development cost and
headcount.
Scale easily and quickly from 6-8
cores to more than 250 cores over
70-100 machines.

Haskell is definitely a good
alternative to traditional
development tools
--Jamie Turner
Lead Developer


Haskell has proven to be
extremely multicore and multi-
processor friendly, supporting the
scaling needed with our rapid
growth. We knew we could code
extensively without problems. The
Haskell compiler is very reliable
and refactoring in the language is,
well, glorious.

--Jamie Turner
Lead Developer

the highest-quality code while reducing development time. Further, the modularity and libraries in
Haskell facilitated extensive code reuse and parallel development, further enhancing productivity. The
engineers found that the Haskell compiler gave them excellent confidence in their software expansion
and maintenance by providing multiyear life of their code other languages such as Python couldnt offer.

In short, they got more work done, with fewer errors and in less time.

HaskellThe Language of Scale

To top it off, Haskell provided such a robust and reliable
base that it easily enabled Bump to grow their application
from one based on 6-8 cores to one that is more than 250
cores over 70-100 machines. This critical advantage is part of
Haskells native functionality. By eliminating shared values
and interdependencies, Haskell ensures functions can be run
in parallel on multiple processors and cores, thereby uniquely
taking advantage of the latest hardware architectures to
power performance and scalability. Python and other
languages simply dont work well with these latest hardware
advancements due to their structural limitations.

HaskellMultiple Benefits

In summary, Haskell contributed significantly to Bumps success. It enabled Bump to:

Quickly develop prototypes with few errors.

Easily extend code and scale their application as customer demand grew.

Simply and reliably deploy changes or new features without introducing errors.

Dramatically reduce time spent on testing and debugging, which accelerated time to market.

Reduce development cost and headcount.

Scale easily and quickly to support explosive growth.






Copyright 2013, FP Complete Corp. All rights reserved.
We had some initial challenges with our programmers learning Haskell and increasing their
productivity, but ultimately these growing pains have been outweighed by considerable long-term
savings that came from eliminating all of the errors we had before, while being able to readily
duplicate code with Haskells simple structure. It definitely is a good alternative to traditional
development tools
--Jamie Turner
Lead Developer

Você também pode gostar