היי רועי,
שאלה ממש מעניינת! חשבתי על זה הרבה ולקחתי זמן לעכל את זה...
היות והשיקול העיקרי שלך הוא תחזוקת הקוד (חשוב מאוד!), בסופו של דבר העצה שלי היא: אל תתחכם.
הרעיון המקורי שהצעת, של שפה ייעודית שתאפשר להריץ בערך את אותו קוד ב-Python וב-Cython, נשמע לי בעייתי דווקא מבחינת קלות תחזוקה. הנה כמה סיבות:
1. זה מורכב
2. אין ידע וכלים קיימים שמותאמים לזה
3. קוד שעובד אחרת במצבים שונים הוא מתכון לצרות
אני ממליץ בחום להימנע מזה, ונראה שבמקרה שלך אפשר.
ממה שתיארת, החלק הקריטי המדובר של הקוד הוא כזה שעוסק ב-IO. אם זה חלק קטן יחסית מכלל הקוד, עוד אפשרות היא לארוז אותו כחבילה נפרדת, עם גרסאות ובדיקות מקיפות משלה. תייצרו wheels, רצוי אוטומטית, ושימו אותם במקום שיהיה לכם קל להתקין פשוט עם pip install. (אין צורך ב-repo נפרד, אגב.)
מה זה נותן?
1. גבולות ברורים: כאן משתמשים ב-Cython כדי לבנות רכיב מסוים, שאר המערכת בפייתון.
2. רוב המפתחים, רוב הזמן לא יצטרכו להתעסק עם Cython וקומפילציה.
3. תחזוקה קלה יותר לאורך זמן (בעיקר
כתוצאה מ-1).
- טל עינת