"חוזק של שפה"
לדעתי זה ביטוי מאוד בעייתי, שכן במונח הזה כלולים המון הנחות והגדרות שונות, שלעתים סותרות אחת את השניה. השפה הכי חזקה בשבילי היא השפה שאני אוכל להשתמש בה כדי לענות על בעיה מסוימת (כתיבת אפליקציה שאני זקוק לה למשל), בצורה היעילה, מהירה והנוחה ביותר, ושהביצועים של האפליקציה יהיו הטובים ביותר יחסית לזמן הפיתוח הנדרש הקטע המודגש הנ"ל מבהיר פחות או יותר את הדרישות שלי משפת התכנות/סקריפט/ווטאבר בה אני משתמש. השבוע בעבודה הייתי צריך לכתוב סקריפט כלשהו שיעשה מטלה כלשהי (משהו שקשור לאדמינסטרצית שרתים). בתחילה חשבתי לכתוב את הסקריפט ב PHP (שפת סקריפט מוצלת ורבת עצמה ללא צל של ספק). אחרי שכתבתי כמה עשרות שורות קוד, עליתי על נקודה מסוימת שבה יכלתי לתקוף את הבעיה שלשמה נדרש הסקריפט. באותו רגע (כשהבנתי שאני בכלל לא צריך DB, ושכל התקיות ממופות בעזרת nfs מה שמאוד מפשט את הבעיה במקרה הנוכחי), החלטתי לשנות כיוון ולכתוב את הסקריפט כסקריפט sh פשוט. הסקריפט החדש היה בן פחות מ 20 שורות, ולקח לכתוב אותו כמה דקות. אותו סקריפט מאוד בסיסי עשה בדיוק את מה שהייתי זקוק לו (ובעית ביצועים לא מטרידה אותי). הוא גם חסך ממני התקנה של PHP על לא מעט מכונות שעליהן אמור לרוץ הסקריפט. למה אני מספר את זה? כי זו דוגמא טובה לכך שהעצמה של השפה שהשתמשתי בה (שפת ה SHELL הבסיסית ביוניקס) הוא בכך שהיא פשוטה מאוד לשימוש, ועשתה את העבודה במקרה הנוכחי טוב יותר מסקריפט בשפה מתקדמת בהרבה... באותו אופן, כשכותבים מערכת הפעלה, מגלים שאין תחליף ל C++/C (ואסמבלי), ואילו אם אני צריך לכתוב אפליקצית גואי לניהול של נניח ראוטר אני אשתמש כנראה במשהו שרץ על כל מכונה, יתכן מאוד ו Java. כשאתה רוצה למשל לנתח עמוד אינטרנט (נניח כדי ליצור קובץ XML של החדשות שיש בו, או כדי ליצור ממנו עמוד חדש כלשהו וכו'), אתה יכול מצד אחד לכתוב את האפליקציה בשפה הכי "חזקה" שיש כלומר c או ++C ומצד שני אתה יכול לעשות את זה בדקה וחצי עם פרל. במקרים כאלה, פרל (או שפת סקריפט חזקה אחרת) תהיה החזקה יותר (או המתאימה יותר למטרה). זה לא אומר שמחר מישהו הולך לכתוב עם פרל מערכת הפעלה, שרת אינטרנט וכו'... שפות שונות למטרות שונות. בקיצור, עצמה של שפה זה משהו שקשה למדוד. כל מקרה לגופו של ענין, והכי חשוב, להתאים אם השפה הנבחרת לפתרון הנדרש. אם אנחנו נרצה קוד קריא על חשבון ביצועים אנחנו עשוים לבחור בפתרון מסוים. אם נעדיף ביצועים על חשבון כל דבר אחר (כולל זמן פיתוח) נעדיף בטח משהו אחר. אם אנחנו רוצים פשרה הגיונית של המרכיבים נבחר בטח בדבר שלישי. לא להיות פאנטים לכאן ולשם.