במה תפתחו את הסטארט-אפ הבא שלכם
מאת ירון אורנשטיין | 18 תגובותאחת ההחלטות הראשונות והחשובות ביותר שעל היזם לקחת בסטרטאפ המפתח Web Application היא: באיזו טכנולוגיה לפתח את השירות. שלוש האפשרויות הנפוצות כיום הן Net, PHP. ו- Java. חשוב לי לציין שאני כותב פוסט זה מנקודת מבטו של היזם הלא טכנולוגי, ולכן לא אצלול לפרטי הפרטים. אם יתעורר עניין, נשמח להביא מישהו אשר יכתוב על תהליך קבלת ההחלטות תוך כדי ניתוח היתרונות והחסרונות של כל טכנולוגיה מנקודת מבטו של האיש הטכני.
כאשר באים לבחור את הטכנולוגיה אשר תוביל אתכם אל עבר הגשמת החלום יש לקחת בחשבון את הנקודות הבאות:
עלות:
נושא העלות הוא בעל חשיבות עליונה והוא בא לידי ביטוי לכל אורך חיי הפיתוח והמוצר. ישנה עלות חומרה ויש עלות תוכנה, עלות פיתוח ועלות התחזוקה. התוכנה היא הנקודה המרכזית והשימוש ב-PHP וב-Java הוא חופשי בעוד השימוש ב- Net. כרוך בתשלום עבור הרשיונות לכלי הפיתוח, השרתים המקומיים ושרתי האירוח המחייבים את מערכת ההפעלה Windows. בקיצור, מדובר בהתחייבות להשקעה קבועה ב-Microsoft. בעוד PHP ו-Java אינם מחוייבים ל-Microsoft הם עדיין יכולים לעבוד על מערכת ההפעלה Windows - המקרה הקלאסי של כל העולם נגד Microsoft.
עלות נוספת היא עלות כח האדם. בעוד בארה"ב קיים היצע גבוה של מפתחי Java ו-PHP ועלותם נמוכה מעלות מפתחי ה-Net., בארץ יש בהם מחסור, אך למרות זאת עלותם של כל סוגי המפתחים זהה.
ביצועים ואבטחה:
בדרך כלל, רמת הביצועים והאבטחה הם פועל יוצא של מיומנות המפתחים. ובכל זאת, כאשר מדובר ב- "n-tier architectures" (ואני לא הולך להסביר מה זה עכשיו) מומחי התעשייה ממליצים על Java. אך שוב, מפתחים מיומנים יכולים לפתח אפליקציות מסוג זה גם בעזרת Net. ו-PHP.
בעיות אבטחה יכולות לצוץ בכל טכנולוגיה וגם פה באה לידי ביטוי מיומנותו של המפתח. ובכל זאת, ההנחה הרווחת היא שכל שירות המבוסס על Windows פחות בטוח.
את המשתמשים לא מעניינת הטכנולוגיה בה פיתחתם את השירות אלא אך ורק הצורה בה הוא מוגש ושהוא יהיה זמין, לכן לביצועים יש חשיבות גבוהה. ביצועי הטכנולוגיה עצמה הם רק אחת מהנקודות החשובות, לרמת הביצועים בה הטכנולוגיה מתקשרת עם טכנולוגיות אחרות כמו מאגרי נתונים ומערכת הקבצים יש חשיבות לא פחותה.
כח אדם:
לכח האדם יש שני פקטורים חשובים, עלות וזמינות. כמו שציינתי לפני כן, עלות העסקתם של כל סוגי המפתחים היא פלוס מינוס זהה אך הזמינות של מפתחי ה-PHP כמעט ולא קיימת בישראל. יש מעט מאוד חברות בארץ המפתחות ב-PHP וגם הן נעזרות לא מעט בשירותי Outsource בהודו או במקומות אחרים. אני חושב שזו הנקודה החשובה ביותר - לא שזה תהליך קל ומהיר לגייס מפתח Net., אך הסיכוי לגייס אחד שכזה הוא גבוה בהרבה מהסיכוי לגייס ממפתח PHP. לפי דעתי עלות טכנולוגיית ה-Net. היכולה להגיע לסכומים של כמה אלפי דולרים בשנה בטלה בשישים אל מול האפשרות להשאר ללא מפתחים זמינים - אך שוב, זו רק דעתי. אני אשמח לשמוע דעות של יזמים אחרים אשר התחבטו עם אותה הדילמה.
מה האחרים עושים:
תמיד חשוב לראות ולבחון מה נהוג אצל החברות האחרות. רוב החברות בישראל אותן אני מכיר בחרו באופציית ה-Net. אך יש לא מעט גם שמפתחות ב-PHP כמו MetaCafe ו-MyHeritage.com. כמובן שאי אפשר מבלי להזכיר את Zend, החברה הישראלית אשר עומדת מאחורי שפת ה-PHP.
ובמה משתמשים השירותים הגדולים בחו"ל ?
PHP - Flickr, Yahoo, Facebook
Net - MySpace.
Python - YouTube
בתרשים משמאל (מעודכן לאוגוסט 2006) אפשר לראות של-PHP יש נתח שוק של 34.26% מסך האתרים באינטרנט בעוד ל- Net. יש 21.4%.
כמובן שמעבר לטכנולוגיה הנבחרת יש עוד הרבה החלטות שיש לקחת בנושא ארכיטקטורת המערכת. לא מעט חברות פתחו, חלקו והציגו בשנתיים האחרונות את הארכיטקטורה עליה מבוססים השירותים שלהם. הצלחתי לרכז כאן מספר לא מבוטל של פרזנטציות, ראיונות וסרטים של החברות המובילות היום בשוק. רוב החומרים הם טכניים והמבינים מבינינו יעשו מזה מטעמים, אך גם המאותגרים טכנולוגית מבינינו יכולים להפיק מזה לא מעט - כמו למשל במקרה של פיתוח תוך כדי הצבת יעדים בכמות המשתמשים על ידי MySpace.
- שתי מצגות המתארות את הארכיטקטורה של Flickr ואת אופן השימוש ב-PHP: מצגת 1, מצגת 2
- וידאו בו מתאר Cuong Do Cuong שהיה חלק בצוות התכנון המקורי של YouTube, את הדרך מהשלבים הראשונים עד כמות המשתמשים היום: וידאו
- מאמר המתאר את כל תהליך הפיתוח והתיכנון של MySpace: מאמר
- סדרת כתבות וראיונות מ-oreilly על הדרך בה משתמשים השירותים המובילים במאגרי הנתונים: Second Life, Flickr, Craigslist, Findory and Amazon, Bloglines and Memeorandum






