קוד פתוח בבניית אתרים – גרסת הלקוח

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

תוכנות חופשיות נפוצות

תוכנות חופשיות נפוצות

אתם רוצים לבנות אתר חדש לעסק שלכם או לשדרג את האתר הקיים. האם פתרונות מבוססי קוד פתוח צופנים בחובם יתרונות של מחיר ואיכות שעולים על אלו של פתרונות מבוססי תוכנה קניינית?

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

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

איזו מסעדה יותר טובה?

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

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

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

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

  • Symphony, Kohana, Zend הכתובות ב PHP
  • Rails, Sinatra הכתובות ברובי
  • Django, Pylons הכתובות בפייתון
  • Spring הכתובה בג’אווה
  • Catalyst הכתובה בפרל
  • MVC.NET עבור טכנולוגיות .NET

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

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

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

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

למה בעצם קוד פתוח?

אם אין הבטחה למוצר טוב יותר, מה זה בעצם משנה?

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

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

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

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

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

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

לסיכום, אתעכב על שתי נקודות חשובות שעולות מן הכתוב:

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

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

Avatar

זהר ארד

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

הגב

9 תגובות על "קוד פתוח בבניית אתרים – גרסת הלקוח"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
דרופל מן
Guest
כתבה חשובה. מצטער על הטרחנות, אך דרושה הגהה – נפלו מספר טעויות הדפסה. עם רובן הצלחתי להסתדר, אך אחת נראית הפוכה לכוונתו של זהר: “שחרור עדכון בתוכנה קניינית הוא עניין שאינו מושפע משיקולי יח”צ אלא מצרכים אמיתיים” – הכוונה לתוכנה בקוד פתוח. מה שנקרא למעלה “תשתיות פיתוח” הנו למעשה ספריות, בדרך כלל. עניין עקרוני עליו אחלוק עליך זהר, הוא באשר ליכולת להמשיך לתחזק אתר שנבנה במערכת ניהול התוכן דרופל. ציטוט: “אם האתר הנוכחי שלכם כתוב בדרופל, שהיא כאמור תוכנה חופשית, אין זה אומר שמפתח אחר, שיודע דרופל אך לא מכיר את האתר, יוכל לקחת את קוד האתר הקיים ולתחזקו בקלות.… Read more »
דרופל מן
Guest

שכחתי להזדהות…

אמיר סימן טוב

רן בר-זיק
Guest

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

יותר מדי פעמים ראיתי בעלי אתרים ששבויים בידי בונה אתר שגובה מהם הון על ‘תחזוקה’ והם לא יכולים להעביר את האתר שלהם.

ג'ו
Guest

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

זהר ארד
Guest

זה כמו במוסיקה – אתה הבעלים של הדיסק אבל חברת התקליטים היא בעלת זכויות היוצרים.

יגאל
Guest

כתבה מעולה על הקוד הפתוח, תודה ! אני שמח מאוד שהזכרת את תשתית Kohana שאיתה אני עובד כבר זמן מה ( v3 ) והיא מאפשרת לנו לפתח מערכות ברמה מאוד גבוהה ובעלות מאוד נמוכה. חשוב לי גם להזכיר כי זאת תשתית HMVC,ז”א היררכי, בשונה מ-MVC רגיל.

אולי גם שווה להזכיר טכנולוגיות כמו:
node.js – המאפשרת הרצת קוד js על השרת בשונה מהדפדפן, משתמש במנוע של גוגל V8, ובעצם מעניקה ל-js יכולות של PHP.

backbone – תשתית פיתוח MVC ב-js בלבד.

three.js – מנוע גרפי בג’אווה סקריפט המאפשר עבודה קלה עם SVG, CANVAS, WebGL

רמי
Guest

מידע שימושי, תודה.

חבוב
Guest

פסקה 3, “…בפתרונות קוד פתוח כשלעצמה אינה רלבנטית לאיכות המו…”
רלוונטית*

wpDiscuz

תגיות לכתבה: