ימי הביניים של הטכנולוגיה

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

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

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

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

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

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

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

בעולם התוכנה גם נתקלנו בהרבה טכנולוגיות כאלו כמו שדיברתי עליהם הרבה מאוד בעבר (טוב נו, NeXT step דוגמא אחת, BeOS עוד דוגמא בתחום השפות תכנות יש את שפת Smalltalk וכמובן שאפשר להמשיך).
כיום במקום אנשי מקצוע, יש גדודים שלמים של "מפתחים" אשר יודעים טכנולוגיה שנמכרת ע"י חברה ספציפית כדוגמת .NET וג'אווה. לפני מתכנתי ה .NET הגיעו לנו מתכנתי VB, אשר מיקרוסופט חיסלה לטובת .NET, וכאילו שהשוק מסרב ללמוד מטעויות העבר, הוא ממשיך להשתמש בעצם בכלים האלו שאם ישתלם למיקרוסופט, אז הם מחר יעלמו מהשוק.

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

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

בנתיים נשתמש באימרה: "מי שלא לומד מההיסטוריה, עלול לחזור עליה".

11 מחשבות על “ימי הביניים של הטכנולוגיה

  1. nadavvin נדב

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

    החשמל שמגיע מחברת החשמל הוא AC.

    אני מניח שמשתמשים בDC רק איפה שצריך.

    יכולה להיות סוללה שמפיקה AC?!

  2. ארתיום

    עידו, קודם כל, בואו נתחיל באי־דיוקים הרבים בדוגמאות שלך

    מה קשר AC/DC? מה טוב ב־AC? ניסית לבנות מעגל transistor על AC? ניסית לעשות אספקת אינרגיה על DC? טוב, כל דבר הוא למטרה שלו. זה כמו להגיד קולה זה יותר טעים ממים אז למה אנחנו עדיין משתמשים במים?

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

    עכשיו לגבי טכנולוגיה: טוב זה עניין יחסי. טכנולוגיה טובה היא לא תמיד באמת טובה.

    בואו אני אסביר לך, נניח אני עומד בפני משימה לכתוב יישום. יש לי אופציות C++/C/Pascal/Java.

    אני צריך לפתור את המשימה ב־M תקציב וב־T זמן.

    מפתח Java יעלה לי X שקל בחודש, ויקח לו לפתח אותו היישום Y זמן. החומרה שתידרש להרצת יישום היא N מחשבים. זמן גיוס כוח אדם הוא t.
    מפתח C ברמה גבוהה יעלה לי 1.5X בחודש וזמן הפיתוח יהיה 2Y. החומרה הדרושה היא N/5 מחשבים. זמן גיוס של הוח אדם הוא 2t
    מפתח Pascal ברמה גבוהה יעלה לי 2X (אם אני אמצא אותו בכלל) וזמן הפיתוח יהיה 1.5Y. החומרה הדרושה היא N/5 מחשבים. זמן הגיוס הוא 10t
    מפתח C++‎ יעלה לי 2X, יהיה לי קשה למצוא טובים כאלה (אם כי לא כמו עבור Pascal) וזמן הפיתוח יהיה 1.5Y.החומרה הדרושה היא N/5 מחשבים. זמן הגיוס הוא 3t.

    בואו פתור את הבעית האופטימיזציה הפשוטה.

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

    דוגמה טובה source control. עכשיו מערכות כמו git/mercurial ואחרות (מבוזרות) הופכות ליותר ויותר פופולריות. אבל עד כמה הן טובות לארגונים בעלי תפיסה ריכוזית? אז שם, דווקא ל־svn יהיה יתרון גדול אפילו ש־git זה הדבר היום.

    טוב זה עניין יחסי — גם כשמדברים על טכנולוגיה בלבד

  3. יוחאי

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

  4. TalKo

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

  5. mkriheli

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

    פשוט לזכור שזה לא עולם של "שחור ולבן".

  6. ik_5 מאת

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

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

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

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

    ארתיום קח את הדרישה שלך ליצור מודול אפצ'י בלי שתהיה צריך להתעסק בלמידת הAPI. הצעתי לך כלי כזה, רק הוא בטכלוגויה שונה ממה שבחרת (יש בלזרוס רכיב שאפשר להתקין, והוא מספק לך יכולת להתמקד בפיתוח של מה שאתה רוצה, כאשר התוצר הוא מודול של אפצ'י, למרות שלא התעסקת עם ה API). אבל בגלל הגישה של הפרוייקט שלך, זה כמעט לא אפשרי/הגיוני עבורך להשתמש בפתרון הזה, ונשארת עם הדרישה שאתה צריך להגמיש.
    אותו הדבר אמרתי לך גם בבניית מערכת תוכן בשפה כדוגמת פסקל או ++C. אמרתי לך שיש 100% מהכלים שאתה עבדת עליהם כבר בפסקל, רק תתאים אותם לצרכים שלך, אבל הפרוייקט שלך היה עם דרישה ל ++C (בתור אמצעי לימוד עד כמה שהבנתי), ולכן בחרת בטכנולוגיה של ++C למרות שעבדת הרבה יותר קשה, והתחלת להשתמש במנועים שכתובים בפיתון כי הם היו יותר טובים וכו'… זה בתור מתכנת בודד מראה שהבחירה שלך לא היתה על עשייה נטו, אלא על התמקדות במשהו שלא בהכרח מתאים לתוצר שאתה רוצה ליצור. ועל זה היה כל הפוסט הזה על בחירה לא נכונה של טכנולוגיה.

  7. צפריר כהן

    מנוע הבערה הפנימית נכנס לשימוש כידוע לראשונה במכוניות של דמלייר ובנץ, אשר ידועות בשם של הבת של דמלייר (מרצדס).

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

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

  8. צפריר כהן

    באלקטרוניקה AC ו־DC מתנהגים בצורה שונה לחלוטין ולכן משתמשים בזה או בזה בהתאם לדרישות. אם משתמשים ב־AC לא משתמשים דווקא בהכרח בתדר שמגיע מרשת החשמל.

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

  9. אורן

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

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

  10. ארתיום

    עידו מספר הבהרות:

    1. אני הסתכלתי על הכלי ליצירת מודול apache שהצעת אבל… הוא לא עזר לי בהרבה כי זו בסה"כ binding של API של Apache ל־Pascal. אני לא מרוויח ולא מפסיד דבר אם אכתוב ב־Pascal.
    2. הבחירה שלי בפייתון הייתה די טבעית בגלל שבחרתי ברכיב ש*לא* אמור לרוץ בזמן אמת. לכן בחרתי בו ככלי "יותר קל" לפיתוח של דברים מסוימים.

    אמרתי לך שיש 100% מהכלים שאתה עבדת עליהם כבר בפסקל, רק תתאים אותם לצרכים שלך

    באמת?!!

    יש מימוש של FastCGI עבור pascal שמתוחזק? (כן יש לו bindings שמישהו כתב לספריית C. לא יודע עד כמה זה מתוחזק) יש מימוש של scgi? יש ספריה ברמה של cgicc שאני יכול חבר אליה כל API דמוי cgi שאני רוצה (ביניהם cgi/fcgi/scgi).

    בואו נעבור לדברים שאני כתבתי:

    יש מימשו של מנוע templates שכתוב ב־Pascal?
    יש מימוש של thread pool שעובד עם fcgi? האם יש מימוש של מודל עבודה prefork? האם יש מנגנון cache עם מפתחות מרובות תלוי זמן ואירועים.

    תקשיב עידו, עם כל הכבד ל־Pascal בואו לא נגזים.

    ובואו עוד נזכור דבר חשוב: אני לא יודע Pascal מספיק טוב, אתה לא יודע C++/C מספיק טוב (לפחות זה רושם שאחד הפוסטים שלך השאיר).

    לכל כלי יש מקום מישלו ולכל טכנולוגיה יש מקום משלה… אפילו אם היא דפוקה לפעמים. (ראה ערך win32api).

  11. ik_5 מאת

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

    תבדוק (נתתי לך לפרוייקט הזה קישור בעבר) את הפרוייקט הבא: http://z505.com/powtils/idx.shtml
    http://z505.com/cgi-bin/powtils/docs/1.6/idx.cgi?file=index

    בכל מקרה, זה שתזרוק שמימשת בעצמך את כל הדברים האלו, לא אומר שהם לא קיימיםץ שוב, אתה מתמקד בbinding, אני מדבר על רמות גבוהות יותר.

    ארתיום, עם כל הכובד ל ++C (ואין כבוד), הוא לא היחיד שממש דברים, אז אל תגזים ותחשוב שהוא הכלי הכי טוב. כי בד"כ הוא לא הכלי הכי מתאים לאפליקציות, כולל כתיבת CGI ! אה, ואני אחזור בפעם ה1,0000,000 גם פסקל לא מתאימה לCGI, פרל, רובי, פיתון וPHP כן מתאימות !

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s