A Makeshift Solution to Expression Problem
In the previous post I tried to demonstrate the expression problem and its implications. In this post I will present a solution. As I mentioned last time I interpret the static type safety clause as no monkeypatching. Otherwise there is no solution for expression problem in Clojure, since it’s a dynamic langulage with no static type checking.
What is Expression Problem and Why Should We Care?
Expression problem is about open extension:
The Expression Problem is a new name for an old problem. The goal is to define a datatype by cases, where one can add new cases to the datatype and new functions over the datatype, without recompiling existing code, and while retaining static type safety (e.g., no casts).
Let’s break it down:
triangulate-ui: GUI for triangulate
Just a quick announcement. I’ve written a simple GUI over triangulate.
Announcing Triangulate, a Delanuay Triangulation Library for Clojure.
Triangulate is a clojure library for generating delanuay meshes for 2D point clouds. The goal is to find a solution that doesn’t have triangles with sharp corners. I have been working on this, whenever I found time, for the last few months and I think the public API is mature enough to release a first version.
Why MVC Is Not an Ideal Model for Games
Once your program has a main loop, structuring code becomes significantly more important. There are only so many ways you can structure a simple filter-like program[1]. We can consider each page or API of a web application as a filter-like program. But when you think about it as a whole MVC makes a lot of sense for web applications. Next tier in interactivity is native GUI apps, this is where MVC shines. In fact, if you are using a GUI toolkit you are probably interacting with a MVC model. In the realm of computer programs games are as complex as the interactivity gets. I will try to make the case that MVC is not an ideal model for games.