الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Go: لغة برمجة جديدة من Google

بدأه hasan_aljudy في 11 نوفمبر 2009 · 19 رد · 2,172 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تم اليوم الاعلان عن مشروع لغة برمجة باسم Go على البلوك التالي:

http://google-opensource.blogspot.com/2009...ho-lets-go.html

Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go lets you move fast.

موقع اللغة الجديدة:

http://golang.org

اللغة قيد التطوير منذ اكثر من سنة, لكن اليوم تم الاعلان عنها كمشروع مفتوح المصدر

مثال من الموقع:

package main

import "fmt"

func main() {
  fmt.Printf("Hello, 世界\n")
}

لاحظ وجود رموز يابانية/صينية داخل النص, اي دعم لليونيكود

طبعا 世界 تعني عالم بالياباني (اظن بالصيني ايضا)

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 11 نوفمبر 2009 في 06:50

#2

ما توقعك يا حسن بالنسبة لمستقبل اللغة و مدى انتشارها واستخدامها ؟

اراها مميزة وتقدم جديد والبعض اراه يمكن تقديمة فى مكتبة دون الحاجة للغة جديدة

تم تعديل هذه المشاركة بواسطة apex في 11 نوفمبر 2009 في 09:04

name : mohamedyosry

#3

اللغة الصراحة غريبة و لم أستسيغها فهي تجمع بين الPython و الC فأخذت أسوأ ما في الC مثل الأقواس و المؤشرات :S

و بالنسبة لدعم اليونيكود, فجميع اللغات تدعم اليونيكود حالياً بل سبيل المثال #C تدعم الUnicode في الكود نفسه و ليس فقط داخل الstrings

post-201794-1257920431_thumb.png

1

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#4

ما زلت أقرأ في الوثائق الخاصة باللغة، و لكن ما قرأته حتى الآن يثير اهتمامي. اللغة تم تصميمها كلغة أنظمة منخفضة المستوى و لكن دون ثقل دم الـC و الـ++C. هدفها النهائي (لم تصل إليه بعد) هي أن تصبح اللغة المعتمدة في Google لبرمجة السيرفرات الخاصة بها. بعض الأشياء التي لفتت انتباهي:

1. وجود GC

2. دعم الـmulti processing كشئ أساسي في اللغة بواسطة ما يسمونه بـgoroutine و الإتصال فيما بينها بما يسمى channel

3. الكومبايل سريع! اللغة نفسها (120 ألف سطر) ينتهي الكومبايل الخاص بها في 10 ثواني.

#5

اتفق قليلا مع الاخ متميز من ناحية قواعد اللغة شكلها لا يبدو لطيفا جدا, ربما تعمدوا عمل ذلك لانها لغة systems؟

و لكن من ناحية اخرى تعجبني جدا الافكار الجديدة المطروحة فيها:

طريقة عمل الـ interface ثورية حقا و هي تجميع بين duck typing و static typing لا ادري لماذا لم يفكر بها احد من قبل؟ اظن ان لها علاقة بطريقة عمل مفسر الجافا سكربت في كروم

بالنسبة للـ channels تبدو فكرة جيدة و لكن لا استطيع تكوين رأي حولها لاني لم اقم بعمل تطبيق multi-threaded من قبل

#6

صراحة قوقل دائما تتحفنا بالجديد والسريع

ولكن في هذه المرة لا أعتقد انها ستكون لغة مميزة عن اللغات الأخرى مثل السي أو الجافا وكذلك بالنسبة لسوق ترويجها فهي موجة لمن

من الممكن ان تكون لغة خاصة لشركة قوقل أي انها ستترك اللغات الأخرى وتبرمج فقط بلغتها بعد ان تطورها لتلبي إحتياجاتها

أما أن بالنسبة لترويجها للشركات فأضن أن الامر صعب قليل

#7

الType Inference و هو ما تقصده يا أخ hasan موجود في #F بقوة و موجود في #C بدعم محدود.

كما توجد لغات اخرى مثل Axum و هي لغة تجريبية في Microsoft و هي تدعم مبدأ الChannels و هي لغة مخصصة للConcurrent Programming

