13:08
10.02.12
זהר ארד, Newsgeek 15.03.10 | 10:34

מדריך למתלבט: באיזו שפת תכנות לבחור?

פייסבוק, כמו פליקר, כתוב ברובו ב-PHP ואילו טוויטר מבוסס על רובי. מהם השיקולים שכדאי להתעכב עליהם ועל מה לא לבזבז זמן? כך תדע מה הפלטפורמה הנכונה ליישום שלך
Software | Internet

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

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

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

מהירות הפיתוח

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

ביצועים

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

פריסה על שרתי יעד

לשפות הפתוחות (שאינן מבית מיקרוסופט) יתרון בכך שהן נתמכות על-ידי מגוון שרתים ומערכות הפעלה, מה שמאפשר גמישות רבה יותר בבחירת החומרה והתוכנה שיריצו את יישומכם. מאידך, Zend ומיקרוסופט עמלו רבות כדי לספק תמיכה טובה ל-PHP על גבי שרתי IIS, כך שאם סביבת היעד מורכבת משרתי חלונות תוכלו להריץ עליהם יישומים הכתובים ב-PHP בקלות. מלבד אלה, אזכיר גם את רובי ופייתון המציעות, בנוסף לתמיכה טובה בפריסה על גבי שרת אפאצ'י, תמיכה במגוון שרתים אחרים (lighttpd, NginX, Cherokee, Unicorn) המספקים מענה מצוין לתסריטי-פריסה וצרכים טכנולוגיים. NginX ו-lighttpd, למשל, הם שרתים הנחשבים יעילים יותר מבחינת צריכת משאבי המערכת ולכן אם אתם מוגבלים לחומרה חלשה ייתכן שאלה יתאימו יותר מאפאצ'י.

תמיכה וקהילה

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

תשתיות פיתוח

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

רובי – Rails ,Sinatra
פייתון – Django, Pylons, AppEngine
PHP הוותיקה – Zend, CodeIgniter, Kohana
NET. וג'אווה – Spring 

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

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

הפוסט המקורי בניוזגיק


עוד בניוזגיק:

שיתוף קבצים חברתי
מיקרוסופט משחררת את עדכון התוכנה הראשון לחלונות 7
8 גלריות מצויינות להשראה


עוד בנושא:

Google Go: הבטחה בחיתולים
טכניקות תכנות ישנות אליהן לא תתגעגעו
שפות סקריפט חדשות שאתם חייבים להכיר

חזרה לדף הבית

עשרת הגדולים

שימושים:  דף הבית  |   RSS  |   אודות האתר  |   פרסום באתר  |   תקנון האתר
TheMarker:  העמוד הראשון  |   הייטק  |   שוק ההון  |   וול סטריט  |   בעולם  |   קריירה  |   פרסום ומדיה  |   צרכנות  |   נדל"ן  |   משפט  |   רכב  |   המדריך למשקיע  
Cafe:  ראשי  |   העמוד שלי  |   אנשים  |   קהילות  |   בלוגים  |   תמונות  |   וידאו  |   קהילת תמיכה  
עכבר העיר:  עכבר העיר  |   סרטים  |   קולנוע  |   מסעדות  |   מתכונים  |   הופעות  |   פעילויות ילדים  |   הצגות  |   לילה  |   מסיבות  |   עכבר העיר: סרטים, לילה, מסעדות  
לוח העיר:  דרושים  |   דרושים הייטק  |   נדל"ן  |   פרוייקטים חדשים  |   רכב  |   בעלי מקצוע  |   קח תן  
האתר פותח ע"יCoral.co.il