פייתון: קל ללמוד, קשה לאתגר [דעה]

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

python

הפוסט נכתב על ידי ראובן לרנר, מפתח יישומי ווב מאז 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, מסביב לשפה אחת, כדאי לשקול את פייתון.


הפוסט בחסות ג’ון ברייס – מכללת היי-טק


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

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

כתב אורח

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

הגב

25 תגובות על "פייתון: קל ללמוד, קשה לאתגר [דעה]"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
גל
Guest
אני מאוד אוהב פייתון, אבל כשזה מגיע לפיתוח לווב, PHP שפה יותר חזקה (בייחוד בגרסאות האחרונות שלה). היא קלה יותר, יותר מהירה ומכילה הרבה יותר פיצ’רים. יש לה המון frameworks (כמו CodeIgniter, Yii, Zend, CakePHP – יש למעלה מ15 נפוצות…). יש לה CLI והיא לא חייבת לרוץ על שרת. למי שרוצה משהו קצת שונה – תנסו nodejs. זה תפיסה קצת שונה כי ג’אווהסקריפ זה event oriented אבל אני ממליץ בחום. המנוע של js הוא מהיר יותר, הוא יכול לעבור אופטימיזציות חזקות יותר. הוא non-blocking באופן מובנה בשפה שזה יתרון עצום (אפשר לחכות את non-blocking גם בפייתון, php ושפות אחרות אבל… Read more »
עידן
Guest

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

me
Guest

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

me too
Guest

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

יובל
Guest

קורא איכותי שכמוך

עזרא
Guest

פירסומת למי?
למכללות או לשפה?

אבנר
Guest

שאלה למחבר איזה אתר בנית שהוא אחד מהמאה הראשונים?

ראובן לרנר
Guest

הקמתי את the-tech.mit.edu , עיתון הסטודנטים ב MIT. הייתי עורך הראשי של אותו עיתון, ואחד מהעורכים האחרים הלך להרצאה של טים ברנרס-לי בתחילת 1993. הקמנו את האתר, וטים ב-ל שלח מייל אלינו, הודה לנו על התרומה לקהילה, ואמר שישים אותנו ברשימה (שהוא ערך באופן ידני) של כל האתרים בעולם.

אלון
Guest

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

ראובן לרנר
Guest

האתר של השפה אכן יבש. אתר חדש בשלבי הקמה, שניתן לראות אותו ב

http://preview.python.org/

יש הרבה אתרים אחרים הקשורים לפייתון, אבל, מקהילות כמו http://www.reddit.com/r/python/ עד לשאלות ותשובות ב Stack Overflow, במקום כמו http://stackoverflow.com/questions/tagged/python/ יש גם ערוצים ב IRC שבהם ניתן לקבל עזרה ולדבר עם חברי הקהילה.

ראובן

אלון
Guest

תודה על העדכון לגבי האתר החדש בהקמה. :-)
אולי גם עייף כמוני יצליח ללמוד לתכנת .. במיוחד ללמוד לכתוב אפקליקציות שאני רוצה.

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

ראובן לרנר
Guest

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

ראובן

Emanuel Ilyayev
Guest

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

אני
Guest

אני שונא שפות עם מערכת טיפוסים דינמית.
למשל: אתה קורא פונקציה שמקבלת אובייקט שנקרא state.
מה הטיפוס שלו? ואם יש 4 טיפוסי state שונים? איזה מהם תקבל?
לאילו מתודות אתה רשאי לקרוא? (אפילו לא ניתן לעשות auto complete ב-ide).

אני חושב ששפות דינמיות הרבה פחות קריאות.
שלא לדבר על ה overhead המובנה שנובע מבדיקות בזמן ריצה.

שפות דינמיות נוחות מאוד לפיתוח מהיר של אפליקציה\מערכת פשוטה יחסית.
לא הייתי מפתח בשפה דינמית (ובפרט בפייתון) מערכת גדולה ומורכבת.

מה דעתכם?

ראובן לרנר
Guest
למגיב האחרון, שלום רב. דבר ראשון, הויכוח בין תומכי שפות דינמיות לשפות סטטיות הינו ויכוח של כמה עשורים כבר. אם אתה מעדיף לעבוד עם שפה סטטית מקומפלת, אני מאחל לך הצלחה וסיפוק מהעבודה שלך. אני ממליץ בחום, אגב, על הרצאה של שטיב יגי מגוגל. אפילו אם לא תסכים איתה (ועברו כמה שנים מאז שנכתבה), היא מעניינת ומעלה כמה נקודות מעניינות: http://steve-yegge.blogspot.co.il/2008/05/dynamic-languages-strike-back.html יש, ללא ספק, תקורה מסויימת משפה דינמית, למרות שדי מוכח בעבר שניתן להגיע לביצויים מצויינים גם ל Lisp וגם ב Smalltalk כשהתקמפלו. נראה לי שבשנים הקרובות, נראה שיפור בביצויים של שפות דינמיות. קח את JavaScript לדוגמה — הביצויים שם… Read more »
אני
Guest
ראובן שלום, תודה על התגובה המפורטת והמנומקת. נעזוב בצד את הביצועים. הבעיה שלי עם שפות דינמיות זה חוסר האונים שאני המפתח חש כשאני מתכנת בהם. חוסר האונים נובע מכך שאני לא יודע מה הטיפוס של האובייקט בו אני משתמש. אם אני כתבתי את הקוד מ-א עד ת אז אני יודע מה נשלח לפונקציה ולכן ברור לי מה מותר לי לבצע. אולם אם אני משתמש\עורך קוד של אחר, אני תלוי בתיעוד. שפות סטטיות מכריחות את המפתח לציין את הטיפוס של כל אובייקט וזה מה שהופך אותן לקריאות עבורי. יכול להיות שהקושי שלי נובע מחוסר ניסיון ועם הניסיון בשפות דינמיות ארגיש ואחשוב… Read more »
גיק
Guest

