צטט: גנאדי 2009-07-23 23:59:52
האם ולמה שפות התכנות מזדקנות?
האם יש שפת תכנות שתהיה תמיד רלוונטית במיינסטרים? בינתיים העבר מראה שזה לא המצב.
שפת הסף משמשת רק בנישות, C ו-C++ שימושיות גם הן בעיקר בסיטואציות ספציפיות. חלק מהאוניברסיטאות כבר לא מלמדות אותן כקורס חובה (וחבל, אבל זו שיחה נפרדת).
נשארנו בגדול עם C# (ווראיציות דוט נטיות אחרות) ו-Java. ל-Java ולסאן יש בעיות משלה - סאן משכה את השפה והספריות הנלוות לכיוון ה-enterprise והזניחה הרבה מהאיזורים האחרים. Java 7 יהיה הרבה פחות מלהיב ממה שהייתי מצפה (למשל ל-closures), אבל כל הדיון סביבם נסוב על כוח מול סיבוך השפה והסביבה. סביבת .net ו-C# נראות מתפתחות בקצב טוב ו-features חדשים נוספים בכל גרסה (אני במיוחד אוהב את yield return ואת המקבילה ב-linq ל-closures). אבל גם ל-C# יש בעיות משלה. הסינטקס שלה כבר מורכב ואחרי גרסה 4 כבר יהיה קשה לסבך אותה עוד יותר.
האם דור השפות הזה מיצא את עצמו? האם אתם מרגישים שבשפות האלה עוד יש מה לחדש?
או שאני טועה לחלוטין לגבי C/C++?
לדעתי כדי לענות על השאלה הזאת צריך להבין מה זה שפה ולמה היא משמשת ואז להבין מתי שפה רלוונטית ומתי לא.
לדעתי חלק מההגדרה של שפה זה:
כלי להרצת תוכנה על גבי סביבה מסוימת (חומרה + מערכת הפעלה) למטרה מסוימת (תשתיות, זמן אמת, רשת) , שפה גם ממשת תפיסה תיכנותית.
לדעתי שפה נהית פחות רלוונטית ברגע שאחד משלושת הגורמים משתנה ואז פחות ופחות משתמשים בה.
1. סביבה - JAVA רלוונטית גם בגלל שהיא מצליחה לרוץ בצורה כמעט זהה (תוך תשלום מחיר) על רוב הסביבות היום, #C יודעת לרוץ אומנם רק על מערכות הפעלה של מיקרוסופט אבל כרגע הם הכי נפוצות. בהינתן שינוים בפרמטר הזה משתנה הרלונטיות של שפה - בהנחה (שנראת די הזויה כרגע) שמערכות הפעלה של מיקרוספט יתפסו רק חלק קטן מהשוק #C תהיה פחות רלוונטית לדוגמה. מצד שני אם ברוב האפליקציות הביצועים יהיו הדבר הכי חשוב + נתח השוק של מיקרוסופט יגדל JAVA תהיה פחות רלוונטית.
2. מטרה - הכלים ששפה מעמידה לרשות המתכנת הם בד"כ מוכוונים למטרה מסוימת ברגע שסוגי האפליקציות משתנות הכלים של השפה פחות רלוונטים - למשל ברגע שיש הרבה אפליקציות WEB דוט נט ו JAVA שיש להם כלים טובים לנושא יותר רלוונטיות.
ניתן תמיד להוסיף כלים נוספים וסיפריות נוספות בגירסה הבאה אבל סך הכל זה אפשרות מוגבלת ויש גבול ומחיר לזה.
3. תפיסה תיכנותית - מאחורי כל שפה ישנה תפיסה תיכנותית ברגע שהתפיסה נהית פחות רלוונטית השפה פחות רלוונטית.
לדוגמה ישנם שפות כמו JAVA שבהם האחריות על זיכרון היא של השפה ואילו ב C האחריות היא של המתכנת.
תפיסה נוספת היא העברת ושינוי אוביקטים למתודות ו CLASSES אחריםברת המצביע) כך שכל - ב C למשל המתכנת בוחר אם להעביר את אוביקט ע"י מצביע או להעביר העתק של האוביקט. בJAVA תמיד מעובר האוביקט (ע"י העשינוי במתודה שקראנו בה ישתקף גם במי שקרא לה. לפי מה שאני יודע (ואני מקווה שאני לא טועה) ב #C מועבר העתק של האוביקט ושינוי של האוביקטים שהועברו לא משפיע על הקורא.
הוספת תגובה על "האם ולמה שפות התכנות מזדקנות?"
נא להתחבר כדי להגיב.
התחברות או הרשמה