פייתון: קל ללמוד, קשה לאתגר [דעה]
קל מאוד ללמוד אותה והיא מבוססת קוד פתוח כך שגם אין צורך לשלם עליה. מה הופך את פייתון לשפת פיתוח פופולארית ומי החברות הגדולות שאימצו אותה באהבה גדולה כל כך?
הפוסט נכתב על ידי ראובן לרנר, מפתח יישומי ווב מאז 1993, כשהקים את אחד ממאה האתרים הראשונים בעולם. היום הוא יועץ ומפתח בענייני ווב וקוד פתוח, ומרצה בכיר בג’ון ברייס מכללת הי-טק.
מהי פייתון? כן, היא שפת תכנות, אבל יש הרבה סוגים של שפות היום, וכל סוג מתאים למשהו אחר. אז למה מתאימה פייתון? ליישומי ווב? לעיבוד נתונים רבים עם אלגוריתמים מורכבים? לפיתוח יישומים עם GUI? לאוטומציה ולקונפיגורציה של מערכות? לסטודנטים שמתחילים ללמוד מדעי המחשב? לילדים שרוצים ללמוד פיתוח תוכנה?
חופשית לשימוש
האמת היא, שכל התשובות נכונות. פייתון, שפה בת יותר מעשרים שנה, שנמצאת במקום יחודי בין שפות תכנות: קל ללמוד אותה, וקשה למצוא משימות שגדולות עליה. היא שפה בקוד פתוח, כך שלא צריכים לשלם עליה, או על עשרות אלפי החבילות שהקהילה כתבה והפיצה. היא גם שפה שעובדת באופן שווה בכל הפלטפורמות — חלונות, לינוקס, ו-OSX, עם תמיכה מצויינת למערכות של מיקרוסופט, דבר נדיר בעולם של קוד פתוח.
פייתון, שהתחילה כפרוייקט קטן של המפתח ההולנדי גוידו ואן רוסום, תמיד הייתה ידועה כשפה פשוטה בסינטקס שלה, עם הרבה כוח. חלק מסוד ההצלחה בפייתון הוא הקריאות של הקוד, שעליה שמים דגש המפתחים בכל החלטה שמקבלים. כל מפתח יודע שקל לכתוב קוד, אבל קשה לקרוא אותו אחרי שישה חודשים (לא לדבר על שנים). פייתון מגבילה מפתחים, בזה שהיא נותנת פחות אפשרויות. לדוגמה, יש רק שני סוגים של לולאות – אבל זה גורם לכך שהקוד של כולם נראה דומה, ולכן קל יחסית להיכנס לקוד של מישהו אחר ולהמשיך בפיתוח.
פופולאריות רחבה
אל תחשבו שהקלות שבה ניתן לפתח בפייתון אומרת משהו על היכולות של השפה. לפייתון יש תמיכה רחבה ועמוקה ל-Object oriented, אבל בסגנון קל וקליט, בלי התקורה שיש בהרבה שפות אחרות.
חלק גדול מהסוד של פייתון הוא מספר החבילות שיש בקוד פתוח, המופצות בין היתר באתר PyPi, בחינם לכל מי שירצה להשתמש בהן, בתחומים שונים ומגוונים. רוצים לעבד נתונים רבים, או לבצע חישובים קשים? יש את NumPy ו-SciPy, בשימוש רב אצל חוקרים ומדענים וגם חברות שעוסקות בעיבוד תמונות ונתונים. רוצים לפתח יישומי ווב? יש אם Django, מערכת MVC, וגם עוד כמה חבילות קטנות יותר. רוצים לעבוד עם XML, או לכתוב שרתים ברשת בפרוטוקולים שונים? גם ניתן לפתח אותם בפייתון, או יותר נכון, לנצל את החבילות הקיימות, ולעשות עבודה מינורית ביותר כדי להרים, לדוגמה, שרת של Web services.
מספר החברות המפתחות דברים גדולים בפייתון הולך ומתרחב: חברת Dropbox משתמשת בפייתון בכמעט כל הפיתוח שלהם. חברות כמו Red Hat ו-Rackspace משתמשות בפייתון לקונפיגורציות, התקנות, וניהול המערכות שלהן. ואם חשבתם לפתח יישומי ווב בפייתון, לא תהיו ראשונים: YouTube משתמשת בפייתון, וגם Instagram, Pinterest, וקרן Mozilla. בארץ, גם הצבא והממשלה משתמשים בפייתון במקומות מסויימים, אבל גם חברות רבות אימצו אותה: SANDisk, NDS, Intel, בין השאר, משתמשות בפייתון.
ואם זה לא מספיק, MIT (והרבה אוניברסיטאות בעקבותיה) החליט לפני כמה שנים לשנות את השפה שבה מלמדים את המבוא שלהם למדעי המחשב לפייתון. דור חדש של בוגרי מדעי המחשב הולך לחשוב על פייתון כנורמה, וכשפות כמו ג’אווה ו .NET ככבדים. אבל את תדאגו אם יש לכם השקעה בפלטפורמות האלה, כי יש גרסאות פייתון גם ל-JVM וגם ל .NET, כך שניתן לקרוא לאובייקטים שכבר כתבתם מתוך קוד בפייתון. גם ניתן להרחית את פייתון ב-C, או כדי לייעל את הקוד שלכם, או להתחבר למערכות שכבר קיימות.
פייתון היא שפה שמרנית מאוד, ואולי שמרנית מדי: היה דגש למשך שנים רבות על שמירת backward compatibility, כדי שמי שמשדרג את גרסת הפייתון שלו לא יגלה שהדברים נשברו. לפני כמה שנים, הכריזו על גרסה חדשה של פייתון, 3.0, שלא תבטיח שקוד ישן לא יישבר, אבל שכן תכניס יכולות חדשות לשפה. זה גרם למצב משונה שבו אנחנו נמצאים היום, שהגרסה העדכנית ביותר היא 3.3, אבל שרוב האנשים בשטח משתמשים ב 2.7, גרסה שאמורה לגשר על הפערים בין הגרסאות. שתי הגרסאות עובדות, והן טובות, אבל זה כן גורם לקצת בילבול אצל מפתחים, במיוחד כשמנסים ללמוד מבלוגים ואתרים אחרים.
פייתון היא שפה שקל ללמוד, אבל כזו שרחוקה מאוד מלהיות צעצוע או שפה המיועדת למערכות קטנות ופשוטות. אנשים רבים משתמשים בפייתון היום בפיתוח כל מיני דברים מעניינים, וגם כשפה שמאפשרת יותר מה-shell script המסורתי בעולם של לינוקס. אם חשבתם ללמוד לפתח, או לאחד את החברה שלכם, ממפתחי ווב עד לאנשי system, מסביב לשפה אחת, כדאי לשקול את פייתון.
הפוסט בחסות ג'ון ברייס – מכללת היי-טק
ג'ון ברייס מכללת הי-טק מקבוצת matrix הינה חברת ההדרכה המובילה בישראל ומהמובילות באירופה בתחום הדרכת המחשוב וטכנולוגיית המידע והאלקטרוניקה ובתחום הדרכת מיומנות הניהול, השירות והמכירות. לחברה ניסיון עשיר בהכשרת מפתחים, אך מעבר להסבות הרבות מועברים גם קורסים מקצועיים למגזר עסקי ולארגונים גדולים וקטנים. צוות המרצים הינו צוות מיומן ובקיא הן בהכשרות תלמידים והן בפן הטכנולוגי העדכני ביותר בתחום ה-Rubyבתעשייה. ג'ון ברייס מכללת הי-טק מציעה קורסי Ruby שתואמים את צרכי שוק העבודה בתחום, כאשר המובילים מבינם הם:
הרשמה בחודשי אפריל לאחד מהקורסים הנבחרים תזכה אותך, גולש ניוזגיק, במלגה על סך 500 ₪
הגב
25 תגובות על "פייתון: קל ללמוד, קשה לאתגר [דעה]"
* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.
Django עונה לכל הדברים שאתה צריך בפריימוורק הרבה יותר מסודר, שלא יצור לך קוד ספגטי, וקהילה כל כך גדולה ותומכת שבחיים לא תמצא את כל הכלים שנבנו במיוחד לפריימוורק הזה.
ובנוגע למהירות זה פשוט לא נכון. PHP שפה לא בטיחותית, קשה לכתיבה ולדיבוג, ולוקח המון זמן לכתוב בה. זה כמו לבנות את GTA באסמבלר.
זה לא מאמר דעה. אלא פרסומת. מוריד קצת מאיכות האתר.
ואגב כל החברות הנ״ל משתמשות במיליון שפות נוספות. אז זה לא אומר שום דבר על פופולריות השפה או איכותה.
האתר שלכם מתחיל לפרסם יותר מידי מאמרי פירסומת ופחות תוכן איכותי.
רק ראייה לטווח ארוך תשאיר את האתר איכותי ועם קוראים רלוונטים, מאמרי פירסומת אולי טובים לטווח הקצר, אבל בטווח הארוך קוראים איכותיים, שיודעים להבחין בי מאמרי פירסומת למאמרי תוכן ודעה, ינטשו וחבל.
קורא איכותי שכמוך
פירסומת למי?
למכללות או לשפה?
שאלה למחבר איזה אתר בנית שהוא אחד מהמאה הראשונים?
הקמתי את the-tech.mit.edu , עיתון הסטודנטים ב MIT. הייתי עורך הראשי של אותו עיתון, ואחד מהעורכים האחרים הלך להרצאה של טים ברנרס-לי בתחילת 1993. הקמנו את האתר, וטים ב-ל שלח מייל אלינו, הודה לנו על התרומה לקהילה, ואמר שישים אותנו ברשימה (שהוא ערך באופן ידני) של כל האתרים בעולם.
ניסיתי ללמוד פייתון בשביל התחביב למרות שאני לא מתכנת ואם יש משהו שלא אהבתי בה זה במיוחד את האתר של השפה שהוא יבש מאוד וקשה להבנה.
יותר קל ללמוד מאתרים אחרים שכתובים בצורה יותר קולחת.
האתר של השפה אכן יבש. אתר חדש בשלבי הקמה, שניתן לראות אותו ב
http://preview.python.org/
יש הרבה אתרים אחרים הקשורים לפייתון, אבל, מקהילות כמו http://www.reddit.com/r/python/ עד לשאלות ותשובות ב Stack Overflow, במקום כמו http://stackoverflow.com/questions/tagged/python/ יש גם ערוצים ב IRC שבהם ניתן לקבל עזרה ולדבר עם חברי הקהילה.
ראובן
תודה על העדכון לגבי האתר החדש בהקמה. :-)
אולי גם עייף כמוני יצליח ללמוד לתכנת .. במיוחד ללמוד לכתוב אפקליקציות שאני רוצה.
אני מנסה ללמוד את ה GUI של PyQt .. יש לך הצעות??
תודה.
לגבי הקורס נראה לי שזה מאוחר בשבילי לכן מספיק לי לנסות ללמוד לבד בתקווה שאצליח.
שלום, אלון. לצערי, אין לי הרבה נסיון עם GUI בפייתון, וגם לא ב PyQt, למרות ששמעתי דברים טובים עליו. אני מאחל לך הצלחה בלמידת פייתון, ומקווה שתיהנה ממנה!
ראובן
פייטון זו שפה שכייף לתכנת בה. קהילת המתכנתים בפייטון מאוד מוכוונת קוד פתוח ולכן לכל בעיה כמעט, אפשר למצוא פתרון ברשת ואם אין מן המוכן אז תמיד אפשר להתייעץ עם קהילת המתכנתים ששמחים לעזור.
אני שונא שפות עם מערכת טיפוסים דינמית.
למשל: אתה קורא פונקציה שמקבלת אובייקט שנקרא state.
מה הטיפוס שלו? ואם יש 4 טיפוסי state שונים? איזה מהם תקבל?
לאילו מתודות אתה רשאי לקרוא? (אפילו לא ניתן לעשות auto complete ב-ide).
אני חושב ששפות דינמיות הרבה פחות קריאות.
שלא לדבר על ה overhead המובנה שנובע מבדיקות בזמן ריצה.
שפות דינמיות נוחות מאוד לפיתוח מהיר של אפליקציה\מערכת פשוטה יחסית.
לא הייתי מפתח בשפה דינמית (ובפרט בפייתון) מערכת גדולה ומורכבת.
מה דעתכם?
לתומך ה הstrong typing,
שפות שהם loose typed משתלבות יפה מאוד באווירה הכללית של עבודה עם web services ו json.
אתה פשוט מפסיק להניח הנחות חד משמעיות לגבי הטיפוסים המתקבלים במתודות שאתה מפתח אותן או קורא להן.
אתה עובד עם duck typing, אם אתה מצפה לאובייקט שמכיל מתודה שקוראים לה getClockValue אתה דבר ראשון בודק האם המתודה קיימת. אתה גם לא חייב לבדוק אם יש לך מנהל שגיאות שתיכננת היטב מראש.
באיזשהו מקום זה דומה יותר לחשיבה האנושית ולחוסר השלמות האנושית ולכן זה דווקא מתאים מאוד לצוותים גדולים ולAPI חוצי-חברות.
קשה לי עם כתבות שמטרתן פרסומת. מאחר ואתה לא ישר איתי מהתחלה, בזה שאתה לא מגלה את מטרתך האמיתית, מכירות, ובמקום זה כאילו מספר לי על איזו שפה נפלאה, אני לא יודע למה כן אפשר להאמין, ואני נוטה לדלג על כל הכתבה.
בעצם, על כל האתר הזה, שחוץ מפרסומות אין בו הרבה.
כחובבת קוד פתוח שמעתי שהיא קלה יחסית. ועצם העובדה שמוזילה משתמשת בזה מעידה על הנושא הקהילתי. מוזילה היא קרן ללא מטרות רווח, מה שמאפשר למפתחים גם לעזור זה לזה.
קראתי את התגובות כאן… חלק מהן לא התייחסו לנושא הפוסט אלא לעובדה שהכותב בא ממכללת ג'ון ברייס. נכון שבמכללה הזאת יש קורסים מגוונים, אבל לא זה העניין. זה מאמר דעה. ומאמר דעה בדרך כלל – הוא סובייקטיבי.
אתם יכולים להסכים או לא להסכים עם הכותב.
אגב, אני אוהבת קוד פתוח וים האפשרויות פשוט מפתה. על פייתון שמעתי דווקא מאחד מידידי בגוגל +. הוא מפתח לסלולר. על כן הוא לא יכול להתרכז ב – PHP ו – HTML5.
למפתחים היום יש אפשרויות רבות לבחירה. וזה מה שטוב!!!
רחל
פרסומת או לא ?
השאלה החשובה (מבחינתי) היא "כמה מידע יש במאמר".
סליחה עם הטעיות, מיוצר = מיותר.
למה אי אפשר לעשות עריכה לתגובות?
איך לעזעזל מגיבים בעץ הראשי?
אפשר בבקשה לסדר את זה, זה ממש לא נוח ולא מובן.
חלק גדול מהפוסטים פה הם פרסומת, ודרך אגב אם כבר ללמוד פייטון אז הייתי ממליץ על הקישור הזה
http://automation.co.il/%D7%A7%D7%95%D7%A8%D7%A1-%D7%A4%D7%99%D7%99%D7%AA%D7%95%D7%9F-%D7%A7%D7%95%D7%A8%D7%A1-%D7%A4%D7%99%D7%99%D7%98%D7%95%D7%9F-python-course/