למידת שפה חדשה
שלום,
אני מהנדס תוכנה כבר כ-9 שנים, התחלתי בתור מפתח net. כמה שנים (עם נגיעה גם javascript אך לא ברמות הגבוהות של protoypes וכו׳) ולאחר מכן עברתי לפיתוח Backend ב-Java. כיום מפתח ב-Scala בעבודה ושוקל ללמוד באופן אישי שפה חדשה (עם הפריימוורקים הרלוונטים, האקו-סיסטם וכו׳). c וc++ למדתי באוניברסיטה. אני רוצה שפה שיש לה ביקוש בשוק, שלא נראה שהולכת לשום מקום ושתעזור לי בעתיד (מעוניין להמשיך בתחום הbackend), ובחברות יחסית חדשניות ולא בשלות לגמרי עדיין (אך לא מדבר על חברות של 3 אנשים). אני מתלבט בין:
אז אני מחפש עצה מכם - אז מה אתם אומרים?
שלום,
אני מהנדס תוכנה כבר כ-9 שנים, התחלתי בתור מפתח net. כמה שנים (עם נגיעה גם javascript אך לא ברמות הגבוהות של protoypes וכו׳) ולאחר מכן עברתי לפיתוח Backend ב-Java. כיום מפתח ב-Scala בעבודה ושוקל ללמוד באופן אישי שפה חדשה (עם הפריימוורקים הרלוונטים, האקו-סיסטם וכו׳). c וc++ למדתי באוניברסיטה. אני רוצה שפה שיש לה ביקוש בשוק, שלא נראה שהולכת לשום מקום ושתעזור לי בעתיד (מעוניין להמשיך בתחום הbackend), ובחברות יחסית חדשניות ולא בשלות לגמרי עדיין (אך לא מדבר על חברות של 3 אנשים). אני מתלבט בין:
- Python - אני יודע שמאוד פופולרית היום (בעיקר בגלל תחום הML שאישית פחות מדבר אליי), אך היא שפה דינמית ולא יודע אם מיועדת לפיתוח מערכות שלמות או רק ל״משימות מיוחדות״ בעיקר.
- Go - שפה ביעילות גבוהה ותחום חם היום אך מנסה להבין אם מודל הירושה שם (composition בעצם, ששונה ממה שאני רגיל אליו) הוא אויב או חבר... וגם כל הreference ו-dereference די מרתיע אותי (די הספיק לי מזה באוניברסיטה...)
- Node.js (פחות שפה, יותר פלטפורמה) - גם תחום חם היום, אך העובדה שזה single-threaded ומודל העבודה של הcallbacks נראה לי גורם לקוד מסורבל (יחסית) ויש לה גם את החסרונות של היותה שפה דינמית (וגם את היתרונות מן הסתם). לא הכי בקיא בהתקדמויות השפה אבל כל הprototyping הזה נראה לי לא הכי נוח (הבנתי שבגרסה האחרונה כבר יש תמיכה יותר טובה בשפה לclasses וכו׳). אפשרות נוספת היא שימוש ב-TypeScript אך לא יודע כמה נפוץ עדיין.
- Kotlin - עולה מאוד בפופולריות בזמן האחרון, בעיקר בזכות הדחיפה של גוגל. שפה נחמדה, שבעצם מנסה להוריד את הבעיות של Java ומוסיפה קצת עליה, ולא מתרחקת ממנה יותר מידי כמו Scala. אם זאת, השאלה אם שווה לי להשקיע בעוד שפה לjvm בהתחשב שאת האקו-סיסטם אני כבר מכיר די טוב (מעבודה בJava וScala), וגם נושא שינוי מדיניות העדכונים והרישיונות של oracle שעדיין לא ברור ולא יודע כיצד ישפיע.
אז אני מחפש עצה מכם - אז מה אתם אומרים?