

The aesthetic portion of the argument is only relevant because the problem creates an unexpected picture from very little information, which may be appealing to someone trying to argue that computer science can have inherent artistic value outside of being a mere tool for art design.
#THE GAME OF LIFE COMPUTER GAME CODE#
Plenty of code is beautiful, and plenty of output is beautiful. How do you render the grid, how do you determine its dimensions, how do you track the changes made to the initial (empty) configuration, and how do you run from one generation to the next? Do you allow the grid to expand with new life or provide a fixed universe for the user to manipulate? Will the UI be distinctive or minimalistic (or both)? Will you allow for the rules to be changed? And the list goes on, but each question is the right size, and this is why it’s an ideal problem. It can be built in a day and doesn’t require tools on the bleeding edge of computer science (why Life simulations have been around since the early days of programming).

It is not trivial, but not hopelessly nontrivial. In reality, if it takes you five years to solve a problem, by God it better have been worth it. Some problems are boring, some are lackluster, and no matter how challenging they may be, the tedium required to solve them may not be worth the high of pulling it off.

But soon enough, you continue where you left off because once upon a time you learned the gratification that comes with a rich solution. After hours of thinking of possible solutions and assuring yourself that each one of them fails before looking out the window and pondering your choice of career. A hard problem is one that is rewarding to solve after hours of writing. DifficultyĪnother assumption: programmers love difficulty.

If you’ve made it right, no matter how you made it, you can prove that what you’ve made works. Its rules are explicit and concise and can be heavily tested. But when I spill coffee on my laptop, there will never be an opportunity for me to sit back, breathe calmly, and say, ‘You know - this could work.”Īnd Conway’s Game of Life is predictable - mathematically, visually (though meticulously), irrespective of time. When a painter spills a cup of coffee on their canvas, its usually ruined, but sometimes it becomes enhanced, and this is one way chance can be beautiful. At least when you find those errors, you can understand why they occurred and slap yourself in the head for allowing them to occur. If coding languages were comprehensible only half the time - if strings became numbers and numbers became strings at random, if compilers would sometimes read backwards instead of forwards, if on some days the largest max integer was 5, or the equals sign stopped working, would you stick around? It’s enough frustration when some deprecation sends your once-elegant-lines of code into the abyss or when a forgotten character takes thirty minutes from your life. Now comes the stereotype: programmers love predictability. Against a backdrop of scientific mystery (shallow mystery, I think, but still-), the motions of a running simulation can fill their creator with an absolute pride after making something infinite. Its animated, endless, and commonly anthropomorphized grid can swallow you for hours among an indefinite supply of possible configurations. Conway’s Game of Life is literally binary, and can be entirely expressed with two colors. AestheticĪn anomaly in the realm of machine output. Combined, these characteristics form a problem that is stimulating, fulfilling, and beautiful to solve. I believe there are three qualities that supplant the simulation against others as a hallmark of programming challenges: aesthetic, determinability, and difficulty. It may be that I find myself discussing the reason behind Conway’s invention’s rise to pop-culture fame rather than a real correlation between its innate qualities with respect to some general ‘programmer’s’ disposition’. (Disclaimer: This is speculative, anecdotal, and stereotypical. Instead, I will try to defend its power as a teacher to the novice developer and its comfort as a marvel to the experienced engineer. But the implications and possible meanings of the simulation will not be discussed here.
#THE GAME OF LIFE COMPUTER GAME ARCHIVE#
It’s been around since a mathematician named John Conway introduced the idea in 1970 and has spawned a host of questions and an archive of configurations that each lead to a mysterious, yet entirely predictable, pattern. The Game of Life is no secret to the nerd and engineer alike (not to say these groups are mutually exclusive). Who knew an automaton could be cute? ( ) Notion
