Language good for learning created by:

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.

Haskell—Fun to Code, Get More Work Done

As they gained experience with Haskell, Bump’s developers found that it was fun to program. It runs long and flat in memory with few problems out of the gate. Haskell’s reliable, extensive type system and checking functionality eliminated coding errors common in Python. Result: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 couldn’t offer.

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

Haskell—The 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 Haskell’s 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 don’t work well with these latest hardware advancements due to their structural limitations.