From b82f8af807915aaa0020a39d1b1a61f5d23ca2ff Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 12:14:42 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index 9c8a8c9..d8201fa 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -1,11 +1,23 @@ --- layout: page title: "Distributed Programming Languages" -by: "Joe Schmoe and Mary Jane" +by: "A Systems Person" --- -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. {% cite Uniqueness --file dist-langs %} +Distributed programming is hard because of: + +* Network partitions +* Node failures +* Efficiency / Communication +* Data distribution / locality + +Approaches: + +* Message-passing +* RPC +* Actors +* Coordination (Linda) ## References -{% bibliography --file dist-langs %} \ No newline at end of file +{% bibliography --file dist-langs %} -- cgit v1.2.3 From c59d17f62954a29c3556d4211680bdebe6842af6 Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 13:03:00 -0500 Subject: Update dist-langs.md bullets --- chapter/4/dist-langs.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index d8201fa..fd3f053 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -11,12 +11,28 @@ Distributed programming is hard because of: * Efficiency / Communication * Data distribution / locality -Approaches: +### Two major major, orthogonal approaches to distributed languages: -* Message-passing -* RPC -* Actors -* Coordination (Linda) +#### Actor / Object model + +* Erlang +* Cloud Haskell + +#### Dataflow model + +The dataflow model has its roots in functional programming. +Some languages that use this model are: + +* Multilisp +* MapReduce (Spark, Hadoop, etc.) + +### Why GPL's not DSL's? + +* problem of domain-composition +* problem of abstraction +* problem of ecosystem +* problem of tumultuous architecture +* "any gpl + library can act as a dsl" - mernik" ## References -- cgit v1.2.3 From f832573aad966fa9f600f1707eb709f7e89814c3 Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 13:03:41 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index fd3f053..d268c3a 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -4,19 +4,12 @@ title: "Distributed Programming Languages" by: "A Systems Person" --- -Distributed programming is hard because of: - -* Network partitions -* Node failures -* Efficiency / Communication -* Data distribution / locality - ### Two major major, orthogonal approaches to distributed languages: #### Actor / Object model * Erlang -* Cloud Haskell +* Cloud Haskell (I know, right? Why?) #### Dataflow model -- cgit v1.2.3 From 1818c8eabf2cb1c65019bafd57198eaade8af9c0 Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 13:51:13 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index d268c3a..9f3a91a 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -8,10 +8,13 @@ by: "A Systems Person" #### Actor / Object model +The actor model has its roots in procedural programming. +This model maps in a straighforward way to a distributed environment. + * Erlang * Cloud Haskell (I know, right? Why?) -#### Dataflow model +#### Dataflow model (static and stream) The dataflow model has its roots in functional programming. Some languages that use this model are: @@ -27,6 +30,20 @@ Some languages that use this model are: * problem of tumultuous architecture * "any gpl + library can act as a dsl" - mernik" +#### 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. + +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. +Why is this language not considered redundant? + ## References {% bibliography --file dist-langs %} -- cgit v1.2.3 From 53e58a99885ddcf08fa5a352a917a9e6100e093a Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 13:58:53 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index 9f3a91a..8745be9 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -39,6 +39,8 @@ However, there are ways of making C behave in a similar fashion with minimal dow 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. -- cgit v1.2.3 From 82620a042d98e2d3c1f2e87be17c87cd329ccca3 Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 14:27:18 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'chapter/4') 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 -- cgit v1.2.3 From 21ef2e4488013769d08a27765b21017e7713a91f Mon Sep 17 00:00:00 2001 From: cnnrznn Date: Wed, 16 Nov 2016 14:34:56 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index a097f51..9f04232 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -43,6 +43,12 @@ 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? +#### MapReduce: A New Hope + +Unlike Erlang, MapReduce and DSL's that implement the paradigm are "all the rage." +Unlike Erlang, MapReduce has experienced adoption because it offers true abstraction of the problems of distributed computing. +Erlang only provided a way of detecting a process failure; it did not consider machine or network failures. + ## References {% bibliography --file dist-langs %} -- cgit v1.2.3 From 75eafaea4784dd5a1c883720929ef35e465b5a4d Mon Sep 17 00:00:00 2001 From: msabhi Date: Mon, 28 Nov 2016 17:12:45 -0500 Subject: Update dist-langs.md --- chapter/4/dist-langs.md | 47 ++--------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) (limited to 'chapter/4') diff --git a/chapter/4/dist-langs.md b/chapter/4/dist-langs.md index 9f04232..1736064 100644 --- a/chapter/4/dist-langs.md +++ b/chapter/4/dist-langs.md @@ -1,53 +1,10 @@ --- layout: page title: "Distributed Programming Languages" -by: "A Systems Person" +by: "Joe Schmoe and Mary Jane" --- -### Two major major, orthogonal approaches to distributed languages: - -#### Actor / Object model - -The actor model has its roots in procedural programming. -This model maps in a straighforward way to a distributed environment. - -* Erlang -* Cloud Haskell (I know, right? Why?) - -#### Dataflow model (static and stream) - -The dataflow model has its roots in functional programming. -Some languages that use this model are: - -* Multilisp -* MapReduce (Spark, Hadoop, etc.) - -### Why GPL's not DSL's? - -* problem of domain-composition -* problem of abstraction -* problem of ecosystem -* problem of tumultuous architecture -* "any gpl + library can act as a dsl" - mernik" - -#### Erlang vs C: A Tar and Feathering - -{% 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? - -#### MapReduce: A New Hope - -Unlike Erlang, MapReduce and DSL's that implement the paradigm are "all the rage." -Unlike Erlang, MapReduce has experienced adoption because it offers true abstraction of the problems of distributed computing. -Erlang only provided a way of detecting a process failure; it did not consider machine or network failures. +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. {% cite Uniqueness --file dist-langs %} ## References -- cgit v1.2.3