Erlang

Tags:

Concurrency is easy

세간의 화제, Ericsson Computer Science Laboratory에서 만든 Erlang에 대한 글입니다. concurrency를 위한 multithreading이 그 자체의 본질적인 어려움에서 허덕이는 와중에, multicore cpu나 distributed computing이 점차 널리 퍼짐에 따라, multithreading이 지고 프로세스 기반의 프로그래밍 언어가 스포트라이트를 받고 있는 듯 합니다. – 아카데미에서 그렇다라거나 제가 생각하기에 그렇다는 말은 아닙니다.. 제가 하는 여기서의 multithreading에 대한 입지가 좁아진다는 말은, 그냥 세간의 화제가 그렇게 흐른다는 말일뿐.

Erlang의 주목을 받는 이유는, 아마도
1) 쉬운 프로세스 생성
2) 쉬운 메시지 전달
3) 자동적인 프로세스 정리
정도?

그리고 옵션으로,
4) functional programming
을 들 수 있습니다. 마치 LISP처럼 코딩할 수 있어요.. 그것도 괄호의 압박 없이!!!

1번은, 예를들어, 어떤 프로세스를 생성한다고 할 때 spawn(function_name) 이런식으로 하면 새로운 프로세서가 생겨나고 그 프로세서는 function_name으로 주어진 함수를 실행한다는 것이 쉬운 프로세스 생성이고, 2번의 메시지 전달이 쉬운거야 요즘 안그런 언어 없으니 대충 넘기고, 링크된 글에서는 3번을 설명하는데, 자동으로 잘못된 프로세스를 정리해준다는 것이 중요한 점인 듯 합니다.

그런데 이정도야 한 머신에서야 그렇지, 다수의 머신에서 서로간에 누가 살았나 죽었나를 어떻게 coordination 하는지까지 설명하는 글은 아직 보지 못했습니다. 제대로 된 다른 언어와의 비교도 보지 못했습니다.

만약 이것을 Ruby에서 복제한다고 할 때, 1번의 특징을 별도의 컨테이너 없이 구현하기란 힘들지 않을까 예상되는군요. 만약 별도의 프로세서 없이 잘 해낸다면, 혹은 그 컨테이너가 쓸만하다면 당장 digg나 reddit 첫페이지는 따놓은 당상인데… 사는게 바쁘군요;;;

Comments

5 responses to “Erlang”

  1. 이원구 Avatar

    요새 haskell이라는 언어를 조금씩 보고 있는데 또 erlang이라니요… oTL

    그나저나 haskell은 C++의 meta-template programming 방법에 대해 미리 알지 못했다면 처음 functional programming이라는 것만 이해하는데도 한참 걸리지 않았을까 싶군요. 암튼 또 erlang이라니… ㅠㅠ

  2. MKSeo Avatar
    MKSeo

    @이원구: 좀 펼쳐봤다가 접었죠. 하도 난리라 ‘그게 뭐길래?’ 라는 생각으로 뭐가 장점인지만 찾아봤어요. 사실 요즘은 Beyond the C++ Standard Library: An Introduction to Boost를 읽고 있죠. ㅎㅎ Boost 감동이예요~

  3. CN Avatar

    전 최근에 스퀵, C++, 해스켈, 얼랑, 루비를 보고 있습니다. 어째 다른 분들의 스펙트럼도 비슷한 것 같아요. 다들 관심사가 거기서 거기인 것일까요? :-)

  4. MKSeo Avatar
    MKSeo

    you win~! 스퀵은 뭡니까;;

  5. CN Avatar

    스몰토크 환경입니다. 유치원생도 할 수 있을만큼 사용자에게 친숙한 환경을 보유하고 있습니다. 그리고 재밌습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *