שלילה מוחלטת של טכנולוגיות

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

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

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

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

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

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

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

תמונת Twitter

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

תמונת Facebook

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

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

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

מתחבר ל-%s