יש בזה שאלה של טעם (כלומר, הנאה בעצם התכנות וכלים טכנולוגיים שכל מתכנת יעדף משהו אחר, על פי מה שהשם יתברך ברא אותו) ושאלה של תועלתיות (כלומר, שקלים למשכורת\מציאת עבודה בקלות)
אם זו שאלה של טעם, אני לגמרי בוחר בדוט נט מהרבה מאוד סיבות (אני אציין כמה עיקריות בבחינת ישמע חכם ויוסף לקח, נכתבו עקרונית כנגד שפות הסקריפט הנפוצות כיום ולאו דווקא php):
הקומפיילר וה-strong typing:
א. טעות כתיב, שבסקריפט צריך לחפש בדיבאג מייגע, נעצרת עוד לפני שהאתר עלה בארור של הקומפיילר.
ב. העברה של פרמטרים לפונקציות, את יודעת בדיוק איזה טייפ צריך להעביר וכמה פרטמטרים בדיוק.
ג. את תמיד יכולה להיות בטוחה כשאת מחזיקה משתנה מסוים, את מחזיקה את הtype הספציפי שלו.
ד. בשינויים בקוד שכולנו מכירים (שדה פלוני החליט לעשות שינוי השם\הtype או שהחליטו להוסיף\להוריד\לשנות פרמטרים של פונקציה מסוימת, ברגע שהתוכנה עלתה, את יכולה להיות בטוחה ב100 אחוז שהקוד שלך עבר את השינוי שהוא היה צריך לעבור - בכל המקומות, גם בקובץ שלא פתחת בשנתיים האחרונות בלי להריץ חיפושים מייגעים.
ה visual studio: אע"פ שרבים מכירים את ה visual studio code, זה עדיין לא פתיחת היכל לנוחות הכתיבה של הקוד, לרמת השלמת הקוד (auto complete), שינוי שמות של קלאסים\משתנים\properties.... שליטה נוחה מאוד ב source control, וכו' וכו'
תמיכה אמיתית - עמוקה - טובה ב OOP: עם הגדרה ברורה של class, מה פרטי, מה פומבי, מה יורש ומה אבסטרקט, מניסיון של שנים, בכתיבת קטעי קוד מסובכים, הקשיחות הזו עושה רק טוב, במידה ועובדים נכון. דוגמה טובה היא להכריח לאתחל אובייקט במצב מסוים (לדוגמה, handler שמנהל קריאות לשרת http, שהמתכנת יהיה חייב להכניס ב constructor כתובת צד שרת, זה חוסך באגים במידה ושוכחים וזמן למידה, שהרי אוטומטית מוצג מה צריך בשביל לאתחל את האוביקט הספציפי). דוגמה נוספת היא לדוגמה תמיכה במספר data bases, כאשר משאירים פונקציה abstract שמקבלת אובייקט שצריך להשמר ב db וקלאסים שיירשו, יהיו חייבים (על פי ידידנו הטוב, הקומפיילר) לממש את הפונקציה (עוד פעם, חסכנו באג)
כמובן שצריך לציין ג'נריקס (בדומה ל templates של ++C, רק מודרני...), linq, Entiity Framework, אובייקטים דינמיים (dynamic objects, יצירה של אובייקטים ללא קלאס מסודר, בדומה ל javascript), ועוד שאר דברים נפלאים שבאים מובנים בשפה.
* בשנים האחרונות, הגיע הזמן ומיקרוסופט קיבלו שכל והתחילו לפתח .net שיעבוד גם על לינוקס\מאק (מה שנקרא asp .net core), דבר שמוזיל את האחסון האתרים ומאפשר להריץ שרתים אמיתיים בדוט נט. בנוסף, הביצועים שם מדהימים, אבל בינתיים אין תזוזה של ממש בתעשייה לכיוון הטכנולוגיות האלו (מכמה שיחות שערכתי עם מנהלים כאלו ואחרים בתעשייה והצגתי להם את מה שהצגתי לכם, ובפרט לאלו שעבדו תקופה עם דוט נט, לא היתה להם ממש סיבה טובה להסביר למה לא, חבר טען שזמן הלמידה לא משתלם... טענה קשה, אם למישהו יש תשובה, אשמח)
אבלללללללל בדרך כלל בתעשייה אין כמעט עבודות בדוט נט (האמת שאני עובד בתעשייה בדוט נט, אבל זו היתה סיעתא דשמיא) מלבד עבודות ממשלתיות שעובדים המון בדוט נט, ולכן, במידה ורוצים עבודה ממשלתית (ויש תואר), ממליץ בחום, אבל במידה ורוצים לעבוד בתעשייה, אני לא הייתי ממליץ ללמוד דוטנט בשביל השקלים... אז מה למה התכוונתי? בעיקר לnode js שנכנס לשוק בצורה מדהימה או לפייטון, שנחשבת לשפת סקריפט מעולה שהרבה חברות רציניות מאוד מפתחות איתו backend.
לגביי האנגולר, בעניין הטעם, אני ממליץ בחום, לגביי השקלים, זה ברור שאנגולר עדיף מדוט נט... אבל לא ברור שזו הבחירה החכמה ביותר, מלמד פי לומר איני יודע.....
הערה אחרונה (כאילו לא כתבתי מספיק ..... ): דוט נט ואנגולר דורשים זמן לימוד ארוך יחסית (כך נדמה לי)... אבל אני חושב שמי שכבר בונה אתרים באופן מקצועי מספר שנים, יכול ללמוד לבד אנגולר ואחרי שיש ידע בסיסי, אפשר להתחיל לעבוד וללמוד תוך כדיי תנועה (כך אני עשיתי). מה שכן, בדיעבד, הייתי מסתייע בסדרת וידאו\ספר\מדריך-רציני טיפה יותר יסודי ומפורט מה tutorial המצחיק שהתחלתי איתו, זה היה מקל על תהליך הלמידה.
תגובות יתקבלו בשמחה, תגובות נאצה יתקבלו בהבנה (: