תכנות מבוזר – הטרנד החדש

יש מונח שנקרא Concurrent computing אשר מדבר על תוכנות המחלקות את העבודה שלהן על כמה משאבים שונים, ולא מתבססות על משאב "בודד". זה יכול להיות ריבוי ליבות, ריבוי מעבדים (לא זהה), שימוש ב grid (בעברית זה פשוט לא מובן), הרצת מגוון תוכנות שעושות עבודה זהה, אשר מתקשרות ב IPC ועוד הרבה צורות ושיטות.

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

אחת השפות המוכרות והידועות ביותר בנושא היא  erlang. השפה נוצרה באריקסון 1986 עבור מחשוב מקבילי של טלפוניה, והיא מסוגלת לספק תכנות שמראש הוא thread safe ולכן המתכנת לא צריך להתעסק בזה, דבר שמאפשר לבזר את הפעולות שהיא עושה על מגוון מערכות/מעבדים שונים בצורה ממש שקופה. השפה עצמה היא שפה פונקציונאלית, אשר משתמשת בעיקר בפונקציות הדומות מאוד ל lambda, אבל מתנהגות מעט שונה.

ישנם כמה עשרות של שפות כאלו, ולאחרונה נוצרו עוד 3, כאשר האחרונה מבינהם התפרסמה השבוע בשם Go. בנוסף לגוגל, גם IBM יוצרת שפה בשם X10 אשר מספקת בדיוק את זה. גם אינטל לא נשארת חייבת ולוקחת את שפת C ומרחיבה אותה לשפה בשם Ct.

אם הייתי צריך לכתוב על כל שפה בנפרד (או בפוסט אחד) אולי אחרי שנה הייתי מצליח לכסות את הבסיס של כל שפה ושפה ולכן אני אפילו לא נכנס לזה.

אם לשקול את הצורה שהשוק מתקדם אליו, אנחנו הולכים לראות שליטה בקרוב של 2 פרדיגמות עבודה (אחת מהם כבר תופסת תאוצה):

סביבות פיתוח מרובות שפות (השימוש שבורלנד בזמנו התחילה עם דלפי, שהמשיך ל JVM ומוצרי VS של מיקרוסופט, ואפילו parrot של perl 6), בהם אנחנו נעבוד בעיקר בשפות דינמיות, בעוד שמצד המערכת יהיו שפות שיודעות לנצל משאבים מרובים, בהם הלך הרוח של השוק יתבהר רק בעתיד הרחוק יותר, למרות ש erlang התעורר מתרדמת בשנתיים שלוש האחרונות.

בקיצור יהיה מעניין לראות את התקדמות השוק (אם כי זה לא באמת קידמה, אלא יותר התכוונות השוק ליציבות מסויימת).

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s