שפת Go מוסברת - למי היא מתאימה¶
Go, שנקראת גם Golang, היא אחת השפות ה"שקטות" יחסית בעולם התכנות - אין לה את ההייפ של Rust ולא את הוותק של Java, אבל היא כבשה לעצמה נתח ענק בעולם התשתיות והענן בלי רעש גדול. בואו נבין למה.
לפני שממשיכים - זה פוסט אוריינטציה כללי. הקורס הבסיסי שלנו כאן מלמד Python, לא Go.
מאיפה Go הגיעה¶
גוגל פיתחה את Go בסוף שנות האלפיים, ומאחוריה עמדו כמה מהשמות הגדולים בהיסטוריה של שפות תכנות, כולל מי שהיה מעורב בפיתוח שפת C המקורית. המטרה הייתה ברורה - ליצור שפה שמתאימה לכתיבת מערכות שרת גדולות בקנה מידה ענק, בלי הכבדות של C++ ובלי האיטיות היחסית של שפות מפורשות.
התוצאה היא שפה עם תחביר פשוט ומינימליסטי בכוונה - יש בה הרבה פחות "קישוטים" תחביריים משפות אחרות. המטרה הייתה שקוד Go יהיה קריא וברור, גם כשקוראים אותו אחרי שנים או כששייך למישהו אחר בצוות.
מה מייחד את Go¶
שני דברים בולטים. הראשון הוא זמן קומפילציה מהיר במיוחד - פרויקטים ענקיים ב-Go מתקמפלים תוך שניות, מה שהופך אותה לנוחה לעבודה בקנה מידה גדול. השני, והחשוב יותר, הוא תמיכה מובנית ומעולה בתכנות מקבילי (concurrency) - היכולת להריץ הרבה משימות "במקביל" בקלות יחסית, דרך מנגנון שנקרא goroutines.
היכולת הזאת הפכה את Go לשפה טבעית לכתיבת שרתים שצריכים לטפל באלפי בקשות בו זמנית.
איפה משתמשים ב-Go היום¶
כאן הסיפור מעניין - כלים שאתם כנראה כבר שמעתם עליהם, כמו Docker ו-Kubernetes, כתובים ב-Go. זה לא מקרי. עולם ה-DevOps וה-cloud native אימץ את Go כשפת ברירת המחדל שלו, בגלל שהיא מהירה, קלה לפריסה (מתקמפלת לקובץ הרצה אחד בלי תלויות), ומתאימה בול לכתיבת מערכות שצריכות להיות אמינות ומהירות.
מעבר לזה, הרבה חברות בונות בה שירותי backend (microservices) בגלל השילוב של ביצועים גבוהים ופשטות תחבירית.
למי Go מתאימה¶
אם אתם נמשכים לעולם ה-DevOps, תשתיות ענן, או פיתוח backend בקנה מידה גדול, Go היא בחירה מצוינת ללמידה. היא גם שפה נוחה יחסית למי שכבר מכיר שפה אחרת - התחביר שלה מינימליסטי בכוונה, כך שאין הרבה "פתעים" תחביריים ללמוד.
מצד שני, אם אתם מחפשים תחום עם עולם ויזואלי (כמו פיתוח frontend) או תחום שדורש עושר ספריות ענק לכל דבר (כמו Python בעולם ה-AI), Go לא בהכרח היעד הראשון.
נקודה חשובה למתחילים לגמרי¶
חשוב לומר - Go לרוב לא מומלצת כשפת תכנות ראשונה בכלל. היא נבנתה מתוך הנחה שהמתכנת כבר מבין עקרונות תכנות בסיסיים, ולכן היא פחות "מלמדת" את אלה בעצמה בהשוואה לשפה כמו Python. רוב מי שעובר ל-Go מגיע אליה אחרי שכבר יש לו רקע בשפה אחרת.
איך זה קשור אלינו¶
באתר הזה אנחנו לא מלמדים Go, ואני לא מתיימר להיות מומחה DevOps. אבל אם אתם רק בתחילת הדרך, ההמלצה שלי היא זהה בכל פעם - קודם לבנות בסיס תכנותי מוצק בשפה נוחה לקריאה כמו Python, ורק אחר כך לבחור שפה שנייה שמתאימה לתחום הספציפי שקורא לכם, כולל Go.
הקורס הבסיסי שלנו בפייתון הוא בדיוק נקודת ההתחלה הזו, בחינם ובעברית.
לסיכום¶
Go היא שפה שקטה אבל חזקה בעולם התשתיות והענן. היא לא מנסה להיות הכל לכולם - היא עושה דבר אחד טוב מאוד, ולכן היא כל כך מבוקשת בתחום שלה. אם DevOps או תשתיות ענן מדברים אליכם, כדאי לשים אותה על הרדאר.
בואו לדבר על מסלולי קריירה בקהילה שלנו.