In 1999 I went to Bill Gates with an idea to create a software tools group dedicated to shipping complex software faster. Engineers’ time is valuable, and more importantly, software that ships on time with fewer defects is worth a lot. I organized a team that analyzed what was missing from the old toolsets for our most valuable products. Based on developers’ input, we conceived and delivered five in-house tools within our first year, spanning areas from build to source control to localization. I'm proud of the talented and motivated people who chose to be on that team, and the positive impact it had: If you have a copy of Windows or Office today, it probably arrived on your desk a little sooner and a little better thanks to the Productivity Tools Team. From a business point of view, Microsoft got its tools investment back many times over.
Since then a lot has changed, but one thing has not: software is still hard to write. Too often software projects miss schedules and products are shipped with bugs. Meanwhile the wizards of electrical engineering have made massive progress in areas like multicores, vector processors, GPGPUs, hybrid processors, and other ostensibly "unconventional" architectures. Techniques once reserved for exotic supercomputers are now found in everything from Web servers to network routers to phones. As systems become more parallel and hybridized, requiring complex new logic in our code, and market forces demand we make enhancements more rapidly, software just gets harder and harder to write, debug, and test.
In the face of all these challenges, the one exciting development is the maturing of Functional Programming; in particular what we consider to be the most robust FP system, Haskell. Developers who use Haskell often report 2x or higher productivity improvements, even as their bug count is significantly reduced. Add in Haskell's great support for parallel processing, domain-specific languages, and numerous other truly modern language features, and you get the new best solution for a wide variety of applications. This outstanding FP system didn't happen by accident, it is the result of 20 years of hard work and selfless collaboration involving people from institutions all over the world. The Haskell community is a remarkable accomplishment in itself.
We created FP Complete to realize the dream of Functional Programming: unprecedented software power, accuracy, and flexibility available to a broad number of programmers. We want to double the productivity of the world's outstanding software developers, while slashing the number of bugs and unleashing the dramatic computing power of modern hardware designs.
FP Complete will be a good citizen in the Haskell community. We'll be helping to complete and maintain the tool sets, the libraries, the platform and integration support, as well as the human and business infrastructure needed to enable Haskell adoption. We'll be bringing together current and potential users, supplier firms, and our own experts. A major new platform isn't a one-company show. We look forward to working with you.
Do you like this blog post and need help with industrial Haskell, Rust or DevOps? Contact us.