חוק וירת

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

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

הסבר[עריכת קוד מקור | עריכה]

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

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

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

חוק גייטס[עריכת קוד מקור | עריכה]

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

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

ראו גם[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  • The School of Niklaus Wirth: The Art of Simplicity by László Böszörményi, Jürg Gutknecht, and Gustav Pomberger (Editors), Morgan Kaufmann Publishers, 2000, ISBN 1-55860-723-4.