ההפך ממגדל בבל

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

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

לזירה נכנסו שפות צעירות, ביניהן ג'אווה (Java) של סאן, ASP של מיקרוסופט ופרל (Perl) ו-PHP העצמאיות. בעולם מערכות הווב, אלו השמות החזקים היום, לא פחות מ"פורטרן" בשנות ה-60 וה-70.

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

הזנת הביטוי "Perl vs. PHP" (או להיפך) במנוע החיפוש Google, מעלה לא פחות מ-144 אלף דפי רשת העוסקים - או מדווחים - על המאבק האמוציונלי בין שתי הקהילות. זאת, למרות ששתיהן הן הקרובות ביותר באופיין מבין השפות החדשות, ולמעשה PHP אף נגזרה מתוך פרל.

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

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

"גלובס": יהיה נכון להגיד שפרל תתאים יותר מ-PHP ככל שהמערכת גדולה יותר?

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

PHP נודעת בפשטות שלה. זה לא מהווה מעצור בהתפתחות השפה?

"מה זה פשטות? זה לא שאין אפשרות לעשות דברים מורכבים, אלא שכדי לעשות דברים פשוטים לא צריך לבנות גשר גדול. בג'אווה, למשל, גם כדי לעשות את הדבר הכי פשוט, אתה צריך להגדיר המון דברים. ב-PHP לא. אבל אם אתה רוצה לבנות מערכת גדולה יותר, יש בשפה את החוזק שמספקות ההרחבות השונות ואת היכולת לעבוד בסביבת Object Oriented.

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

"גלובס": במה שתי השפות שונות משפות סגורות וקנייניות?

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

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

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

"גלובס": העובדה שאלו שפות של קהילייה תורמת ליריבות?

"אלו שפות שאנשים חיים אותן. מי שעובד בהן, עובד בהן הרבה. בנוסף, בעולם הקוד הפתוח יש כמעט 'אמונה'. זה יותר מכלי עבודה. אנשים מאמינים בערכים האלו. אני בטוח שגם החבר'ה של PHP וגם החבר'ה של פרל, מתמקדים הרבה יותר בחזית מול ASP של מיקרוסופט. וברגע שיש את האנרגיה הזאת, של 'PHP יותר טובה ממיקרוסופט', זה משליך גם ל'PHP יותר טובה מפרל'".

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

ובכל זאת?

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

האופי הקהילתי והפתוח של שתי השפות תורם לוויכוח?

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

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

ומה יתרון המערכת החופשית?

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

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

ניקח את הדוגמה שלך - איך קהיליית הפרל תורמת לך ואיך אתה תורם בחזרה?

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

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

ולטובת מי שמעוניין להצטרף לאחד הצדדים, פרטים על הקהילות השונות ניתן למצוא באתרים www.php.net ו-www.perl.org.il.

מאיפה באו השפות

שפת Practical Extraction and Report) Perl Language) נוצרה על ידי לארי וול (Wall) ב-1987. כוחה העיקרי הוא בביצוע מניפולציות על טקסט, ולפיכך גם בכריית מידע מתוך מאגרי מסיביים. השפה נודעת בתחביר לא שגרתי, המאפשר יצירתיות רבה אך גם מקשה על הלימוד והתחזוקה. שפת פרל היא תוכנה חופשית, המנוהלת על ידי קהיליית המשתמשים ומופצת תחת הרשיונות GPL ו-Artistic License.

שפת PHP (במקור Personal Home Page tools ולאחר מכן Hypertext Preprocessor) עוצבה במקור על ידי ראסמוס לרדורף (Lerdorf) ב-1994. שלוש שנים מאוחר יותר היא עוצבה מחדש למתכונתה הנוכחית, החזקה יותר, על ידי זאב סורסקי ואנדי גוטמן, שלימים הקימו (עם דורון גרסטל) את זנד טכנולוגיות. לטוב ולרע, השפה ידועה בפשטותה היחסית. שפת PHP היא תוכנה חופשית שמאחוריה קהילייה, אך זנד היא הכוח העיקרי בה. השפה מופצת תחת הרשיון PHP License, שחובר ברוח BSD License.