Permalink
Browse files

another picture

  • Loading branch information...
raganwald committed Dec 22, 2012
1 parent 35b98c8 commit 26afc79de91db5ae5d66140fb116337310b65e60
Showing with 4 additions and 2 deletions.
  1. +4 −2 2012/12/walled-gardens.md
@@ -20,10 +20,10 @@ Rumour has it that the largest ecosystem for programmers is Microsoft Excel. Acc
These commercial walled gardens are easy to spot. It's difficult to call them an anti-pattern: They help people make things people like. Eventually the free market catches up to these things, but in 1988 it was no good sticking your nose up in the air and telling everyone to write classified advertising software in C++.
-So you have to, as Sean Kelly would say, "Make the calculation," and decide for yourself if the ease of use today trumps the eventual dead end your software will fall into. If so, you may choose to build for the walled garden. The calculation is plain, and one of the reasons most people stop to at least think about the consequences of developing for a walled garden is that it is very clear that you are developing for someone else's walled garden. You may decide it's a good idea, you may decide to do something else, but you're keenly aware that you are adding a dependency on some other organization to your software.
-
![Modify Style in Tableau](http://i.minus.com/iobFOZr9kZLZ9.gif)
+So you have to, as Sean Kelly would say, "Make the calculation," and decide for yourself if the ease of use today trumps the eventual dead end your software will fall into. If so, you may choose to build for the walled garden. The calculation is plain, and one of the reasons most people stop to at least think about the consequences of developing for a walled garden is that it is very clear that you are developing for someone else's walled garden. You may decide it's a good idea, you may decide to do something else, but you're keenly aware that you are adding a dependency on some other organization to your software.
+
> ### digression: the economics of a walled garden
> Walled gardens in development function just like any library, platform, or abstraction. They offer some benefit, such as being able to perform database queries using SQL. In exchange, you must learn their interface. You must learn where their abstraction "leaks." And somebody must maintain the walled garden's implementation. In the case of a commercial walled garden, it's the vendor.
@@ -58,6 +58,8 @@ All abstractions are subject to obsolescence. For example, in JavaScript your co
The point being, every abstraction is subject to obsolescence. What makes some abstractions walled gardens and others not? One of the things we identify about the walled garden is the wall itself. Things inside the garden do not interoperate smoothly with things outside of the garden. An idiom like `var that = this;` may no longer be ideal, but it doesn't break any behaviour of functions in JavaScript.
+![Code from recusiveuniver.se](http://i.minus.com/iU6Re7cxuZNjZ.png)
+
### case study: youaredachef
Consider a library I wrote called [YouAreDaChef](https://github.com/raganwald/YouAreDaChef). I wrote it to implement aspect-oriented programming. My requirement was that I wanted to write [a HashLife implementation of Conway's Game of Life](https://recursiveuniver.se). The special design feature was that I wanted to write it in a series of files, where each file depended only on the preceding file, like this: "A" depends on "B" which depends on "C" which depends on "D" which depends on "E" and so forth. In other words, the dependency graph was to be a list.

0 comments on commit 26afc79

Please sign in to comment.