@רחמים
@avr416
אבל זה לא בגלל שמי שפיתח את השפה היה טיפש...
אני אמרתי שהיה טיפש?!
אמרתי שאני לא מבין מדוע הצהרה משתמעת הופכת למשתנה גלובלי ולא למשתנה באותו סקופ, ועד כעת לא הצלחתי להבין, גם אחרי ההסבר של מאט.
באופן כללי בכל שפות התיכנות משתנה גלובלי זה דבר שעושים אותו לעיתים רחוקות אחרי שיקול דעת מעמיק, וזה בדיוק להיפך מהצהרה משתמעת שנעשית בכתיבת קוד קלילה, והרבה פעמים סתם בגלל טעות הקלדה.
לא אמרת שהיה טיפש, אבל אתה מנסה להכניס את העקרונות של C# לJS, אתה צריך להפנים שזה ראש הפוך לגמרי.
C# אומרת: אני לא סומכת על המתכנת. לכן אני דורשת שהוא יצהיר בדיוק מה הפונקציה מחזירה, מה סוג הנתונים, צריך להגדיר קלאסים וכו' וכו'. יש בזה יתרון מאד גדול, ככה כבר בזמן ההידור של התוכנית - המהדר מתריע לך על שגיאות והקוד לא יתקמפל בגלל ששכחת להחזיר ערך מפונקציה או שהשתמשת בטיפוס לא מתאים וכו'.
ככה גם הקוד יותר ברור לאנשים אחרים שלא כתבו אותו - הם מבינים מה הולך, מה אתה מצפה לקבל, איזה נתונים הפונקציה מחזירה וכן על זה הדרך.
JS לעומת זאת היא שפה מאד דינמית. היא בונה עליך המתכנת שאתה איש גדול, אתה לא עושה שטויות, ואתה בודק את הקוד שלך ב7 נפות, ולכן היא נותנת לך חופש עצום לעשות ככל העולה על רוחך. אתה בונה פונקציה ולא צריך להגדיר האם היא VOID או מחזירה ערך. כל פונקציה תחזיר undefinfd אא"כ תחזיר במפורש ערך אחר. אתה לא צריך להגדיר קלאסים וכו'. אתה יכול ליצור אובייקטים ולשנות אותם ככל העולה על רוחך לאחר מכן (להוסיף מאפיינים, להוריד וכו' - דבר שלא יעלה על הדעת בC#). בקיצר - JS אומרת: תהיה ילד גדול, ותאכל את השטויות שבישלת בעצמך! מאידך אם אתה יודע מה אתה עושה - היא נותנת לך הרבה הרבה כח!! וזה לענ"ד הייתרון הגדול שלה, שיש בו גם סיכון גדול.
בJS קשה מאד למצוא שגיאות שבC# לא היית מצליח לעשות אותם בכלל...
פשוט אתה צריך להתרגל לראש הזה, ולא לנסות לחשוב מדוע הכסא איננו שולחן
זה 2 דברים שונים לגמרי..
פורסם במקור בפורום CODE613 ב24/08/2017 20:07 (+03:00)