מדריך מפתחים ליתרונות והחסרונות של פייתון

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

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

מקצוענים של פייתון

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

פיתון קל לשימוש ופופולרי ביותר באקדמיה, ויוצר מאגר כישרונות גדול, אומרת Sumit Chachra, CTO בחברת Tivix, חברת ייעוץ תוכנה המתמחה בפיתוח Python / Django. ג'נגו ופייתון ממונפים על ידי Tivix בפיתוח אינטרנט ומובייל, הוא אומר.

פיתון הוא דרך מאוד פרודוקטיבית לכתוב קוד, אומר סטיבן דייבל, מ- Wingware, שהופך את ה- Wing Python ל- IDE. "חלק מכך נובע מהתחביר והקריאה הפשוטים - כמעט ואין 'לוחית boiler' בכלל. חלק זה נובע מהספרייה המובנית והעשירה ומעוצבת היטב ומהזמינות של קוד פתוח רב של צד שלישי. ספריות ומודולים. " בכך שהוא קל להבנה, קל יותר לשמור על הקוד, הוא מוסיף. 

פייתון, אומר צ'צ'רה, הוא מוקלד דינמי וגמיש, עם קוד שפיר פחות. עם זאת, הוא מציין את ההקלדה הדינמית כשלילי פוטנציאלי (ראה להלן).

הזדמנויות אינטרנט של הדברים. פייתון עשוי להפוך לפופולרי באינטרנט של הדברים, שכן פלטפורמות חדשות כמו Raspberry Pi מבוססות עליו, אומר קרבונל. פטל של תיעוד Pi מצטט את השפה כמו "שפת תכנות נפלא ורב עוצמה זה קל לשימוש (קל לקריאה ו כתיבה) ועם פטל Pi מאפשר לך לחבר את הפרויקט אל העולם האמיתי."

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

גישת Multiparadigm מיטיבה עם Java. גישת התכנות של פיתון אינה מוגבלת כמו זו של ג'אווה, אומר קרבונל. "למשל, אינך צריך ליצור מחלקת OO כדי להדפיס 'שלום עולם' בפייתון - אתה צריך ב- Java." בניגוד ל- Java, Python הוא מולטי-פרדיגמה ותומך בסגנונות תכנות OO, פרוצדורליים ופונקציונליים, הוא אומר. (לאחרונה הוסיפה Java יכולות פונקציונליות ב- Java 8.)

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

חסרונותיו של פייתון

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

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

הביצועים, אומרת צ'צ'רה, "הם איטיים יותר בהשוואה לשפות ישנות יותר כמו C / C ++ ואפילו חדשות יותר כמו Go."

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

פייתון לא נמצא בדפדפני אינטרנט, מציין דייבל. "זו ממש בושה. יש בריתון, אבל אני לא חושב שזה שמיש בעולם האמיתי." קשה לאבטח את פייתון, ולכן זה לא נמצא בדפדפנים, הוא מוסיף. "עדיין אין ממש ארגז חול מאובטח / מאסר טוב עבור פייתון, ולדעתי הוא נחשב בעצם בלתי אפשרי עבור CPython (היישום הסטנדרטי). 

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

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

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