http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx

تم تعديل هذه المشاركة بواسطة motamayez في 11 نوفمبر 2009 في 11:57

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#8

صراحة اللغة تظهر لي مريحة جدا

وتحتوي على ما احب في البرمجة ... الاقواس :D

تشابهها الكبير مع البيثون مثير للاهتمام ربما طريقة لسحب مستعملي بيثون الة الغو هذه

اظن ان لها مستقبل جيد ..

تم تعديل هذه المشاركة بواسطة fkugd2003 في 11 نوفمبر 2009 في 12:08

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#9

لا أعتقد أن أي مبرمج Python سينظر مجرد حتى النظر الى لغة يجد فيها كلاً من الأقواس و المؤشرات.

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#10

كثرة الاقواس و الرموز الاخرى الموروثة من تراث عشيرة السي فعلا تبدو قبيحة بعض الشيء, و لكن ربما هذا للتأكيد على انها لغة برمجة للانظمة و ليست نسخة من بايثون,

A Serious Language for Serious Programmers

بايثون عندها سمعة بانها سهلة التعلم و تصلح للمبتدئين. بينما اللغة الجديدة ليست مصممة للمبتدئين مطلقا.

#11

السلام عليكم ...

رأيي الشخصي أن الـ Syntax بشع, إلا أن الميزات التي تحملها اللغة قوية جداً,

سرعة ترجمة الكود ميزة رهيبة جداً, إلا أن المترجمات المتوفرة لها حالياً ليست على مستوى الـ production.

عدا عن ذلك, بعد خمس سنوات "على الأقل", سيظهر لنا إن كانت لغة ناجحة, غير ذلك فهو كلام في الهواء.

تحياتي....

#12

تعريف المصفوفات بالذات شكله شنيع

x := [3]int

:S

لم أقرر بعد إذا كان استخدام الفاصلة المنقوطة كفاصل بين الأوامر بدلاً من منهي أوامر terminator عبقرية عظمى أم قباحة متناهية

if err := file.Chmod(0664); err != nil {
	log.Stderr(err);
	return err;
}

:mellow:

اللغة ما زالت وليدة، باعتراف أصحابها، و مازال أماها الكثير لكي تصبح ناضجة أكثر. مكتبتها الرئيسية ما زالت قاصرة و هي حالياً متوفرة فقط للـ Unix و MacOS X

تم تعديل هذه المشاركة بواسطة System Down في 11 نوفمبر 2009 في 14:45

#14

ماذلت لم أتعرف عليها من موقعها و لكن من كلامكم عرفت أنها تحتوى على الأقواس و المؤشرات و هذا أجده جميل جداً فيها كما تحتوى على الفواصل المنقوطه لإنهاء الأسطر و هذا يريحنى كثيراً و لكن ما أغضبنى هو طريقه تعريف المصفوفات كما قال أخى System Down فشكله و طريقته قبيحه و أعتقد أننى رأيت ذلك مع الدلفى فهذا من ضمن العوامل التى كرهتنى فيها.

كما لإنشاء function يجب أن نكتب func فى البدايه فبهذا تشبه البيسك فكان يكفى تعريف النوع فقط مثل C ... أرى ان لغه D لو تم إكمالها بحيث تدعم Multiple Inheritance و Dynamic class loading و Macro text preprocessor فلن تقف أمامها أى لغه أخرى و كان الأولى أن تقوم جوجل بتبنيها.

forum-signature-01.gif
#15

خبر جميل فعلا

السوق و الوضع متعتطش للغه جديده بهذه المواصفات

ال Syntax قد يكون مختلف فى بعض الاشياء ولكن ليس بهذا السوء

هناك ملحوظه مهمه اللغه ليست مهمتها ان تحل محل ال Python أو ان تكون C+ Syntax Sugar

بالعكس لو قرأتم فى اللغه ستجدوا فكر ال Python فى عده اشياء وليس ال Python Syntax

---

اقتباس
الType Inference و هو ما تقصده يا أخ hasan موجود في #F بقوة و موجود في #C بدعم محدود.

