Part 3. Developing complete systems

 

In the previous part, we talked about using F# for implementing the core business logic, or analytical components of larger applications. As discussed in chapter 1, this is an area where the benefits of a functional-first approach are an easy sell.

But functional-first programming isn’t useful only for analytical components. Many developers and companies use it to build complete systems. If you’re an individual or have a small team that already knows F#, you can build incredible applications in F#, and you’ll benefit from the expressivity and safety of the language even when building games, user interfaces, or large concurrent systems.

In this part, you’ll see four examples: two focused on the front end and two on the backend side. In chapters 7 and 9, Dmitry Morozov and Johann Deneux talk about building UI-oriented applications: trading applications and games. You’ll see that F# lets you nicely handle difficult problems like data binding and implementing asynchronous game logic. In chapters 8 and 10, Simon Cousins and Yan Cui look at the backend, covering the agent-based programming model for data analytics and development of a server for social games.