September 28, 2023

Brick Abode's Journey into the World of DotNet and Functional Programming

Brick Abode, a team of computer science enthusiasts, embarked on a quest to find the perfect environment for building full-featured applications while embracing their love for theoretical computer science. Their passion for theoretical computer science is deeply rooted in its ability to enable robust engineering and the development of applications with stringent guarantees of correctness—a formidable challenge in its own right. Theoretically, it's an infinitely complex problem. In the realm of theoretical computer science, these challenges are encapsulated within a Turing complete framework, equivalent to solving the most intricate computational problems. To tackle this, they needed tools that could empower them to construct these ironclad assurances of application correctness, and that's where functional programming stepped in.

Their quest for robustness led them to explore functional programming languages, particularly Haskell and Ocaml, both known for their strong type systems. However, upon closer inspection, they discovered that these languages lacked robust web development environments, offering weak frameworks and libraries. While it was possible to accomplish some tasks, it often entailed considerable manual effort.

Just when it seemed they might have hit a dead end, they remembered the existence of F#. F# within the .NET ecosystem shared many similarities with Haskell and Ocaml, notably in its ability to establish type-based guarantees for program behavior and facilitate formal correctness proofs. However, what set F# apart was its integration with one of the world's largest web platforms—ASP. ASP was not just popular; it was exceptionally well-crafted.

Comparing this to other mature web frameworks like Django in Python, a popular choice in its own right, revealed a significant difference. Django, despite its strengths, appeared somewhat frozen in time, designed for a web landscape reminiscent of the mid-2000s. It struggled to adapt to modern web paradigms, such as handling websockets and managing URLs that could serve both APIs and HTML pages. This rigidity became apparent when dealing with technologies like React or the demands of financial applications with substantial data flows that relied on websockets.

Django's Model-View-Controller (MVC) approach, while effective in its own right, seemed rudimentary in the face of modern web development's increasingly clear separation of front-end and back-end concerns. ASP, on the other hand, offered a different narrative. Despite its origins dating back to the late '90s, Microsoft continuously innovated and improved ASP over the years. The result was a remarkably modern web framework. ASP excelled in supporting APIs, seamlessly integrating with React, and embracing websockets—a crucial aspect of the contemporary web landscape. It demonstrated a modular and flexible approach to managing APIs and pages concurrently, providing an agile solution for URL routing.

For Brick Abode, the choice became evident. ASP, despite its longer history, had evolved into a powerful modern framework that outpaced Django in various aspects. The team found that building applications in ASP was not only cost-effective but also delivered higher quality and faster development speed. Additionally, ASP's robustness allowed for swift codebase refactoring and transitioning between different approaches, making it the preferred choice for serious web application development.

The decision wasn't singular; it stemmed from a combination of factors. ASP's strong typing, modular routing, enhanced front-end and back-end separation, and myriad other advantages made it the ideal platform for the challenges Brick Abode sought to conquer in the world of web development.