האזינו באפליקציית Podli 🎧
עקבו אחרי הפודקאסטים האהובים עליכם, האזינו לא מקוון וברכב עם CarPlay ו-Android Auto, ותמיד המשיכו מאיפה שהפסקתם. אפשר לנסות בחינם.
פרק מספר 503 של רברס עם פלטפורמה - באמפרס מספר 88, שהוקלט באוקטובר 2025, רגע לפני
כנס רברסים 2025:
רן,
דותן ו
אלון באולפן הוירטואלי עם סדרה של קצרצרים מרחבי האינטרנט ודברים שפגשנו בחודש ומשהו האחרונים - פרוייקטים בקוד פתוח, הכרזות מעניינות, בלוגים מעניינים, דברים מ-
GitHub, דוחות וספריות וכל מיני דברים מעניינים (והפעם - במה רק של דותן ואלון!) 🎗️
[00:32 - אלון]
(רן) אז קדימה, בואו נתחיל בספונטני - מי רוצה ראשון?(אלון) בוקר טוב, איזה כיף - בית בלי הורים היום . . . מה זה? דותן, אפשר להתפרע!(רן) יאללה, לך על זה אלון - אייטם ראשון.
- (אלון) אני אתחיל מאייטם ראשון, שהכינותי מראש - בקיצור, Python - מכירים? אז הנחש הזה הוא גם שפת תוכנה, מסתבר.
- (אלון) אז בגרסה 3.14 של Python סוף סוף שחררו לנו את ה-GIL - שמה שזה אומר זה שאפשר לעבוד ב-Python ב-Multi-Threading!
- (רן) הופה! Multi-Threading ב-Python!
- (אלון) Multi-Threading ב-Python - אחרית הימים, הגענו לשנות התשעים.
- (רן) כן . . . בוא נסביר, שנייה - GIL זה ראשי תיבות של Global Interpreter Lock.
- זה איזשהו “מנעול” שיש על ה-Interpreter של השפה, כי השפה היא עצמה היא “מאינטרפרטרת”, אם אפשר לומר כך [עדיף שלא…]
- בכל אופן, זה יוצר בעיה במקביליות - זאת אומרת, זה יוצר צוואר-בקבוק ב-CPU
- כל עוד יש לך Thread אחד, הצוואר-בקבוק הזה הוא סבבה, הוא לא מפריע; ברגע שיש יותר מ-Thread אחד, זה יכול להשפיע.
- יכול להשפיע לרעה, בעיקר בדברים שהם CPU-bound.
- ויש כל מיני Workarounds לזה, ב-Python, כן? - Workaround אחד זה פשוט להריץ דברים ב-C . . .
- דברים שדורשים הרבה מקביליות, אז להריץ אותם ב-C.
- אז לא עשינו בזה הרבה, כי צריך אז לכתוב ב-C . . .
- ו-Workaround אחר זה לעשות את זה ב-Multi-Processing - אבל אז אתם מריצים הרבה Processing, וגם זה נורא בזבזני מבחינת משאבים.
- ו-Workaround נוסף זה לעשות async - דברים ב-async, שלפעמים זה קצת עוזר, אבל לא תמיד זה מאוד עוזר . . .
- והאשם בכל זה זה ה-GIL, כמו שאמרנו.
- (אלון) גיל לא פה, למה אתה מאשים אותו?
- (דותן) רגע, אני לא מאמין . . . .
- (אלון) אוקיי, זכותך . . .
- (רן) . . . אתה יכול להישאר סקפטי . . .
- (דותן) . . . . בכל מה שקשור ל-Python, יש כמה דברים שגורמים לי לחשוד . . .
- אחד, יש עדכון גרסה מינימלי, יש 3.13 ו-3.14 - וב-3.14, פתאום אפשר לרוץ “חופשי על הבר”.
- (רן) ב-3.13 זה ניסיוני, דרך אגב . . . ב-3.14 זה כבר - אני לא יודע אם הוא Default-י, אבל לפני . . .
- (דותן) הייתי מצפה שזה יהיה Python 4, לצורך העניין - זה היה כזה מטורף . . .
- (אלון) די, די . . . מה ארבע? הם צריכים לשבור . . .
- קודם כל, Python - הם גרועים.
- כמה שנים לקח לעבור מ-Python 2 ל-3? איזה 20 שנה, לא יודע.
- בקיצור, הם לא יכולים לעבור.
- קודם כל, אם זה לא Breaking Change, למה לשים Major? זה אחד.
- ושתיים - הם ממש יפחידו את הקהל שלהם, שגם ככה פוחד ומפחד ממיגרציה (Migration).
- אז יעשו לו “בקטנה” כזה . . .
- (דותן) אתה אומר שהם מחליקים שבירה מתחת לזה?
- (אלון) אבל זה לא שובר . . .
- (רן) זה לא שובר . . . זאת אומרת, לפחות אנחנו מקווים שזה לא שובר . . .
- (דותן) אם מנתקים את ה-GIL, ומריצים את כל הקוד שיש בעולם עכשיו בחוץ - אתה חושב שהוא לא יישבר, כל הקוד הזה?
- (אלון) בתיאוריה, זה פשוט גרם ל... הוא לא GIL, הוא פשוט לא צריך את ה-Lock.
- פתרו את בעיית ה-Locking . . .
- (רן) כן, זה כמו להריץ משחקים - זה כמו שפעם הרצת משחקים, והיה לך כפתור שהיה צריך ושהיה יכול להאט אותם, כי המעבדים התחילו להיות מהירים מדי.
- (רן) אז כן, אולי דברים לוגית יישברו, אבל לא אמורים, לפחות . . .
- (דותן) אני בטוח שיש קוד בחוץ שסמך על ה-GIL . . . . קוד, שבעצם סומך על זה שאין פה Concurrency אמיתי, ושעכשיו צריך לתקן אותו.
- (רן) זה Fair Enough - אבל בעיה של מי זה? של המפתחים או של הפלטפורמה? של הפלטפורמה של Python, או של ה...
- (דותן) תשמע, אני לא יודע - שאלה טובה.
- כי אם עכשיו אתה 80% מה-Open Source Libraries הן ככה, וה-Standard Library שלך - אתה תיקנת אותו, אבל הוא מהווה אחוז קטן מהסי