|
||||
|
||||
התלבטתי במשך יומים האם להגיב להערה זו. בסוף החלטתי להגיב. ראשית, זה קצת נבזי ועלוב לתקוף אותי בעילום שם. ובמיוחד לשים מרכאות בשמי. קוראים לי ערן, לא ער"ן. ער"ן זה "עזרה ראשונה נפשית". אם אתה צריך אז נדמה לי שהמספר שלהם זה 1212. שנית, זו תגובה נוספת שמשקפת את אי-ההבחנה בין מודל למציאות. אני מציע לקוראי האייל תאוריה שמנסה להסביר את המציאות הפוליטית. כל תיאוריה מחליטה על קבועים (הנחות יסוד, מה שלא משתנה) ועל משתנים (מה שמשתנה ומשקף יחסים). אחת מהנחות היסוד של התיאוריה שאני מציע היא ש"פוליטיקאים לא טועים". אם אתה רוצה הסברים למה אני מניח את הנחת היסוד הזו עיין במרחבי האייל-ספייס. בעיקר בתגובות ל"נסיגת האיוולת" של ד"ר יובל רבינוביץ. האם הנחת היסוד היא נכונה או לא? לא יודע, כנראה שלא לגמרי, אבל, בניגוד לדעה הרווחת, היא כנראה לא כל-כך רחוקה מהאמת. אני מניח שגם אתה *רוב* היום לא טועה, במיוחד טעויות גסות וטפשיות. מדוע אתה מניח שאצל פוליטיקאים זה אחרת? כיוון שהם לא עושים מה *שאתה* חושב שנכון לעשות? מי מבין יותר בפוליטיקה, אתה או הם שעוסקים בזה בפול-טיים? לכן, איני מתכוון להסביר למה דווקא א-סנע לא טעה אלא להניח מראש שהוא לא טעה והתכוון לומר את מה שאמר (וייתכן שלא הבנת את משמעות האמירה עדיין, כיוון שלא ממש ניתחת אותה ברצינות) ולהסיק ממנה (וממה שעומד על הפרק) מהן (כביכול) מטרותיו. זה היה תקציר הדברים ב(כמעט )קיצור נמרץ. אתה כמובן מוזמן להציע תיאוריה אלטרנטיבית משלך, תוך ביסוס פילוסופי מאחוריה והסבר הרציונל שעומד בבסיסה, וכמו שאמרו הגששים "את הבן שלך תשלח למכון ויצמן, הבן שלי ילך למכון שמשון ונראה מי יגיע ראשון". המצב הוא שרוב ההסברים האחרים, במיוחד ההסברים העממים, מחוסרי ביסוס ונובעים מתחושותיו של המסביר כלפי המוסבר (הפוליטיקאים). אם הפוליטיקאי עושה מה שאתה רוצה אז הוא חכם, ואם לא אז הוא אידיוט. כמה חבל שתיאוריה כזו היא תלויית נקודת השקפה ולכן אינה אובייקטיבית ובטח שאינה רצינית. |
|
||||
|
||||
מקצועי הוא תכנות, אני עוסקת בו מספר שנים, ולא תאמין כמה טעויות גסות וטפשיות אני עושה. אני לא בטוחה בקשר לפוליטיקאים, אבל אל תפתח תאוריות המתבססות על כך שמתכנתים לא טועים. |
|
||||
|
||||
גם את רוצה שני מאמרים על טעות? אתם לא לומדים. בקרוב גם בתיבת הדואר שלך. |
|
||||
|
||||
גם אני, גם אני. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
לא יותר אפקטיבי לפרסם את המאמר באייל? |
|
||||
|
||||
המאמרים אינם פרי-עטי אלא של פרופ' עודד בלבן מאוניברסיטת חיפה (יתכן ואחד מהם הוא של פרופ' גיורא הון) והם כבר הופיעו בדפוס. קיבלתי רשות זה מכבר מעודד להשתמש בהם כאוות נפשי. יתרה מזאת, אני חושב שהם לא בהכרח מתאימים לפורמט הפופולרי של האייל. |
|
||||
|
||||
אבל הרי את טוענת את המובן, או המוכח מאליו. לא ניתן לכתוב תוכנה שאין בה טעויות וזה מוכח מתמטית על פי מכונת טיורינג. |
|
||||
|
||||
מה ש"מוכח מתמטית" הוא שישנן בעיות שאינן ניתנות להכרעה באמצעות חישוב, ודוגמא קלאסית היא "בעיית העצירה". דווקא השאלה של כתיבת תוכנה ש"אין בה טעויות" היא שאלה העומדת באחת החזיתות של המחקר במדעי-המחשב, בתחום שנקרא verification ("וידוא", כמדומני) ועוסק ב"הוכחה מתמטית של נכונותן של תכניות מחשב". בהקשר הזה, "טעות" היא חוסר-התאמה בין התנהגות התכנית לבין אפיון מדויק של האופן בו היא אמורה להתנהג, כך ששוב - לא ניתן לדבר על "תוכנה שאין בה טעויות", משום שכל תוכנה היא כזו (נטולת-טעויות) ביחס לאיזשהו אפיון (היא עצמה). סביר שהטעויות שחן עושה אכן מתבטאות בחריגה מאיזשהו אפיון של התכניות שהיא רוצה לכתוב, אולם אלה טעויות של חן (ולא של התוכנה). |
|
||||
|
||||
מה היה בדיוק הקיצור לתשובה נכונה אך לא רלוונטית? האם אתה לא מבלבל עם הטסט של טיורינג לבינה מלאכותית? בקורס החישוביות שלקחתי בזמנו הראנו באמצעות מודל מכונת טיורינג שאי אפשר לכתוב תוכנה חופשית מבאגים. הסתכלות על הטעות התיכנותית מצד האפיון לא שולל את קיום הבאג כי צריך להכניס למשוואה לא רק את האופן בו היא אמורה להתנהג אלא גם את אופן השימוש. אינני זוכר את ההוכחה (בכ"ז עברו אי אילו שנים) אבל חלק מההסבר היה חוסר האפשרות לבדיקת כל הצירופים האפשריים. |
|
||||
|
||||
חשבתי שבתגובתך המקורית רמזת לבעיית העצירה. בתגובתי שלי התייחסתי לבעיה זו, הנוגעת ליסודות התאוריה של מדעי המחשב ולחישוביות, ולא למבחן-טיורינג, שהוא עניין פילוסופי בהרבה (מלבד ההצלחה המעשית בתחום, המופגנת בימים אלה ע"י אפופידס 1.0b). תיאלץ להסביר שוב, אם לא את ההוכחה, אז לפחות מה היא מוכיחה (בפרט, להגדיר "באג"). האפיון המלא של תוכנית הוא פונקציה על קבוצת הקלטים לתוך קבוצת הפלטים. למשל: ניתן בהחלט לכתוב תוכנית נטולת-באגים המקבלת כקלט מספר חיובי ושלם קטן מ-100 ומחזירה כפלט את אותו מספר. אנא, נסה להסביר למה התכוונת. אם מדובר בקבוצת קלטים אינסופית, עדיין ישנן דרכים לכתוב תכניות ולהוכיח את נכונותן, ולעיסוק בכך התייחסתי בתגובה הקודמת. |
|
||||
|
||||
אני אנסה להזכר או אולי המחברות הישנות נמצאות בבויידם של הורי .יכול להיות שמדובר בבעית העצירה. האם יש לך איזה מראה מקום לרענון הזכרון? |
|
||||
|
||||
|
||||
|
||||
כבר שנים שכמעט אינני עוסק בתכנות, ומעולם לא למדתי זאת בצורה מסודרת, אבל מובן שניתן לכתוב תוכנית נקיה מקוצים. הדבר תלוי במורכבות התוכנה. אפילו כיום אני מסוגל לכתוב תוכנית, שבכל פעם שתופעל תצליח לחשב כמה זה 1+1 ללא שום באג. |
|
||||
|
||||
int main(){return 42;} תוכנה זו אף פעם לא טועה, ואף עושה מעבר למצופה.
|
|
||||
|
||||
אתר זה מתאר את פילוסופיית התיכנות שלי עד לפני שלוש שנים (למרות שאין לי קשר לאתר): נסי ותרוויחי (דמי אבטלה). אגב, בעניין טעויות, היום הייתי אמור להציג לפני קהל גדול גירסא חדשה ומרשימה של תוכנה אותה פיתחתי (ושתוצג בשבוע הבא בתפוח הגדול), עבור סטארט-אפ בו אני קשור. הכנסתי בה מגוון שיפורים, עיצבתי את הUI, בדקתי אותה שוב ושוב, התרחצתי, לקחתי שני עותקים, אפילו הגעתי בזמן - עם הגירסא הישנה. זה יחכה למחר. |
|
||||
|
||||
ראיתי וחוויתי כאלה בכמות שתספיק לחיים שלמים של כמה וכמה תוכניתנים |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |