Tuesday, January 09, 2007

erlware - next generation distributed software: Building an OTP Application: "Erlang is a clean, simple language, and it is easy to learn. That's Erlang, now lets talk OTP. The learning curve goes up significantly when getting into OTP. Questions arise, such as; how do I start an application, what is the function of a supervisor, and how do I make use of gen_server? That is just the beginning it gets far more confusing... 'what is a .app file, what is a release, and can someone please tell me what .script and .boot files do?'"

Sunday, January 07, 2007

Concurrency stuff from Lambda The Ultimate:

The Joins Concurrency Library. Claudio Russo.
Comega extended C# 1.x with a simple, declarative and powerful model of concurrency - join patterns - applicable both to multithreaded applications and to the orchestration of asynchronous, event-based distributed applications. With Generics available in C# 2.0, we can now provide join patterns as a library rather than a language feature. The Joins library extends its clients with an embedded, type-safe and mostly declarative language for expressing synchronization patterns. The library has some advantages over Comega: it is language neutral, supporting other languages like Visual Basic; its join patterns are more dynamic, allowing solutions difficult to express with Comega; its code is easy to modify, fostering experimentation.

E Thesis: Robust Composition
Mark S. Miller's PhD thesis on Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control is now online.
When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference.
Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, single-machine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virus-safe desktop built in E, as embodiments of the techniques we explain.E rates as a (very) important language for anyone interested in ideas of messaging, distribution and security. The nice thing about a thesis (such as this one and Joe Armstrong's) is that it gives a nice historical account of the related work and influences.

Haskell vs. Erlang, Reloaded
Erlang and Haskell compared... Want to know the conclusion?
I was able to finish the Erlang version 10 times faster and with 1/2 the code. Even if I cut the 10-11 weeks spent on the Haskell version in half to account for the learning curve, I would still come out way ahead with Erlang.

Erlang tutorial
Seems like a nice tutorial.
Includes the expected chapters on concurrent programming and robustness, of course.

Joe Armstrong PhD thesis on Erlang.
And his blog: http://armstrongonsoftware.blogspot.com/

Friday, January 05, 2007

defmacro - Erlang Style Concurrency -- very good article on Erlang Style Concurrency, summarizing the benefits of Erlang specifically and message-passing concurrency-oriented programming generally.