“אני אפתח בהתוודות קצרה. לא, אני אפתח בשתיים:
א. מעולם לא קראתי את הספר.
ב. אני עייף, לא ישנתי טוב הלילה, אני זקוק לקפאין ואני צריך ללמוד את תורת הקומפילציה.
מי שממשיך לקרוא מכאן זה על אחריותו הבלעדית.
קריאת ספר זה כמו קומפילציה - יש שלושה שלבים עיקריים ( פלוס יצירת קוד תלת מעני, סביבת זמן ריצה, אופטימיזציות, יצירת קוד מכונה ועוד אופטימיזציות. אבל נתעלם מהם לבינתיים, אף על פי שהם למבחן. )
א. השלב המילולי - האם המילים בספר תקינות? את השלב הזה שני העמודים שבן דוד שלי הביא לי לקרוא עברו בהצלחה. למען ההסבר - "בן דוד שלי" נשמע כמו ילד קטן וחמוד שקורא ספרים של נוער ומטה. ובכן, הוא אב לחמש ילדות, מתכנת מחשבים מוכשר מאוד ובזמנו הפנוי לומד על עברית, פיוט ושירת ימי הביניים. הוא הביא לי לקרוא שני עמודים מסוימים שאני אגיע אליהם עוד מעט, ועליהם בעצם כל הביקורת.
ב. השלב התחבירי - האם התחביר תקין? האם המשפטיים מסודרים היטב? בשלב הזה אין משמעות לסמנטיקה, רק לתחביר. גם בשלב זה אני לא זוכר בעיות חמורות.
ג. השלב הסמנטי - השלב הזה הוא שלב מסריח. בין השאר כי לעשות אותו בצורה יעילה זה קשה, אז משתמשים ביוריסטיקות. כללי אצבע שעוזרים לנו לקבוע מה טוב ומה לא. אני הולך עכשיו להציע כלל אצבע יעיל מאוד בספרות: "אם אין לך מושג על מה אתה מדבר, פשוט תשתוק". אבל רגע, הרי אני אוהב מדע בדיוני? והרי לזרוק את השם "היפר-אטומי" ולסגור עניין, זה די לא לדעת על מה מדברים? אז אני אסייג את עצמי טיפה - זה בסדר, אבל קח בחשבון שקוראים עלולים לא לאהוב את זה. אבי למשל, אדם חכם שקורא אסימוב מדי פעם, נוהג להתעצבן על כך שהוא לא מסביר שום דבר ומתעלם מחוקי הפיזיקה. הוא גם לא אהב את הפיזיקה הבעייתית של "אני, רובוט". לעומת זאת, אני נהניתי מאוד כי זה פשוט אוסף סיפורי דיבאגינג.
מכל מקום, אז מה אני מנסה לומר לכל הרוחות? זו שאלה טובה, וקשה לי לענות עליה במצבי הנפשי, אבל אני אשתדל. כנראה התשובה האמיתית שאני מחפש תירוץ למה לא ללמוד על יצירת קוד מכונה.
אז שני העמודים שקראתי מהספר עוסקים בSQL injecction. למען אלו שזה לא אומר להם כלום - טכניקת תקיפה ישנה שאמנם שימושית היום (ראיתי עד עכשיו אתר מקצועי אחד שסבל ממנה) אך כל אתר שמכבד את עצמו ימנע אותה די בקלות. הספר נפתח בדמות כלשהי שהיא לכאורה "גאון מחשבים" בלה בלה בלה, שחושב על איך לפרוץ את האתר של העבודה של אבא שלו בלה בלה, בולשיט על האקינג, עוד קצת בולשיט, חוסר ידע במחשבים וטראח - הוא משתמש בטכניקה מדהימה - SQL injection! רעיון כל כך חדשני ומרגש, למה הוא לא עשה את זה קודם? הוא בטוח האקר מקצועי לגמרי. ( האקר זו מילה זוועתית שמוכרת טוב. כמו סייבר. למה לכל הרוחות הדגש בתואר הוא "סייבר" ולא "אבטחת מידע" או שם קצת פחות פלצני שנועד להרוויח כסף? בעעע. ) ( נזכרתי עכשיו במתקפת XSS על אתר משרד הפנים. זה משגע אותי. לא משנה. ) בן דוד שלי הראה לי את זה בתור בדיחה לאחר שדיברנו על טכניקות anti reversing בכלל ו anti dedbug בפרט. אז יאי - שני מתכנתים צוחקים על ספר ילדים שלא ראה צורך להכנס לפרטים טכניים לגבי "פריצה" ( שונא את המילה הזאת ) לאתרים. מה הבעיה? ילד ממוצע לא אמור לדעת את זה... נכוון, אבל זה לא הנקודה. פשוט לא היה לי ספר אחר לכתוב עליו, שאני לא מתכוון אולי לכתוב עליו משהו אחר בעתיד.
וכאן אני מגיע לשאלה אחרת - מתי כן צריך לדעת על מה אתה כותב? סופר שכותב על משחק מחשב, ועולם שבתוך משחק מחשב - צריך לדעת תכנות? הוא צריך לדעת על אבטחת מידע? לעניות דעתי - כן.
סופר שכותב ספר מתח, או ספר בלשים - צריך לדעת הצפנה? כאשר קראתי את הסיפור של שרלוק הולמס על הדמויות המרקדות קפץ לי לראש "צופן החלפה" וכמה שיעורים בקריפטו. האם אדם שכותב ספר צריך לדעת קריפטולוגיה? למה זה טוב?
האם כל ספר צריך להיות מושלם? האם כל ספר צריך להיות אמין?
כן ולא. ספר צריך להיות אמין, לפחות לכלל הקוראים. אבל מי הם כלל הקוראים? יש מצבים שזה ברור. בספר לעיל אני לא אמור להתעצבן על חוסר ידע טכנולוגי ( אני באמת לא מתעצבן, יותר צוחק. מעצבן אותי שחקן מספר אחת לדוגמא ) כי אני ככל הנראה לא כלל היעד. גם לספר על שרלוק הולמס אני לא קהל היעד. אני לומד קריפטוגרפיה בצורה אקדמית מסודרת, הספר לא נכתב לאנשים כאלה.
ניתן דוגמא נוספת - עולם הטבעת. לשמחתי הרבה אבא שלי לא קרא את הספר, אבל כשדיברתי איתו על הקטעים המתמטיים והפיזיקליים מחלק הוא ממש התרשם וחלק גרמו לו להעלות עשן. ניבן לכאורה יודע פיזיקה טוב, אז כאשר הוא התעלם בגסות מחוק בייס או מחוקי הכבידה, אבל שלי התעצבן. מנגד - הוא כתוב עולם טוב, הוא מאתר את הפיזיקה, הוא מסביר את המתמטיקה, האם זה לא מוגזם לבקש ממנו לכתוב משהו על רמה כל כך גבוהה?
אז אם כך? לא צריך לבקש מסופר שום דבר?
אז מניבן ביקשו לכתוב ספר המשך על ההסבר של איך העולם הזה הגיוני מבחינה פיזיקלית. הוא גם עשה את זה. אם אני אבקש מהסופרת הנ"ל לתקן את הספר ולהחליף בבאג מעניין יותר, אני כנראה לא אקבל תשובה.
אז אני אסיים כמו רמב"יסט טוב ואגיד שהדרך הנכונה היא איפשהו באמצע. אנ אצפה מסופר לדעת טוב מאוד את כל מה שהוא כותב עליו. אני אתבאס אם הוא לא, וכנראה לא אקנה עוד ספרים שלו. אני מוכן לסלוח לסופר על טעות בפיזיקה, אבל יהיה לי יותר קשה עם זו תהיה טעות חמורה במדמ"ח או מתמטיקה. סופר שידבר על חלוקה באפס ואקסיומות מתמטיות באופן שגוי, יהיה לי קשה לאהוב את הסיפור אלא אם הוא ממש טוב. מנגד, אני מחבב את שחקן מספר אחת, אף על פי הטעויות שלו. חבר שלי לא מסוגל לסבול את שחקן מספר אחת כי הוא טוען שהוא חובבני ולא מבין מספיק בשנות השמונים ובתרבות הגיקית.
הכל יחסי, הכל מורכב, ואכמ"ל.”