Python
מתוך ויקיפדיה, האנציקלופדיה החופשית
Python (פייתון) היא שפת תכנות מונחית עצמים קלה ללימוד ולקריאה, אשר נועדה לקצר את זמן הפיתוח של פרויקטים ולהעדיף את נוחות המשתמש על פני ביצועי הקוד. פייתון היא בעלת דמיון רב לשפות התכנות: TCL, Perl, Scheme, והיא חופשית לשימוש ולהפצה חוזרת, כולל שימוש מסחרי.
השפה נוצרה על ידי גואידו ואן רוסום בשנות ה-80 המאוחרות, במקור בתור פיתוח של שפת התכנות ABC אשר יוכל לטפל בחריגות עבור Amoeba OS. מאז השתנתה השפה בצורה משמעותית, וגם כיום נמשך הפיתוח ומוכנסים שינויים רבים. זכויות היוצרים על גרסאות פייתון החל מ-2.1 שייכות לקרן התוכנה של פייתון. הגרסה האחרונה של פייתון היא גרסה 2.5.1 אשר שוחררה ב18 באפריל 2007.
שם השפה "פייתון" נבחר כמחווה לחבורה הקומית "מונטי פייתון".
תוכן עניינים |
[עריכה] פילוסופיה
פייתון היא שפה שתומכת בשימוש במספר פאראדיגמות תכנות שונות. כלומר, היא לא כופה על המתכנתים את סגנון כתיבת הקוד. ניתן לכתוב קוד מונחה עצמים, תכנות מובנה ותכנות פונקציונלי. בדיקת טיפוסי הנתונים נעשית באופן דינאמי וטיפול בזיכרון לא נעשה בצורה מפורשת.
פייתון נוצרה בגישה של שפה פשוטה ומובנת, אשר ניתנת לקריאה נוחה. מפתחי פייתון מקדמים את תפיסתם של איך קוד צריך להיראות "יפה", "מפורש" ו"פשוט".
[עריכה] יתרונות וחסרונות השפה
שפת פייתון מוגדרת כשפה מפורשת (Interpreted), בדומה לשפות כמו Scheme, אך בפועל המפרש של השפה מבצע הידור חלקי לשפת ביניים (Bytecode), בדומה ל-Java. קבצים אלו מאפשרים למפרש להריץ את אותו קוד פעמים נוספות באופן מהיר ויעיל יותר, כמו גם מאפשרים לפתח יישומי פייתון באופן בלתי-תלוי במערכת ההפעלה (בתנאי שלא מבוצעות קריאות מערכת הפעלה בלעדיות). כתוצאה מההידור החלקי, ניתן לקבל הערות הידור לפני הרצת הקוד, בכל הקשור לקישור הקבצים המשתתפים, תקלות תחביר, תקלות השמה וכדומה. חסרון נלווה לכך הוא שכמו ב-Java, היות השפה מפורשת מחייב התקנתו של מפרש פייתון על המכונה המבצעת, שמסוגל להריץ את קוד הביניים הנתון. עם זאת, קיימים יישומים שמאפשרים את איסוף החלקים הרלוונטיים לתוכנה של המפרש ויצירת קובץ הרצה שמפעיל את התוכנה גם על מחשבים שלא הותקן בהם מפרש, כגון py2exe.
עקרון נוסף של השפה היא העדר הגדרת טיפוסים סטטיים של מרבית המשתנים: מתודה או פונקציה מקבלת את משתניה ללא ציון טיפוסם, ובעת הכרזה על משתנה אין צורך לציין את הטיפוס הסטטי שלו. הדבר מחד מסייע למתכנת לכתוב קוד שימושי בפחות מילים, אך מנגד עשוי להביא להשמות לא נכונות שלא תתפסנה עד שלב ההרצה.
אף על פי שפייתון מצוינת לפיתוח יישומים קטנים ומהירים, נעשה בשפה שימוש לכתיבת תוכנות גדולות כגון Zope וביטורנט.
פייתון היא אחת משלוש השפות העיקריות בהן עובדת חברת גוגל[1]. בין השאר, כל מערכת הפיתוח של גוגל (ניהול גרסאות ובניית מהדורות) מתבצעת בטכנולוגיה מבוססת פייתון. בנוסף, באפריל 2008 הזמינה גוגל גולשים לכתוב אפליקציות פייתון ולהתקינן על מערכת שרתיה[2].
[עריכה] ספרייה סטנדרטית
על אף שהשפה עצמה לא מכילה כמות גדולה של כלים, הספרייה הסטנדרטית של פייתון כוללת עשרות מודולים, אשר מקלים מאוד על כתיבת קוד. ישנם לדוגמה מודולים אשר מאפשרים שימוש בפרוטוקולי אינטרנט רבים כגון MIME, HTTP ו-SMTP, שימוש בקידודים ובפורמטי דחיסה שונים כמו למשל base64 ו-zlib, עבודה עם XML-ים ועוד.
[עריכה] המשמעות התחבירית של ההזחה
בפייתון, להזחה של קוד יש משמעות תחבירית אשר משפיעה בצורה ניכרת על ריצת התוכנית. המבנה של בלוקים של קוד בתוכנית נקבע על ידי ההזחה שלהם. בשפות רבות אין משמעות תכנות להזחה כשלעצמה, ויש צורך להקיף כל בלוק בתוי בקרה מיוחדים המסמנים את תחילתו וסופו של הבלוק, אף ללא כל הזחה, (סוגריים מסולסלים ב-C או Perl, וbegin ו-end בפסקל וב-VB). בפייתון עצם הזחת הבלוק, מגדירה אותו כבלוק תכנותי שונה.
[עריכה] מצב אינטראקטיבי
המפרש של פייתון תומך במצב פיתוח אינטראקטיבי, המאפשר לכתוב שורות קוד בודדות אשר יורצו מיידית. מצב זה מאפשר לראות במהירות מה יהיו התוצאות של חלקים קטנים מהקוד, ולערוך ניסויים. תמיכה זו תורמת לקלות הפיתוח והלימוד של השפה, ושימושית מאוד גם למפתחים מנוסים אשר רוצים לבדוק קטעי קוד לפני שילובם בתוכנה.
[עריכה] הערות שוליים
- ^ http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm
- ^ http://linmagazine.co.il/enterprise/2008/04/08/google-app-engine
[עריכה] קישורים חיצוניים
מיזמי קרן ויקימדיה |
---|
ספר לימוד בוויקיספר: פייתון |
- אתר הבית
- התיעוד של פייתון
- אתר עברי ללימוד פייתון
- Python-IL - אתר קהילת הפייתון הישראלית
שפות תכנות |
---|
Ada | ALGOL | Awk | Assembly | Basic | BCPL | C | C++ | C# | Cobol | Delphi | Eiffel | Forth | Fortran | Haskell | Java | LISP | Logo | Miranda | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | PL/I | PL/SQL | Prolog | Python | REXX | SQL | Ruby | Smalltalk | Visual Basic | Visual Basic .NET |