غو (لغة برمجة)

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
غو
Go Logo Blue.svg
 

ظهرت في 10 نوفمبر 2009  تعديل قيمة خاصية (P571) في ويكي بيانات
صممها روب بايك،  وكين تومسن  تعديل قيمة خاصية (P287) في ويكي بيانات
نظام التشغيل دارغون فلاي بي إس دي  [لغات أخرى]،  وفري بي ‌إس ‌دي،  ولينكس،  وماك أوس،  ونت بي إس دي،  وأوبن بي إس دي،  ونظام التشغيل بلان 9 من مختبرات بل  [لغات أخرى]،  وسولاريس،  ومايكروسوفت ويندوز  تعديل قيمة خاصية (P306) في ويكي بيانات
الرخصة رخص بي إس دي  تعديل قيمة خاصية (P275) في ويكي بيانات
المطور جوجل
روب بايك
كين تومسن  تعديل قيمة خاصية (P178) في ويكي بيانات
رقم اخر اصدار 1.15 (11 أغسطس 2020) (إصدارة مستقرة)[1]  تعديل قيمة خاصية (P348) في ويكي بيانات
متأثرة بـ سي[2]،  وبايثون،  وليمبو،  وباسكال[2]،  وسمول توك[3]،  وصرير جديد[4]،  وايلف  [لغات أخرى]،  وآي بي إل،  ولغة البرمجة الأساسية المختلطة،  ومودولا  تعديل قيمة خاصية (P737) في ويكي بيانات
امتدادات الملفات go  تعديل قيمة خاصية (P1195) في ويكي بيانات
موقع ويب الموقع الرسمي[5]  تعديل قيمة خاصية (P856) في ويكي بيانات

غو (بالإنجليزية: GO)‏ هي لغة برمجة مفتوحة المصدر من تطوير شركة جوجل. التصميم الأول للغة كان عام 2007 على يد روبرت غريسيمر و روب بايك و كِن ثومبسون. تم الإعلان رسمياً عن اللغة في نوفمبر 2009، مع تطبيقات صدرت لنظام التشغيل لينُكس و ماك. وقت صدورها، لم تعتبر جاهزة ليتم تبنيها في بيئات الإنتاج. في مايو 2010 صرح روب بايك علناً بأنه يتم استخدام اللغة لبعض الأمور المهمة في أنظمة جوجل.

تعريف[عدل]

لغة غو (Go Lang) هي لغة ثابتة الأنواع Statically-typed, ذات مجمّع نفايات تلقائي Garbage-collected, يجري تجميعها Compiled إلى لغة الآلة Native, وتركّز على المعالجة المتوازية Concurrency بشكل قوي ومدعوم ولذلك نلحظ تميزها في مجال الخوادم Servers.[6]

الشعبية[عدل]

دخلت لغة غو فهرس تيوبي للغات البرمجة الأكثر شعبية وحصلت على المركز الخامس عشر، لغات أخرى مثل باسكال حصلت على المركز 25 في الأول من نوفمبر.

أمثلة[عدل]

برنامج أهلا بالعالم باستخدام جو

package main

import "fmt"

func main() {
	fmt.Println("Hello, World")
}


مثال آخر للبرمجة المتزامنة:

package main

import (
	"fmt"
	"time"
)

func taskOne() {
	for i := 0; i < 10; i++ {
		time.Sleep(time.Second * 1)
		fmt.Println("task one in step : ", i)
	}
	fmt.Println("Task One is done")
}

func taskTwo() {
	for i := 0; i < 10; i++ {
		fmt.Println("task two in step: ", i)
		time.Sleep(time.Second * 1)
	}
	fmt.Println("Task tow is Done")
}

func main() {
	go taskOne()
	go taskTwo()
	time.Sleep(time.Second * 10)
}

يحتوي هذا البرنامج على مهمتين. كل مهمة تتطلب 10 ثواني للإنهاء. ما مجموعه 20 ثانية. لكن المهمتين يتم تنفيذهما بالتزامن. لذلك لا يتطلب البرنامج أكثر من 10 ثواني لإتمام المهمتين.

مراجع[عدل]

HelloWorld.svg
هذه بذرة مقالة عن لغة برمجة بحاجة للتوسيع. شارك في تحريرها.