Elixir
פרדיגמות מרובת פרדיגמות: תכנות פונקציונלי, תכנות מקבילי, distributed programming, תכנות מונחה תהליכים.
תאריך השקה 9 בינואר 2011 עריכת הנתון בוויקינתונים
מתכנן José Valim
מפתח José Valim עריכת הנתון בוויקינתונים
טיפוסיות דינמית, חזקה, ברווז
הושפעה על ידי

Clojure , Erlang ,

Ruby
השפיעה על LFE
רישיון Apache License 2.0
סיומת .ex, .exs
https://elixir-lang.org/
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית

Elixir היא שפת תכנות פונקציונלית וכללית, אשר תומכת בעיבוד מקבילי. היא שוחררה לראשונה בשנת 2011 ורצה על המכונה הווירטואלית BEAM של שפת התכנות Erlang.

Elixir רצה מעל Erlang ולפיכך חולקת אבסטרקציות זהות לבניית אפליקציות מרושתות וגם היא נחשבת ל-Fault Tolerant, כלומר, מסוגלת להמשיך לרוץ גם כאשר אחד מרכיביה נכשל, בהתאם לסגנון הקידוד "Let It Crash" ("תן לזה להתרסק"), המתבסס על ההנחה שקריסה של רכיב היא בלתי נמנעת, ולכן אין להשבית את כל המערכת בעקבות זאת. בנוסף, Elixir גם מספקת כלים פרודוקטיביים ועיצוב שניתן להרחיבו. עיצוב זה תומך במטא-תכנות באמצעות תוכניות מאקרו, ובפולימורפיזם באמצעות פרוטוקולים. Elixir נמצאת בשימוש של חברות כגון PagerDuty, Discord, Brex, E-MetroTel, Pinterest, Moz, Bleacher Report, The outline, Inverse, Divvy, Farmbot וכן לצורך בניית מערכות משובצות מחשב. הקהילה מארגנת אירועים שנתיים בארצות הברית, אירופה, ויפן, וכן אירועים קטנים וכנסים.

היסטוריה

[עריכת קוד מקור | עריכה]

José Valim הוא היוצר של שפת התכנות Elixir. מטרותיו היו לאפשר יכולת הרחבה ופרודוקטיביות גבוהות יותר במכונה הווירטואלית של Erlang תוך כדי שמירה על תאימות עם Erlang .

José Valim התכוון ליצור שפת תכנות בשביל יישומים ואתרים גדולים. בהיותו מפתח בשפת התכנות Ruby, הוא השתמש בפיצ'רים של Ruby, Erlang, ו- Clojure על מנת ליצור יכולת עיבוד מקבילי גבוהה וכן זמן השהייה ( latency ) נמוך יותר. Elixir תוכננה על מנת לטפל בכמויות גדולות של מידע. מהירותה ויכולותיה הגבוהות מזכות את Elixir במקום מכובד בתעשיות הפיננסיות, הטלקומונקציה, והמסחר האלקטרוני (eCommerce).

פיצ'רים

[עריכת קוד מקור | עריכה]

דוגמאות קוד

[עריכת קוד מקור | עריכה]

את הדוגמאות הבאות ניתן להריץ בקונסולת iex או לשמור בקובץ ולהריצן בשורת הפקודה בתחביר הבא: <elixir <filename.

תוכנית Hello World בסיסית:

iex> IO.puts("Hello World!")
Hello World!

ביצוע פעולות אחידות ומקוצרות לרשימה (List Comprehensions):

iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n
[1, 9, 25]

השלמת דפוסים:

iex> [1, a] = [1, 2]
iex> a
2

iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}
iex> a
"world"

פרויקטים ידועים ב-Elixir

[עריכת קוד מקור | עריכה]

ראו גם

[עריכת קוד מקור | עריכה]

קישורים חיצוניים

[עריכת קוד מקור | עריכה]
ויקישיתוף מדיה וקבצים בנושא Elixir בוויקישיתוף