היי רועי, שאלה ממש מעניינת! חשבתי על זה הרבה ולקחתי זמן לעכל את זה...
היות והשיקול העיקרי שלך הוא *תחזוקת הקוד* (חשוב מאוד!), בסופו של דבר העצה שלי היא: *אל תתחכם*. הרעיון המקורי שהצעת, של שפה ייעודית שתאפשר להריץ בערך את אותו קוד ב-Python וב-Cython, נשמע לי בעייתי דווקא מבחינת קלות תחזוקה. הנה כמה סיבות: 1. זה מורכב 2. אין ידע וכלים קיימים שמותאמים לזה 3. קוד שעובד אחרת במצבים שונים הוא מתכון לצרות אני ממליץ בחום להימנע מזה, ונראה שבמקרה שלך אפשר. ממה שתיארת, החלק הקריטי המדובר של הקוד הוא כזה שעוסק ב-IO. אם זה חלק קטן יחסית מכלל הקוד, עוד אפשרות היא לארוז אותו כחבילה נפרדת, עם גרסאות ובדיקות מקיפות משלה. תייצרו wheels, רצוי אוטומטית, ושימו אותם במקום שיהיה לכם קל להתקין פשוט עם pip install. (אין צורך ב-repo נפרד, אגב.) מה זה נותן? 1. גבולות ברורים: כאן משתמשים ב-Cython כדי לבנות רכיב מסוים, שאר המערכת בפייתון. 2. רוב המפתחים, רוב הזמן לא יצטרכו להתעסק עם Cython וקומפילציה. 3. תחזוקה קלה יותר לאורך זמן (בעיקר כתוצאה מ-1). - טל עינת On Fri, Mar 22, 2019 at 8:27 AM Roee Kashi <[email protected]> wrote: > אני כבר עם pypy. > הבעיה שה-JIT לא מספיק טוב במקרה הזה, מאחר ואני ממש מחליף לוגיקה של עבודת > IO אינטנסיבית, שינוי ערכים בתוך buffers וכו', אז Cython מאפשר לי פשוט > להשתמש במערך אמיתי, שינוי ערכים ללא העתקה שהרבה יותר יעיל מ-memoryview, > ופעולות IO ישירות עם system calls בשימוש עם המערך המקורי. > הבעיה העיקרית עם שפות עילית בדכ בהקשרים האלה היא הצורך הבלתי נמנע בהעתקת > buffers בתרגום מ-native ל-managed ולהפך. > > > On Fri, Mar 22, 2019, 05:53 Ram Rachum <[email protected]> wrote: > >> שקלת להשתמש ב-pypy? זה נשמע מאוד דומה למה שאתה רוצה. >> >> (עניתי בטעות לקבוצה הלא-נכונה בהודעה הקודמת שלי, פדיחות.) >> >> >> On Thu, Mar 21, 2019 at 11:40 PM Roee Kashi <[email protected]> wrote: >> >>> קבוצה יקרה, >>> לשיפור ביצועים בצירים הקריטיים במערכת, העברתי חלק משמעותי מהקוד ל- >>> cython. >>> אמנם השיפור דרמטי, אבל החשש להמשך הוא תחזוק הקוד, unit-tests, דיבאג וכו'. >>> >>> החלום שהיינו יכולים להריץ את הקוד כמו פייתון, ולקמפל ל-cython. >>> הכיוון היחידי הריאלי שהגעתי אליו הוא לכתוב את הקוד בפייתון, וב- cython >>> ולהשתמש ב-syntax פנימי שלמעשה ירחיב את השפה וישמיט את החלקים של cython >>> כשאריץ דרך python, וישמיט את החלקים של python (שבחרתי להסיר) בזמן קימפול >>> הקוד. >>> >>> מישהו יכול לשתף מניסיונו? >>> >>> רועי. >>> _______________________________________________ >>> Python-il mailing list >>> [email protected] >>> http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il >>> >> _______________________________________________ > Python-il mailing list > [email protected] > http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il >
_______________________________________________ Python-il mailing list [email protected] http://hamakor.org.il/cgi-bin/mailman/listinfo/python-il