לתומך ה הstrong typing,

שפות שהם loose typed משתלבות יפה מאוד באווירה הכללית של עבודה עם web services ו json.
אתה פשוט מפסיק להניח הנחות חד משמעיות לגבי הטיפוסים המתקבלים במתודות שאתה מפתח אותן או קורא להן.
אתה עובד עם duck typing, אם אתה מצפה לאובייקט שמכיל מתודה שקוראים לה getClockValue אתה דבר ראשון בודק האם המתודה קיימת. אתה גם לא חייב לבדוק אם יש לך מנהל שגיאות שתיכננת היטב מראש.

באיזשהו מקום זה דומה יותר לחשיבה האנושית ולחוסר השלמות האנושית ולכן זה דווקא מתאים מאוד לצוותים גדולים ולAPI חוצי-חברות.

אמיר (טורונטו)
Guest

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

Rachel Saadia
Guest

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

רחל
Guest

קראתי את התגובות כאן… חלק מהן לא התייחסו לנושא הפוסט אלא לעובדה שהכותב בא ממכללת ג’ון ברייס. נכון שבמכללה הזאת יש קורסים מגוונים, אבל לא זה העניין. זה מאמר דעה. ומאמר דעה בדרך כלל – הוא סובייקטיבי.
אתם יכולים להסכים או לא להסכים עם הכותב.
אגב, אני אוהבת קוד פתוח וים האפשרויות פשוט מפתה. על פייתון שמעתי דווקא מאחד מידידי בגוגל +. הוא מפתח לסלולר. על כן הוא לא יכול להתרכז ב – PHP ו – HTML5.
למפתחים היום יש אפשרויות רבות לבחירה. וזה מה שטוב!!!

רחל

גל
Guest
אין סיבה להרגיש חוסר אונים שכמשתמשים בשפות דינאמיות. העניין הוא פשוט – לכל כלי יש את היתרונות והחסרונות שלו. במקרה של שפות דינאמיות מגוון האפשרויות בד”כ הוא הרבה יותר רחב. אתה יכול “להמציא את הגלגל”. אפשר להגיע למצב שעם מעט מאוד קוד אתה עושה המון, מה שלא היית תמיד יכול לעשות עם שפות שמגבילות אותך. לגבי ההערה שאם לא כתבת את הקוד אתה לא יודע מה נשלח – א כל בהרבה שפות דינאמיות (PHP לדוגמא) אתה יכול לדעת (לכתוב את הטיפוס לפני הפרמטר בחתימה של הפונקציה). אבל הנקודה היא שיש משהו שנקרא “חוזה”, וזה נכון לכל סוג של תכנות –… Read more »
בב
Guest

פרסומת או לא ?
השאלה החשובה (מבחינתי) היא “כמה מידע יש במאמר”.

יגאל אלקון
Member
קודם כל נראה שמטרת הכתבה היא באמת לפרסם את המכללה יותר מאשר להביא ידע לקוראים, יש פה כמה דברים שחוזרים על עצמם, אפשר לכתוב על פייתון לפחות 5 או 10 עמודים בלי לחזור על עצמך, זאת שפה מאוד עשירה עם הרבה אפשרויות. לגבי PHP נגד Python, כיום לפייתון יש יתרון ברור אחד על PHP והוא רכיב שנקרא PyPy. אני לא יפרט מה בדיוק הרכיב עושה כי זה ארוך, אבל הוא בעצם JIT בשביל פייתון. זהו רכיב שנמצא בכמה שפות אחרון כמו JS למשל (בגלל זה node.js מראה ביצועים יותר טובים, מנוע V8 מכיל רכיב JIT). רכיב זה אינו יחודי לשפת… Read more »
יגאל אלקון
Member

סליחה עם הטעיות, מיוצר = מיותר.

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

shai
Guest

חלק גדול מהפוסטים פה הם פרסומת, ודרך אגב אם כבר ללמוד פייטון אז הייתי ממליץ על הקישור הזה
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/

wpDiscuz

תגיות לכתבה: