אנשים וקהילה
פיתוח השפה
פיתוח הספריה
Guido van Rossum (חידו, לא גיודו — הוא מהולנד)
הוא BDFL, כלומר Benevolent Dictator for life והוא יודע מה טוב בשבילנו ;-)
השתתף בפיתוח שפת ABC שהייתה מיועדת ללימוד לילדים
רצה שפת סקריפטים למערכת הפעלה — וכך ב־1991 נולדה שפת פייתון...
השפה נקראת אחרי מונטי פייטון. יש התייחסויות פה ושם בשפה ובתיעוד.
יש לו מכונת הזמן :-)
ועוד רבים עם תחומי מומחיות שונים וסתם מפתחים גנריים...
קהילה גדולה של אנשים שמתעניינים ולפעמים תורמים אבל לא מפתחים
Tutor — שאלות למתחילים
python-list = comp.lang.python — רק רובוטים מסוגלים לקרוא הכל :-)
python-announce-list = comp.lang.python.announce — הודאות שחרור על כל דבר שכתוב בפייתון
python-dev — בעיקר בין המפתחים, דורש הרשמה
יש סיכומים נהדרים
SIGs = Special Interst Groups — לדוגמה על עיבוד מספרים, תיעוד, XML, וכד'
ויקי — הרבה חומרי הכוונה, יותר ויותר משמש להצעות שינויים
CVS ב־SF (עומדים לעבור ל־Subversion על python.org)
באגים, תלאים והצאות שיפור ב־SF
פיתוח ארוך בין גרסאות, ימי באגים מדי פעם, הקפאה וייצוב לקראת גרסה גדולה — כמו כל פרוייקט גדול
בדיקות לכל דבר, משתדלים להוסיף ביחד עם הוספת תכונות
תיעוד (בניב מיוחד של LaTeX) — משתדלים להוסיף תוך כדי הוספת תכונות
גרסה הגדולה (למשל 2.4) — שינויי תכונות ותחביר
גרסה קטנה (למשל 2.4.2) — תיקון באגים בלבד! (חוק ברזל אחרי 2.2)
יציב אפילו ב־CVS כמעט כל הזמן
שדרוג ברצף יותר קל מקפיצות גדולות
יותר משנה בין גרסאות גדולות:
2.4 יצא בנובמבר 2004
2.2 יצא בדצמבר 2001 והרבה מקומות עדיין לא שדרגו אפילו ל־2.3
רשיון מיוחד של פייתון
מתעדכן קצת בכל גרסה
לא תאם ל־GPL בכמה גרסאות ישנות, תוקן מזמן
מאפשר שימוש מסחרי — דמוי MIT
יש בהחלט שימושים מסחריים. למשל סביבות פיתוח לפייתון (ActiveState, Wing, ועוד)
זכויות יוצרים כיום מוחזקים ע"י ה־Python Source Foundation (שקיים בשביל זה ובשביל מימון)
כל שינוי גדול צריך לעבור דרך הצעת שיפור - PEP = Python Enhancement Proposal
הצעה צריכה להסביר מה המוטיבציה, מה בדיוק השינוי המוצע, למה דווקא ככה, תגובת הקהל ותוצאה סופית
תיעוד הסיבות והדיונים הוא אולי הסיבה הכי חשובה לקיום התהליך בצורה זו
כל הצעה מובלת ע"י האדם שהציע אותה
שולחים ל־python-list, אוספים תגובות, מעדכנים ושולחים שוב...
בזמן האחרון מתחילים להשתמש בויקי לפיתוח הטקסט
ה־BDFL בסוף מחליט
עוזר אם מספקים מימוש
נדגים על PEP 308 — הכי מסעיר עד כה:
על הפרט הכי פעוט(!) עד כה: האם להוסיף אופרטור if (כמו ?: ב־C) ומה יהיה התחביר
גרר דיונים אינסופיים ב־python-list, עד כדי התייחסות כ־spam ע"י הרבה קוראים
ה־BDFL החליט שתהיה הצבעה. הצביעו 518 אנשים. התוצאות היו לא החלטיות וחידו החליט לא לממש כלום.
לצורך ההצבעה נכתב מימוש שיטת concordet בפייתון.
אחרי שהרוחות שכחו מישהו כתב תוכנית בפייתון שאספה סטטיסטיקות על הדיונים על הנושא. היו אנשים שכתבו מאות הודאות!
לפני כמה שבועות, שנתיים אחרי ההצבעה(!), חידו שלח הודאה קצרה שהוא החליט על A if COND else B.
תגובות רגועות מאוד — כמה אנשים ברכו אותו שהוא החליט משהו שאף אחד לא היה מחליט בלעדיו.
מכבדים מאוד תאימות אחורה. אם משנים, עושים את זה מאוד בהדרגה. נדגים על PEP 237:
בפייתון היה הבדל בין int שעשה overflow לבין long שגדל כרצוננו.
בשלב ראשון (2.2), שינו רק חישובים על int שבמקום overflow יומר אוטומתית ל־long. זה תואם אחורה.
בשלב שני (2.3), הוסיפו אזהרות על כמה פינות שישנו את משמעותן ב־2.4 (למשל משמעות של קבוע int שנתון בבסיס 16 והביט העליון שלו דלוק — זה בכל מקרה לא היה מוגדר היטב אבל היה מספיק קוד שהשתמש בזה ליצוג קבועי int שליליים).
בשלב השלישי (2.4), שינו את הפינות האלה.
הסיומת 123L והטיפוס long עכשיו מיותרים אבל צריכים אותם לתאימות — הם לא יעלמו עד לפייתון 3000.
גרסה היפוטטית (הידוע גם כ־3.0) שבה יוותרו על תאימות אחורה כדי לתקן הכל (כמו perl 6 אבל הרבה פחות שינויים).
בזמן האחרון חושבים שלא תהיה שבירת תאימות גדולה. הכל יהיה הדרגתי.
PEP 3000 מתאר כמה שינויים שחושבים לעשות. בכלל לא מלא - יש גם בבלוג של חידו ועוד מקומות...
בשנים האחרונות יש התפוצצות בכמות ספריות חיצוניות ולא מספיקים להכניס הכל פנימה (ואולי גם אין טעם?)
חנות הגבינה (PYPI): אינדקס של חבילות, קל להוסיף
עוד לא CPAN אבל מתקרב?
מודולים נכנסים אחרי שהם הוכיחו את עצמם כמוצלחים ועדיף על כל המתחרים
אבל אפשר גם ישירות לפתח לספריה התקנית קוד שלא היה קיים קודם
עדיפות למפתחי פייתון ובכלל למי שמציע קוד
לא חייבים PEP אבל במקרים פחות ברורים כותבים PEP
לקוד חדש כותבים PEP לפני המימוש
יפה עדיף ממכוער.
מפירש עדיף ממשתמע.
פשוט עדף ממורכב.
מורכב עדיף ממסובך.
שטוח עדיף ממקונן.
דליל עדיף מצפוף.
קריאות נחשבת.
מקרים מיוחדים לא מספיק מיוחדים כדי לשבור את הכללים.
למרות שמעשיות מנצחת את הטוהר.
שגיאות לעולם לא צריכות לעבור בשקט.
אלא אם הושטקו במפורש.
בפני דו־משמעות, תסרב לפיתוי לנחש.
צריכה להיות דרך מתבקשת אחת — ורצוי שרק אחת — לעשות את זה.
למרות שהיא אולי מתבקשת רק להולנדים.
עכשיו עדיף מאף פעם.
אבל אף פעם לעיתים קרובות עדיף מבזה הרגע.
אם קשה להסביר את המימוש, זה רעיון רע.
אם קל להסביר את המימוש, זה יכול להיות רעיון טוב.
מרחבי שמות הם רעיון גדול ומגניב — בואו נעשה יותר מהם!
— Tim Peters
>>> import this