ال Type Inference موجود من دهور ,, الفكره هى light static typing من دون فقد ال efficiency

---

هى فعلا مازال امامها الكثير ,, لكن الاساسيات جميله

#16

اخ ams-soft: من اهداف اللغة سهولة و سرعة الـ parsing و لهذا تعريف الفنكشنز بـ func افضل

اخ متميز: انا لم اقل type inference بل تحدثت عن الـ interface و هي ليست الانترفيس التقليدية,

يمكن مثلا تعريف انترفيس Writer تحتوي على Write

type Writer interface
{
	Write(b[] bytes) (ret int, err os.Error);
}

و لا تحتاج لان تعلن عن اي كلاس يطبق هذه الانترفيس ..

اذا عرفت فنكشن ياخذ بارامتر من نوع Writer فيمكن ان تمرر اي كائن يحتوي على تعريف للفنكشن Write و سوف يقوم الكومبايلر بالتأكد من ان الكائن يطابق الانترفيس من تلقاء نفسه.

#17

أنا اسف على عدم الفهم, هذه الخاصية فعلاً مهمة و حالياً موجودة في C# 4.0 و هي في النسخة beta 2 و تستخدم ال dynamic keyword .

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#18

مميزات اللغة قوية جداً, و ربما لا يتوضح لماذا هي على شكلها الحالي إلا بعد استخدامها,

ما رأيكم بأن نفتح قسم في المنتدى, و نرى من يتعلم اللغة أولاً خلال الأشهر القادمة B)

System Down معه حق, لماذا هذه الخلطة العجيبة في الـ Syntax؟

اقتباس
كما لإنشاء function يجب أن نكتب func فى البدايه فبهذا تشبه البيسك فكان يكفى تعريف النوع فقط مثل C

لو فعلوا هذا, لفقدت اللغة إحدى أهم ميزاتها, و هو ترك المهمة للمترجم بتحديد النوع الذي تقوم الدالة بإرجاعه.

لاحظ أن Cpp0x, تحوي هذه الميزة أصلاً, لاحظ فقط أن ما ما داخل decltype هو القيمة العائدة من الدالة, و أن decltype تقوم بتحديد النوع بدلاً من المبرمج:

template< typename LHS, typename RHS> 
  [] AddingFunc(const LHS &lhs, const RHS &rhs) -> decltype(lhs+rhs) {return lhs + rhs;}

ميزة مهمة جداً في Go, و في Cpp0x القادمة أيضاً. الميزة ليست مهمة للمستخدم و إنما لكتاب المكتبات. فهي تضمن Maximum Type Safety, مع مرونة قصوى,

النقطة المهمة في اللغة, و التي لا أعتقد أن هناك لغة أخرى توفرها (من اللغات التي أعرفها أو سمعت عنها :P )

هي الـ compile-time interfaces, ببساطة مرحباً بكم في عالم البرمجة المتقدمة جداً جداً :wink:

هذه الميزة أصلاً ليس موجهة لمستخدم اللغة, و إنما لكتاب المكتبات, و هذا ما يثبت أنها لغة أنظمة فعلاً,

برأيي أن هذه الميزة ربما تكون أقوى ميزة في اللغة ككل! ببساطة اللغة لديها إمكانيات الـ Templates (و ليس Meta Programming) في ++C, و لكن دون رسائل الأخطاء الطويلة العريضة!

الـ Concepts التي كان من المفترض أن يتم إضافتها لـ Cpp0x و لكن تم تأجيلها لنسخ لاحقة, تحمل نفس الفكرة بالضبط, سأحاول أن أشرح أهمية الفكرة, على الأقل من وجهة نظر مبرمج ++C :)

تحياتي...

#19

@ Khaled.Alshaya

كمل يا رجل إيه إللى مانعك فأنا جالس للمتابعه وجه نظرك :D

forum-signature-01.gif
#20

يبدو أن هناك مشكلة في اسم اللغة. هناك شخص قام بنشر لغة برمجة خاصة به اسمها !go قبل غووغل بعدة سنوات.

http://www.lulu.com/content/paperback-book/lets-go/641689

مواضيع مشابهة