לפני כעשור, לא הרבה זמן יחסית, עולם התכנות אליו נולדה Go (Golang או גו) היה עולם שונה לגמרי מזה שאנו מכירים היום.
פרויקטים בפרודקשן באותן השנים נכתבו בד”כ באמצעות C++ או Java, גיטהאב עוד לא היה קיים.
רוב המחשבים בעולם לא עשו שימוש במעבדים מרובים, והמגוון כלי הפיתוח שאנו מכירים היום, היו בחיתוליהם ורק ניצנים ראשונים כמו ויז’ואל סטודיו ואקליפס שרק החלו להופיע בשוק,
ובטח שלא היו זמינים באינטרנט, בטח שלא בחינם כפי שרבים מהכלים שאתם מכירים היום.
יותר ויותר החלו לעלות מן הקהילה קולות מתוסכלים על המורכבות שלא לצורך שנזקקו לה לפיתוח שפת שרת.
המחשבים החלו להפוך מהירים, במקביל יכולות הפיתוח בשפות כמו C C++ וJAVA רק החל להדביק את הפער בין הפוטנציאל שקיים בשפות, למגבלות שהיו אז במיומנויות הפיתוח עצמן.
בנוסף, למרות שנראה כי מעבדים עם כמה ליבות הופכים פופולאריים יותר, רוב השפות הציעו מעט מאוד כדי לטפל בהרצת כמה תהליכים במקביל בצורה בטוחה.
GO למעשה פותחה בגוגל, ע”מ לתת מענה לתסכול שנוצר אצלם מהשפות הקיימות וסביבות הפיתוח שנאלצו להשתמש בהן באותה נקודת הזמן.
פיתוח קוד הפך מסובך יותר ויותר, נראה שבחירת השפה היא חלק משמעותי מהבעיה.
למעשה נאלצו לבחור בין יעילות בריצה, יעילות בקימפול, או קלות הקוד, לא היתה שפה אחת אשר הציע את שלושת אלו תחת אותה האריזה.
למשל, מפתחים שבחרו בשפות “קלות” יותר עברו בדרך כלל לשימוש בשפות עם Types דינמיים, כמו למשל פייטון או JavaScript על חשבון Java למשל, מה שמוריד הרבה הסחות דעת בזמן כתיבת הקוד (אך עלולה להוסיף הרבה כאב ראש בעת הרצתו).
לאחר בחינת הנושא, והקביעה שהפערים הנ”ל לא יכול להיות מגושרים בכלים קיימים, ולכן נדרש לפתח שפות תכנות חדשה.
גוגל למעשה לא היו היחידים להתמודד עם הבעיות האלו וגו היא רק אחת מתוך כמה שפות דומות שנולדו באותה התקופה (Rust, Elixir, Swift ועוד) באותן השנים (ועד היום) פיתוח שפות תכנות חזר להיות נושא חם ומרכזי.
GO מנסה לתת מענה לבעיות האלו ע”י יצירת שפה שתתן למפתח את ההרגשה שהוא כותב קוד בצורה עם Types דינמיים, אך באותו הזמן להעניק את הביטחון שנותנת עבודה עם Types סטטיים.
מטרתה להיות מודרנית ולתת מענה לעבודה עם חישובים בכמה ליבות וכדומה.
ועוד דבר חשוב, גו תוכננה להיות מהירה, כתיבת קובץ לא אמורה לקחת יותר מכמה שניות.
כדי לתת מענה לכל אלו, נדרשו מפתחי גוגל לתת מענה למספר קשיים, מערכת Types קלה, ריצה במקביל וניקוי אשפה, הגדרת תלויות בצורה אמינה ונוחה, ועוד.
באותה התקופה בגוגל פיתחו בעיקר עם Java וגם עם C++ והם הרגישו ששתיהן דורשות יותר מדי כתיבת קוד מסובך וחזרות מיותרות.
בניגוד למתחרים שבחרו ללכת עם שפות דינמיות יותר כמו פייטון, תוך שהם מוותרים על יעילות והבטחון שהקוד ירוץ כמצופה.
בגוגל האמינו שאפשר לייצר שפה שתאפשר למפתח את הטוב שבשני העולמות. התכנות של גו נועד לחסוך קוד מיותר.
הצהרות Types נעשות פעם אחת, ולא במספר מקומות כפי שהיה נהוג בעבר. הסינטקס נקי, ואלגנטי. שימוש בסימנים יעילים כמו := במקום שימושים מיותרים במילה new ויצירת אובייקטים חדשים בצורה מסורבלת.
ואולי הכי משמעותי, היא העובדה שאין היררכיה לTypes, אין חובה להצהיר על היחסים בין הTypes. כל אלו ואבסטרקציות מודרניות מפשטים מאוד את תהליך הפיתוח, ועדיין בלי לוותר על מורכבות התהליך.
GO היא פופולרית בימינו בעיקר למשימות בענן, אך אינה מוגבלת לתחום זה. דוגמאות לכלים פופלריים שנבנו באמצעות Go הם Docker וKubernetes אך הדוגמאות עוד רבות, והשימוש בשפה נפוץ מאוד וגוגל אף מפרסמת בצורה קבועה סיפורי הצלחה ולקוחות שמשתמשים בגו בצורה מוצלחת.
מחפש מתכנת GO מקצועי וזריז? פנה עכשיו וקבל הצעה אטרקטיבית!