יום שני, 14 במרץ 2016

293 D with Shahar Shemesh

ברוכים הבאים לפודקאסט 293, התאריך היום ה-9 בפברואר, ואנחנו מארחים היום את שחר שמש, לשיחה על שפת התכנות D.
שחר מתכנת כבר יותר מ-30 שנה, החל מגיל 9 ומקצועית מגיל 18. עבר הרבה שפות בדרך כמו אסמבלר, וגם C ו-++C. לאחרונה עובד בחברת weka.io, ולפני זה עצמאי במשך כמה שנים כיועץ לקוד פתוח. יש לו גם כמה פרויקטים משלו בקוד פתוח כמו SSH Pass a שזכה לפופולריות גדולה.

קצת על weka.io - סטרטאפ בתחום האחסון שמתרכז ב-Software Defined Storage. הרעיון העיקרי הוא לרוץ על סביבת החומרה הסטנדרטית שלך, על Ethernet, ולאפשר ביזור וגמישות. למעשה אם יש לכם חוות שרתים והמעבדים לא מנוצלים ב-100% (כמו שקורה ברוב המקרים) והדיסקים לא מלאים, אפשר להתקין את הפתרון של weka.io ולהגיע לנפחי אחסון שקשה מאוד לקבל בחומרה ייעודית לאחסון. הפתרון הוא מוכוון לדיסקים מבוססי SSD, כיוון שלדיסקים רגילים נדרשת התאמה אחרת מבחינת הקוד.

היום Weka.io מעסיקה כבר 30 אנשים, והיא מגייסת מפתחים ומפתחות נוספים בימים האלה. ממוקמים במרחק הליכה מרכבת השלום בתל אביב ואפשר לפנות לאתר של weka.io או לשחר.

כרגיל לפני שאנחנו מתחילים אנחנו מזכירים את קבוצת הפייסבוק של רברסים. וכמובן שאתם מוזמנים לעקוב אחרינו בטוויטר, בבלוג או ב-RSS.

אנחנו מתחילים:
  • עוד מילה לגבי הפתרון שלנו - אנחנו מכוונים לכך שצוואר הבקבוק בפתרון האחסון שלנו יהיה המעבד, ולא הרשת. (5:45)
  • D באה להיות שפה שהיא מונחית עצמים, System Programming לביצועים גבוהים. בתחביר אפשר לזהות דברים משפות אחרות וגם קצת דברים חדשים. מצגת קצרה של אחד המייסדים שלנו על השפה. (7:08)
  • ++C היא שפה שהרבה כותבים בה, אבל לא הרבה יודעים "להפעיל" אותה כמו שצריך. D באה לסגור את הפער הזה ולהיות יותר ידידותית למשתמש. (10:04)
  • הגרסה הראשונה של D נולדה ב-1992 אבל המפתחים נתקעו בשלב מסוים. ב-2007 התחילה גרסה שניה, שהיא שונה מהראשונה. (11:56)
  • השפה היא עדיין מונחית עצמים, וכוללת תמיכה טובה יותר בתבניות (Templates). את כל ה-Meta-Programming אפשר לעשות בתחביר של D, בניגוד ל-++C שם אתה נדרש לשפה כמעט אחרת. (12:50)
  • החברה שלנו הוקמה על ידי יוצאי XIV, והם הגיעו עם הרבה לקחים מאילוצי הפיתוח ב-C. היכולות של D שכוללות OO וביצועים גבוהים עם אפשרות לא להשתמש ב-Garbage Collection הובילו להחלטה לפתח בשפה. רקע ב-++C או נסיון בתכנות מערכות יכולים להקל מי שרוצה להתחיל לפתח בשפה. (16:30)
  • בגלל הדרישות לביצועים גבוהים העדפנו לא לעבוד עם ברירות המחדל כמו GC, זה אמר גם לוותר על חלק מסוגי הנתונים. (19:27)
  • בחירת שפת הפיתוח לא היתה מגבלה בגיוס האנשים, כי המדרגה היא לא כזאת גבוהה למי שמגיע עם רקע בתכנות מערכות. המגבלה היא כמו תמיד בגיוס אנשים טובים. בסך הכל יש ספר טוב ולא עבה שמלמד את השפה. (22:50)
  • לשפה יש 3 קומפליירים, וגם ספריה סטנדרטית לא רעה. בנוסף הספריות של C נתמכות, והתמיכה בספריות של ++C קצת יותר מוגבלת. (24:45)
  • אחד המובילים של D עובד בפייסבוק, שגם מפתחת בזה. פייסבוק הובילה בעבר פרויקטים של פיתוח של טכנולוגיות חדשות כמו Cassandra וכלים נוספים. (26:04)
  • מבחינת עורכים אז VI ו-Eclipse תומכים בשפה. ומבחינת יכולות נוספות אז היא הוכרזה יציבה ב-2010 ויש תוכניות להמשיך להוציא את ה-GC מהשפה. (27:50)
  • ה-GC של D פחות דומה לזה של Java ויש פחות חופש לשחק עם הזכרון. מעניין לציין את ה-GC של Rust בהקשר הזה שמנהל את הזכרון בצורה אחרת. (30:38)
  • המוצר שלנו כרגע עומד על הרגליים ונמצא אצל לקוח ראשון בהטמעה, ובבחינות אצל לקוחות נוספים. (36:18)

אפשר להוריד את הקובץ של התוכנית ב-MP3 למעוניינים. תודה לרועי שלומי על התקציר של הפרק ולגיא מנחם על העריכה הקולית. ותודה ל-Outbrain על החסות והתמיכה הכספית.

אין תגובות:

פרסום תגובה