لغة Go (وتُعرف أيضًا باسم Golang) هي لغة برمجة حديثة، مفتوحة المصدر، وتعمل على جميع أنظمة التشغيل تقريبًا. تعتمد على الترجمة إلى لغة الآلة (Compiled)، وتتميز بالسرعة العالية والبساطة في الوقت نفسه. صُمّمت داخل شركة جوجل على يد فريق من المهندسين المخضرمين عام 2007، وتمّ إطلاقها للعامة عام 2009، بهدف بناء لغة سهلة التعلّم تجمع بين أداء لغات مثل C/C++ وبساطة لغات مثل Python.
في هذا الدرس التعليمي سنتعرف على لغة Go من حيث: ما هي؟ وفيم تُستخدم؟ ولماذا تعدّ خيارًا ممتازًا للمبتدئين والمحترفين على حدٍ سواء.
ما هي لغة Go؟
Go لغة متعددة الأغراض صممت لتكون واضحة وسريعة وآمنة، تعتمد على التحديد الساكن للأنواع (Static Typing)، وتحتوي على نظام إدارة ذاكرة تلقائي (Garbage Collector). تتميز بدعمها القوي لـ Concurrency عبر ما يُسمّى Goroutines والـ Channels، مما يجعلها خيارًا مثاليًا لبناء الأنظمة التي تتعامل مع أعداد كبيرة من الطلبات في وقت واحد.
فيم تُستخدم لغة Go؟
تستخدم لغة Go في بناء خوادم الويب والـ APIs، وفي تطوير تطبيقات السحابة (Cloud Native)، وفي تصميم أدوات سطر الأوامر (CLI Tools)، وأدوات DevOps الشهيرة مثل Docker و Kubernetes التي كُتبت بـ Go بالفعل، إضافة إلى برامج الشبكات وأنظمة المعالجة المتوزّعة.
لماذا تتعلم Go؟
تتميز Go بأنها سهلة التعلم حتى لمن لم يسبق له تعلّم برمجة من قبل، وتتمتع بسرعة عالية في وقت الترجمة ووقت التنفيذ معًا. كما تدعم تنفيذ عدة مهام في وقت واحد بسهولة شديدة، وتوفّر إدارة تلقائية للذاكرة، وتعمل على ويندوز وماك ولينكس وأجهزة Raspberry Pi وغيرها. وأخيرًا، الطلب على مبرمجي Go في سوق العمل في تزايد مستمر.
مقارنة بين Go ولغات أخرى
بالمقارنة مع Python، تتفوق Go في سرعة التنفيذ لأنها لغة مترجمة، في حين أن Python لغة مُفسّرة (Interpreted) وتستخدم تحديدًا ديناميكيًا للأنواع. أما بالمقارنة مع C++، فتتميز Go بسرعة الترجمة ووجود إدارة تلقائية للذاكرة، إضافة إلى بساطة بنيتها حيث لا تدعم الوراثة ولا الأصناف (Classes) بالمعنى المعروف في لغات OOP، وإنما تعتمد على الـ Structs والـ Interfaces.
مثال بسيط لبرنامج Go
أبسط برنامج يمكن كتابته بلغة Go هو برنامج يطبع عبارة على الشاشة، ويبدو كالتالي:
package main
import "fmt"
func main() {
fmt.Println("مرحبًا بالعالم من لغة Go!")
}
في هذا المثال، السطر package main يحدّد أن البرنامج تنفيذي (وليس مكتبة)، بينما import يُستخدم لاستدعاء حزمة fmt المسئولة عن الإدخال والإخراج. الدالة main هي نقطة البداية لأي برنامج Go، وتحتوي على الأوامر التي ستُنفّذ.
ماذا ستتعلم في هذه السلسلة؟
سنبدأ في الدروس القادمة بتغطية أساسيات Go بشكل عملي: تركيب اللغة، والتعليقات، والمتغيرات، والثوابت، وأنواع البيانات، والمصفوفات، والـ Slices، والمعاملات، وجمل الشروط، وجملة switch، والحلقات، والدوال، والـ Structs، والـ Maps. تابعوا معنا في الدروس القادمة!