מהדר Python-to-C ++ מבטיח ביצוע מהיר יותר

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

Nuika (קוד פתוח ב- GitHub) מרכיב את פייתון לקוד C ++, שאותו ניתן לבצע במקום או לארוז כקובץ עצמאי להפצה מחדש. שלא כמו תחליפים אחרים עבור מתורגמנים קיימים של פיתון, היא טוענת תאימות מלאה לכל מבני השפה ב- Python 2.6, 2.7, 3.2 ו- 3.3.

על פי ההובלה של הפרויקט, קיי היין, ציון הדרך הראשון של נויטקה - זוגיות עם השפה - כבר התקיים. היין הציג דיון על נויטקה בכנס EuroPython 2012 והעבודה החלה ברצינות (בהתבסס על היסטוריית ההתחייבויות של GitHub) בסוף אותה שנה.

כדי לחולל את הקסם שלה, נויטקה דורשת גם גרסה עדכנית של מתורגמן הפייתון (ענף 2.x או 3.x) וגם מהדר C ++. Microsoft Visual Studio, MinGW ו- Clang / LLVM נתמכים כולם עבור האחרונים, גם במהדורות 32 וגם 64 סיביות. עם זאת, אוספים צולבים - למשל, מ- Linux ל- Windows או להיפך - אינם נתמכים, והידור הפעלה של 64 סיביות ב- Windows דורש מהדר של מיקרוסופט.

חסרון נוסף הוא יצירת הפעלות עצמאיות. לשם כך, Nuitka כולל את ההפצה מחדש של CPython (ב- Windows, אוסף של קבצי DLL וקבצי תמיכה אחרים) עם ההפעלה. כתוצאה מכך, תוכניות עצמאיות מגיעות עם כמות נכבדה של תקורה: סקריפט שורת פקודה פשוט "שלום, עולם" עבור Python 2.7 מייצר הפעלה של Windows בגודל 2.6 סיביות של 32 סיביות, יחד עם 7.4MB של קבצי תמיכה. (גרסת GUI של אותה תוכנית שקלה 10MB עבור ההפעלה, סך של 20MB).

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