مقدمة إلى Go: لماذا هذه اللغة مهمة في عام 2025
Go (أو Golang) هي لغة برمجة مترجمة، شديدة الثبات، طورتها شركة Google في عام 2009. في عام 2025، تحتل Go مكانة قوية ضمن أفضل 10 لغات وفقًا لـ TIOBE و Stack Overflow. غالبًا ما يتم اختيارها لبناء خدمات الويب عالية التحميل، والهندسة المعمارية القائمة على الخدمات المصغرة، والتطبيقات السحابية، وأدوات DevOps.
لماذا يجب أن تبدأ في تعلم Go الآن؟ الأسباب الرئيسية هي بساطة التركيب (يشبه لغة C المبسطة)، والدعم المدمج للتوازي (goroutines)، وسرعة الترجمة المذهلة. للمطورين الذين يرغبون في الانتقال من Python أو JavaScript إلى لغات أكثر أداءً، Go هي "اللغة الثانية" المثالية.
تثبيت وتهيئة بيئة Go
قبل كتابة أول كود، تحتاج إلى تثبيت مترجم Go. في عام 2025، أصبحت العملية أسهل من أي وقت مضى.
الخطوة 1: التحميل والتثبيت
انتقل إلى الموقع الرسمي go.dev/dl وقم بتحميل برنامج التثبيت لنظام التشغيل الخاص بك (Windows، macOS، Linux).
- Windows: قم بتشغيل ملف MSI واتبع التعليمات. سيتم تثبيت Go في
C:\\Program Files\\Go. - macOS: استخدم Homebrew:
brew install go. - Linux: قم بتحميل الأرشيف وفك ضغطه إلى
/usr/local:tar -C /usr/local -xzf go1.22.*.linux-amd64.tar.gz.
بعد التثبيت، تحقق من الإصدار في الطرفية:
go versionيجب أن ترى شيئًا مثل go version go1.22.2 linux/amd64.
الخطوة 2: إعداد GOPATH والوحدات النمطية
يستخدم Go الحديث نظام الوحدات النمطية. لم تعد بحاجة إلى إعداد GOPATH يدويًا. فقط قم بإنشاء مجلد للمشروع وقم بتهيئة الوحدة النمطية:
mkdir my-first-go-projectcd my-first-go-projectgo mod init example.com/my-first-go-projectسيتم إنشاء ملف go.mod تلقائيًا - وهو مشابه لـ package.json أو requirements.txt.
أساسيات تركيب Go: الخطوات الأولى
Go هي لغة ذات تركيب بسيط. لا تحتوي على كلاسات (تُستخدم الهياكل)، ولا تحتوي على وراثة (يُستخدم التكوين)، ولا تحتوي على استثناءات (تُستخدم قيم الإرجاع المتعددة).
برنامجك الأول "Hello, World!"
قم بإنشاء ملف main.go واكتب:
package main
import "fmt"
func main() { fmt.Println("مرحبًا، عالم Go في 2025!")}قم بتشغيل البرنامج باستخدام الأمر:
go run main.goالمتغيرات وأنواع البيانات
يدعم Go الكتابة الثابتة. يتم تعريف المتغيرات بطريقتين:
// تعريف كاملvar name string = "GoLang"
// صيغة مختصرة (داخل الدوال فقط)age := 2025
fmt.Println(name, age)الأنواع الأساسية: int، float64، string، bool، بالإضافة إلى الأنواع المركبة: array، slice، map، struct.
العبارات الشرطية والحلقات
في Go لا يوجد while - يُستخدم فقط for بأشكال مختلفة:
// for تقليديfor i := 0; i < 5; i++ { fmt.Println(i)}
// مشابه لـ whilesum := 1for sum < 100 { sum += sum}
// حلقة لا نهائيةfor { // break للخروج}العبارة الشرطية if لا تتطلب أقواسًا دائرية، ولكن الأقواس المتعرجة إلزامية:
if age >= 18 { fmt.Println("بالغ")} else { fmt.Println("قاصر")}التوازي في Go: goroutines والقنوات
الميزة الرئيسية لـ Go هي التوازي الخفيف. بدلاً من خيوط نظام التشغيل، تُستخدم goroutines. إنها تستهلك