יום רביעי, 22 באפריל 2009

פודקאסט מספר 18 - Erlang




בפודקאסט זה אירחנו את צבי אברהם, CTO של nivertech לשיחה על שפת התכנות Erlang.
Erlang זו שפה לא חדשה בכלל אבל בזמן האחרון היא תופסת תאוצה יפה בזכות הפיתוח המואץ של האינטרנט ויכולות המיקבול, הביזור והביצועים היפים של השפה. יותר ויותר חברות מהקו הראשון מתחילות להסתמש ב Erlang לאפליקציות שלהן, בין השאר Facebook, Yahoo, Amazon ועוד וכמו שצבי אומר, מי שמגניב עובד ב Erlang. היתה שיחה מרתקת ותודה לצבי על ההיכרות לשפה. הנה מספר כותרות מהשיחה:

  • מה זה Erlang מתי הומצאה ולמה
  • מי משתמש היו ב Erlang ולאיזה מטרות?
  • למה כדאי ללמוד Erlang?
  • מה התכונות המעניינות של Erlang/OTP?
  • lightweight processes
  • message passing paradigm
  • high performance in multi-core processors
  • closures and high order functions
  • immutable variables
  • האופי הפונתציונלי של Erlang
  • hot-code upgrade
  • Concurrent Erlang and process message passing using the actors design pattern
  • Tail recursion - רקורסית זנב
  • הנסיון של צבי עם השפה והאפליקציות שכתב

הקובץ נמצא כאן וניתן להאזין ישירות מהנגן למטה.
הנה מספר מקורות מומלצים ע" צבי ללימוד והרחבה בנושא:


MUNCTIONAL
http://www.youtube.com/watch?v=1yH_j8-VVLo
While it appears the guy who made it didn't know a whole lot about
Erlang it's still hilarious nonetheless.

(parody of the Powerthirst video)

Erlang: The Movie - old promotional video
http://www.youtube.com/watch?v=uKfKtXYLG78looks, like Monty Python, right ? ;)

ZedShaw about Erlang fetishism
http://www.youtube.com/watch?v=lrp57IAlh84
Free Session: In-the-Brain of Francesco Cesarini on Erlang for 5 Nines
http://video.google.com/videoplay?docid=6264026634932619900
http://en.wikipedia.org/wiki/Erlang_(programming_language)
Erlang tutorials - Getting started
http://erlang.org/starting.html
Erlang Questions mailing list:
http://www.nabble.com/Erlang-Questions-f14096.html
Erlang resources:
http://trapexit.org/
http://www.planeterlang.org/

Erlang Israel LinkedIn group
http://www.linkedin.com/groups?gid=1178557

Introduction to Erlang in Hebrew
http://estudy.openu.ac.il/opus/static/binaries/editor/bank70/erlang_1.pdf

A must read Erlang book:

Programming Erlang: Software for a Concurrent World, by Joe Armstrong
http://www.pragprog.com/titles/jaerlang/programming-erlang


Free Erlang books:

Thinking in Erlang, by Robert Baruch
A GUIDE TO FUNCTIONAL PROGRAMMING IN ERLANG FOR THE
EXPERIENCED PROCEDURAL DEVELOPER
http://www.maht0x0r.net/library/computing/erlang.pdf

Erlang in Real Time, by Maurice Castro
http://www.castro.aus.net/~maurice/serc/erlbk/

8 תגובות:

אנונימי אמר/ה...

איפה מורידים?

Ran Tavory אמר/ה...

הוספתי לינק ל mp3 ששכחתי מקודם
בנוסף, בעקרון בכל פרק הלינק על הכותרת של הפרק הוא אל קובץ השמע.

Eishay Smith אמר/ה...

תיקון קטן, סקלה אף היא בעלת Remote Actors עם שליחת הודעות שקופה מעל הרשת. למעשה יוצרי השפה די העתיקו מארלנג את כל נושא ה Actors.
פרט נוסף, Tail Recursion הוא תכונה של המהדר (לא תכונה תחבירית) והי קיימת במהדרים רבים נוספים בינהם #C וסקלה.
אם הזכרנו שליחת הודעות שקופה מעל הרשת, כדאי לציין את הרשימה המפורסמת "The Eight Fallacies of Distributed Computing" ולהגיד ששקוף זה לא תמיד טוב ליהודים.

Dan אמר/ה...

הצעה לשיפור, תוסיפו כותרת לשם הקובץ, למשל לפודקאסט הנוכחי reversim18_Erlang.mp3 זה יקל את החיים למאזינים ב-iPod (כמוני)

Ran Tavory אמר/ה...

דן, זה אכלה רעיון ואני אשתמש בות תודה!

Zvi אמר/ה...

Eishay,
I think you are mistaken about Tail-Recursion being a feature of a compiler.
It can be a feature of compiler, if we talking about native compiler (like some Common Lisp compilers, i.e. CL->exe)
But in context of compiling to VM (like JVM or CLR), your VM need explicitly support tail-recursion and be register-based VM instead of stack-based VM, like JVM. That's the reason why in Scala it's implemented via compiler hack.

You are right, that transparent remote message passing is not always a good thing, and not only for Jews ;)
That's why in high-profile apps, like AWS SQS and SimpleDB it's disabled and custom mechanisms are used. It's up to your specific appication.
Also "The Eight Fallacies of Distributed Computing" refers more to the distributed RPC, than to Actor-style asynchronous message passing.
There is very interesting RPC presentation from Steve Vinosky, a CORBA to Erlang convert:
http://steve.vinoski.net/blog/2009/04/09/qcon-london-2008-presentation-video/

Scala is very interesting language. But it introducing so many new concepts over Java, I feel it's harder to learn, that Erlang, even to programmers familiar with Java. Actors are kinda Objects, when in Scala you have both Objects and Actors.

Anyway, the recent trend is to use Actor-based languages, like Scala, Microsoft Axum or Erlang for gluing/orchestrating legacy code, written in mainstream languages, like Java, .NET or Ruby.

BR,
Zvi

אנונימי אמר/ה...

משום מה הלינק לפוסט בעמוד הראשי מוביל ל-MP3, וה- itunes הוריד PDF...

Elan Perach אמר/ה...

למי שמעוניין ללמוד Erlang יותר לעומק - מתוכנן להיפתח קורס אחרי החגים בתל אביב.

הקוס יועבר ע"י זק קסין - מחבר הספר -
Building Web Applications with Erlang
http://shop.oreilly.com/product/0636920021452.do

פרטים נוספים ניתן למצוא באתר הקורס - http://erlangcourse.blogspot.co.il/

חג שמח,
אילן פרח
0547880094

הוסף רשומת תגובה