Search

ההבדלים בין פייתון 2.7 לפייתון 3.7

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


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

גרסה 2.0 של פייתון יצאה בשנת 2000 והינה הגרסה שהייתה בשימוש הכי נרחב ב-19 שנים האחרונות. כתוצאה מכך כמות נרחבת של ספריות פותחה מלכתחילה עבור גרסה זו. פייתון 3 יצא בשנת 2008 ומכיל את הפונקציה 2to3 אשר מאפשר לפחות חלקית, לתרגם קוד מפייתון 2 לפייתון 3. פייתון 2.7 הינה הגרסה האחרונה של פייתון 2 והתמיכה בה תפסיק בשנת 2020. עבור פייתון 3, החשיבות הגבוהה ביותר כדי לספק תחליף טוב עבור פייתון 2 הינו המוכנות של הספריות והתרגום שלהם לפייתון שלוש - ניתן לצפות ב"מוכנות" של פייתון 3 מנקודת מבט של 360 הספריות הפופולאריות ביותר בפייתון באתר py3readiness.org. מוכנות כזאת מספיקה עבור מתכנת של פייתון, אבל עבור עולם אבטחת המידע, חשוב קיום של אפשרות קודים וסקריפטים הכתובים בשפה, וזוהי הסיבה הראשית שמומחי אבטחה מתרחקים מהמעבר הישיר לפייתון 3.

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

· פונקציית ה-print המוכרת קיבלה שינוי מבנה קל בכדי להציג סטנדרים בשימוש בה, כאשר השימוש בפייתון 2 נראה כך (מוצגות מספר אפשרויות):


השימוש בפייתון 3 מוגבל לעבוד עם סוגריים:


· חילוק מספרים גם הוא שונה, פייתון 2:


פייתון 3:


ניתן לראות כי במקום שברוב המצבים החילוק יהיה ללא יחס לשברים אלא אם משתמשים ספציפית בתו ‘\’ בצירוף עם חילוק במספר המוגדר כשבר - בפייתון 3 החילוק מחשב שברים עם ‘/’ יחיד ומתעלם משברים בשימוש ב-‘//’.

· פונקציית ה-xrange הפופולארית החליפה את פונקציית range הרגילה כיוון שהיא מהירה יותר ופופולארית יותר עקב כך.

יש לציין כי בנוסף לשיפורים בפייתון 3, נוסף לפייתון 2 מודול חשוב המאפשר עבודה עם פונקציות מיובאות מפייתון 3 – ובכך מאריך מעט את תוחלת החיים של הגרסה. המודול המדובר הינו מודל ה-_future_.

כדוגמא, אם נרצה להשתמש בחישוב החילוק של פייתון 3 בקוד הפייתון 2 שלנו, או שנרצה לפתח קוד אשר תואם לשתי המערכות נוכל להשתמש במודול כך:


ולאחר מכן להשתמש בחילוק בדרך שבה Python 3 משתמש בה. ממספר שינויים אלו, ניתן לראות שפייתון 3 שואף לשפר את אחידות כתיבת הקוד בפייתון ואף משפר את הקריאות שלו, שיפור נהדר לשפה בכלל ולאנשים המשתמשים בה למקצועות הסייבר בפרט. כפי שניתן לראות, רוב הכתיב בשפה נשאר אחיד – כתוצאה מכך רוב הקודים הכתובים בפייתון 2 יכולים להיות מתורגמים יחסית בקלות לפייתון 3. כתוצאה מכך, המעבר לעבודה בפייתון 3 בעתיד הקרוב צפויה להיות קלה יותר עבור כל אדם המנוסה בפייתון 2. רוני לב, חוקר ומרצה בחברת ThinkCyber.

0 views

© 2020 by ThinkCyber

THE 2020

CYBERIUM