ما هي لغة Go؟
What is Go?
ما هي لغة Go؟ — What is Go?
لغة Go (وتُعرف أيضاً بـ Golang) هي لغة برمجة مفتوحة المصدر طورتها شركة Google عام 2009. صُممت Go لتكون بسيطة وسريعة وفعالة — خاصة لبناء الأنظمة الخلفية (backend systems) والخدمات السحابية.
القصة وراء Go
في عام 2007، كان ثلاثة مهندسين في Google — روبرت غريسمر (Robert Griesemer) وروب بايك (Rob Pike) وكين تومبسون (Ken Thompson) — يعانون من بطء الترجمة (compilation) في المشاريع الضخمة وتعقيد اللغات المتوفرة مثل C++ وJava.
قرروا بناء لغة جديدة تجمع بين:
- سرعة C في التنفيذ
- بساطة Python في الكتابة
- أمان Java في إدارة الذاكرة
- دعم أصلي للتزامن (concurrency) — وهذا ما يميزها فعلاً
أُعلن عن Go رسمياً في نوفمبر 2009، وصدر الإصدار المستقر الأول (Go 1.0) في مارس 2012.
لماذا اسمها Go؟
الاسم ببساطة يعني “اذهب” — إشارة إلى السرعة والبساطة. أما “Golang” فهو الاسم المستخدم في البحث لأن “Go” كلمة شائعة جداً. الموقع الرسمي هو go.dev.
مميزات Go
| الميزة | الوصف |
|---|---|
| بسيطة | ٢٥ كلمة محجوزة فقط (Python فيها ٣٥، Java فيها ٥٠+) |
| سريعة | لغة مُترجمة (compiled) — أسرع بكثير من Python وJavaScript |
| آمنة | جامع القمامة (Garbage Collector) يدير الذاكرة تلقائياً |
| متزامنة | goroutines تجعل التزامن سهلاً جداً |
| محمولة | تُترجم لملف تنفيذي واحد (single binary) — لا حاجة لتثبيت مكتبات |
| أدوات مدمجة | تنسيق الكود، اختبار، توثيق — كلها مدمجة في اللغة |
من يستخدم Go؟
Go ليست لغة هامشية — إنها تُشغّل بنية تحتية عالمية:
- Google — طبعاً، صانعة اللغة
- Docker — نظام الحاويات (containers) الشهير مكتوب بـ Go
- Kubernetes — أهم نظام إدارة حاويات، مكتوب بالكامل بـ Go
- Cloudflare — شبكة CDN عالمية
- Uber — أنظمة خلفية عالية الأداء
- Twitch — نظام البث المباشر
- Dropbox — انتقلوا من Python إلى Go للأداء
لماذا تتعلم Go؟
- سوق العمل: رواتب مطوري Go من أعلى الرواتب في البرمجة عالمياً
- البساطة: يمكنك تعلم أساسيات اللغة في أسبوع واحد
- المستقبل: كل التقنيات السحابية الحديثة (Docker, Kubernetes, Terraform) مبنية بـ Go
- الإنتاجية: كود أقل، أخطاء أقل، أداء أعلى
- المجتمع: مجتمع نشط وداعم ووثائق ممتازة
أول نظرة على كود Go
لنلقِ نظرة سريعة على كيف يبدو كود Go. لا تقلق إذا لم تفهم كل شيء الآن — سنشرح كل سطر في الدروس القادمة:
اضغط على زر تشغيل لترى النتيجة! هذا البرنامج يطبع رسالتين في وحدة الإخراج.
هيكل برنامج Go الأساسي
كل برنامج Go يتكون من:
package main— كل برنامج قابل للتنفيذ يجب أن يكون في حزمةmainimport "fmt"— استيراد حزمةfmt(اختصار format) للطباعةfunc main()— الدالة الرئيسية التي يبدأ منها تنفيذ البرنامج
ماذا بعد؟
في الدرس القادم، سنتعلم كيف تثبت Go على جهازك وتجهز بيئة التطوير.