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