דבר נוסף מעניין במקרה של מייספייס הוא שהם ביצעו מיגרציה מ cold fusion ל .net, אבל השאירו חלקים נרחבים מהקוד המקורי בקולד פיוז'ן שימשיכו לרוץ.
יעני סוג של ללכת עם ולהרגיש בלי.
על זה אדובי כנראה אסירי תודה להם…( לא שמישהו עוד משתמש בפלטפורמה הזו כיום).
ויש גם את רובי און ריילס - חיית המחמד הפופולרית של הגיקים. אמנם בעיות הסקיילינג הופכות אותה לאתגר שמצריך נכונות להתמודד עם מכשולים בהמשך, אבל קלות הפיתוח וההתאמה לבניית אפליקציות ווב בכלום זמן הופכות את החיים להרבה פחות מייאשים.
לא מעט מפתחים מנוסים עם עבר עשיר ב PHP בוחרים ברובי, והגישה היא שסיוטי הסקיילינג (ראה דוגמא אצל טוויטר בזמנו עם זמן התגובה האיטי שהביא את הסעיף) הולכים ומשתפרים עם הזמן.
באותו עניין, לפייתון יצאו גם frameworks נחמדים, pylon & django שבמובן מסויים מעמידים אלטרנטיבה לרובי (אם כי לא מבחינת הקף הדוקומנטציה והמקורות ברשת).
אולי יהיה נחמד להוסיף מדגם מייצג של סטארטאפים ישראליים והפלטפורמות שנבחרו על ידם.
(אחת הסיבות לפופולריות של דוט.נט בארץ כנראה קשורה גם לעובדה שצהל עושה בה שימוש נרחב ביותר).
אחלה פוסט! אשמח לראות עוד פוסטים אינפורמטיבים שכאלה.
פוסט מעולה !
the following was posted a year ago, still a little more updated:
http://www.joelonsoftware.com/items/2006/09/01.html
אחלה פוסט,
קלעת בצורה מעולה למה שעובר בראש להרבה יזמים….
תודה רבה על הסקירה והניתוח.
החזון שלי הוא לאפשר למפתחי ה-web לעבוד בסביבה זהה בשני הצדדים (צד הלקוח וצד השרת).
היות ובצד הלקוח הם נאלצים (גם אם לא ירצו בכך) לעבוד ב-JavaScript, אנחנו שוקדים על פיתוח Server-Side-JavaScript.
אמנם עוד לא שחררנו את הקוד, והוא אפילו עדיין לא במצב לשחרר אותו, ואמנם זה לא יהיה מימוש ה-Server-Side-JavaScript הראשון בעולם, אך אני מקוה שהוא יכבוש את העולם…
לא ברור כלל על סמך מה אתה קובע שהסכוי לגייס מתכנת דוט נט "גבוה בהרבה" מלגייס מתכנת PHP.
אם הכוונה לגיוס כל מיני בוגרי קורסי מכונים למינהם, נשאלת השאלה אם אלה האנשים שאתה רוצה בסטרט אפ שלך. אני רוצה לגייס מתכנתים שנמצאים בתחום מתוך ענין ורצון לפתח מוצרים חדשים. אנשים כאלה היום באופן טבעי נמשכים לטכנולוגיות קוד פתוח.
בנוסף - ללמוד PHP (או פייתון, או רובי) היא משימה פשוטה למדי לכל מתכנת ראוי לשמו (אני יכול להעיד מנסיון אישי, כמי שלמד והכשיר מספר מתכנתים, חלקם כמעט ללא רקע קודם). למעשה, אם המתכנת שלך לא יכול או לא רוצה ללמוד אחת השפות האלה, זו סבה טובה לוותר על שירותיו מראש.
מבחינה טכנית, ברגע שאתה הולך על דוט נט אתה למעשה מוגבל לשמוש בטכנולוגיות מיקרוסופט - מערכת ההפעלה, השרת ובסיס הנתונים כולם יהיו מוצרי מיקרוסופט, שיהיו יקרים יותר ממוצרים מתחרים (לינוקס, אפאצ'י, MySQL כולם חינם כידוע) ולפי רוב הדעות גם נחותים מהם טכנולוגית.
נקודה נוספת שלא נגעת בה היא מהירות הפיתוח. שפות סקריפט כמו PHP רובי ופייתון מאפשרות בסיס קוד קטן בהרבה משפה כמו ג'אווה, וקצב שינוי מהיר הרבה יותר. בסביבת ווב שבה תגובה מהירה למשוב ממשתמשים/משקיעים/מתחרים היא קריטית, יש לתכונה הזו חשיבות לא מעטה.
מסכים עם ניר בכל מילה
ומה? רמת הביצועים והאבטחה של PHP ירודות מאלה של Java? פשוט שטויות, מצטער…
אי אפשר למצוא מתכנתים? יש כל כך הרבה מתכנתים וכל כך הרבה חברות בתחום…
לא מסכים בקשר להרבה ממה שכתוב פה… ומסכים עם ניר
יום טוב, נדב
התחלת את הכתבה עם Java ולא סימת אם סטיסטיקות לגבי java
אז אני לא מבין האם כדאי להשתמש בjava או לא ?
או כמה אנשים משתמשים בה ? וכן איזה טכנולוגיות שמה Jsf וכו ?
כתבות בתחום זה חשובות. תודה לך ולכל המגיבים!
ניר, זה לא ככה. באמת קשה לגייס מפתח PHP.
אני באמת מנסה כבר הרבה זמן. אני לא מדבר על איזה ילד שיעבוד מהבית שאיתרת באיזה פורום סודי אלה בחור רציני שישב במשרד ויעבוד על כמה פרוייקטים.
לא מול לקוחות או OUTSOURCING אלה פשוט מישהו שיתכנת אתר קיים(אפילו קצת גדול - כחול לבן) ואין זמינות לאנשים בכלל, פרסמתי בכמה אתרי דרושים וקיבלתי פחות 5 מקו"ח שגם לא מתאימים/רציניים.
אולג, הייתי מציע מספר דרכים:
1. לפרסם בפורומים של קוד פתוח (תפוז, Whatsup.co.il, IGLU) - יש שם גם לא-ילדים, ומבחינתי מתכנת שטורח לקרוא אתרים כאלה מראש מקבל נקודות זכות.
2. לחפש מתכנתים טובים בכל שפה שהיא - כאמור, מנסיון, מתכנת טוב לא יתקשה ללמוד PHP. מתכנת שלא יכול להשתלט תוך חודש על השפה הזו עדיף שיבחר מקצוע אחר, ומעסיקו כדאי שיבחר מתכנת אחר.
לא קל למצוא מתכנת טוב בכל שפה שהיא, אבל שווה להתאמץ - מתכנת באמת טוב יתן תפוקה של חמישה בינונים. בכל זאת הייתי מתעקש על PHP (או שפה דומה, או לפחות ג'אווה) ולא דוט נט. הכלים הויזואלים של דוט נט מאפשרים למתכנתים גרועים לצור משהו שעובד איכשהו, אבל בלי שהם מבינים איך הוא עובד ובלי אפשרות לשנות דברים שדורשים הבנה כלשהי (שוב, מנסיון אישי ומר :)). אם אין לך מישהו שיודע לקרוא את הקוד ולהבין מה הם עושים, אתה יכול למצוא את עצמך אחרי חצי שנה במבוי סתום, עם מוצר שאין לך יכולת לתחזק או לשפר.
(כמובן שיש גם מתכנתים מעולים שעובדים עם דוט נט. אבל את אלה קשה למצוא, כמו בכל שפה, ואז יש את השקול של נעילה לטכנולוגית מיקרוסופט בשרת ובמערכת ההפעלה)
אהלן ירון
לדעתי לא הכל שחור או לבן. אנו בחרנו בשילוב של טכנולוגיות מייקרוסופט עם טכנולגיות אחרות. שכבת הלוגיקה והמנוע נכתבים בדוט-נט בעוד ה-DB הוא MySQL אשר רץ על תחנות לינוקס. לגבי שרתי הווב עצמם, אנו עדיין בהתלבטות בין IIS לבין אפאצ'י (IIS מנצח בביצועים וידע פנימי בחברה לעומת אפאצ'י שמנצח במחיר).
השיקולים הם שילוב של כח האדם והידע הקיים בחברה (השיקול העיקרי לטעמי), לעומת מגבלות "קשיחות" כגון ביצועים או עלויות בלתי סבירות של פלטפורמות מסויימות (מישהו הזכיר MSSQL?).
מבחינת עלויות רישוי לטכנולוגיות מייקרוסופט, ניתן בעלויות סבירות של כמה מאות דולרים לרשיין את סביבת הפיתוח באופן מלא לפחות לשנה הראשונה. מי שמתעקש על עבודה עם TFS ישלם כ-2500 דולר (ניתן לחלופין להשתמש ב-SVN בחינם, מעט פחות נח מבחינת אינטגרציה לסביבת הסטודיו של מייקרוסופט).
לדעתי, אסור להתבסס על אאוטסורסינג בכל הנוגע לפיתוח האתר, במיוחד כאשר האתר הוא הביזנס העיקרי שלך. כן ניתן להעזר בחלקים מאד ספציפיים ו"סגורים".
אני מסכים שקשה מאד למצוא אנשי פיתוח מעולים (בכל סביבה שהיא). הטענה ש"ניתן ללמוד בקלות את שפות הסקריפט למינהן" אינה רלוונטית לדעתי. אתה צריך את המומחיות מהיום הראשון.
בלוג על רובי און ריילס בכתובת:
http://shmuel.ahdut.com
נשיא ותהני
פוסט זה נכתב בלשון נקבה, אך מיועד לשני המינים.
כמו שניר טען בסוף התגובה שלו, מהירות פיתוח מאוד משמעותית.
ההבדל ניכר בעיקר כשמשווים JAVA לPHP (עדיף עם framework טוב) או RUBY.
ניתן בPHP או רובי להגיע לאותן תוצאות של JAVA ,באפליקציות שהן לא גדולות - כמו שדרוש לסטארט אפ, בהרבה פחות שורות קוד.
הרבה פחות שורות קוד הן כמובן הרבה פחות זמן עבודה, בגים בד"כ קבועים לשורת קוד כלומר גם הם פוחתים בהרבה והמשך פיתוח קל יותר כי מפתח חדש שיכנס יהיו לו חיים קלים יותר.
לחברה גדולה שמתחילה פרוייקט ענק כנראה עדיף לעבוד עם JAVA. לכל השאר עדיף PHP/רובי ואולי אפילו דוט נט.
לא במקרה העולם נוטש את JAVA בעידן הווב ויש טרנד של שפות חדשות, זה פשוט חוסך המון כסף.
שלום ירון ולכל השאר
חבל שלא נעשה מחקר אמיתי ורציני בנושא.
הכתבה אומנם מתיימרת להיות מקצועית, אך היא לא ונגוע בחוסר פרטים קריטיים ובחוסר ידע Hands On בפיתוח. התגובות פה מעידות על כך.
אבל - אני אראה את הבלוג הזה כלא יודע מנסיון לעורר סיעור מוחין והתגובות ישלימו.
לדוגמא
http://www.Mono-project.com של נובל, המפותח כבר 3 שנים, הינו סביבת דוט נט בקוד פתוח ליוניקס, לינוקס ועוד, וכללל גם IDE. זה הולך ומשתפר כל הזמן, אך מהווה בהחלט אלטרנטיבה ראויה ל PHP, פייטון ודומותיהן. ניתן להתגבר על השרשראות למיקרוסופט וזו מטרתה של נובל.
אבל זו רק דוגמא אחת.
מציע שתתמקדו במה שאתם טובים ובאמת יודעים
תודה
אמממ.. העולם לא נוטש את JAVA בכלל אלה ההיפך הגמור
התמיכה באופן סורס והעושר של JAVA שניתן לממש בכלל אפליקציית ווב החוזק של אפצי והגמישות של טומקט או jboss
פריימוורקים שתומכים בכול העולם ואישתו.
והכי חשוב מבחינתי מולטי פלטפום מלא. גמישות בבניית אפליקציות קטנות עד גדולות ,ווב או אינטרפרייז שמדברות בינהם נייטיב.
(שלא לדבר על תמיכה בדיסטרביוטד קומפיוטיניג)
לאחר נסיון רב אני ממליץ בחום על JAVA.
קשה למצוא מפתחי PHP - אני דוקא מכיר חברה עם לא מעט מפתחים כאלה שלא משתמשים בהודים…
כן כן כאן בישראל