aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter/4/dist-langs.md21
1 files changed, 9 insertions, 12 deletions
diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md
index 8745be9..a097f51 100644
--- a/chapter/4/dist-langs.md
+++ b/chapter/4/dist-langs.md
@@ -32,18 +32,15 @@ Some languages that use this model are:
#### Erlang vs C: A Tar and Feathering
-[citation erlang paper]
-
-Erlang has only one clear benefit over C, which is dynamic code upgrading.
-However, there are ways of making C behave in a similar fashion with minimal downtime.
-Shuffler [citation] is a system for continuous randomization of code.
-Using techniques discussed in the paper, one could dynamically replace sections of a binary.
-Another, slightly hack-ish workaround would be to receive the upgrade, serialize the current state, and finally run the new binary based on the serialized state.
-A third way of circumventing this problem would be to encapsulate any code in a shared library, and have logic in the program to unmap the old code, replace the library, and remap.
-This approach is analogous to Erlang's approach.
-
-Other than dynamic code swapping and poor error detection, Erlang does not offer anything that is not offered by a traditional OS.
-Isolation, concurrency, and message passing can all be accomplished with unix-style system calls.
+{% cite Armstrong2010 --file dist-langs %}
+
+Erlang offers nothing that is unavailable in C.
+
+For example, dynamic code swapping is one of Erlang's major selling points.
+However, code swapping can easily be achieved in C with dynamic linking.
+This approach is analogous to the example offered in the Erlang paper.
+
+Other selling points, such as isolation, concurrency, and message passing can all be accomplished with unix-style system calls.
Why is this language not considered redundant?
## References