لغة البرمجة Go - منتديات أحاسيس الليل

 ننتظر تسجيلك هـنـا

{ إعلانات احاسيس الليل ) ~
 
   

فـعـآلـيـآت آلـمـنـتـدى


الإهداءات



منتدى البرامج وشروحاته •₪• منتدى البرامج وشروحاته •₪•

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
#1  
قديم 06-Oct-2021, 03:51 PM
الَسِمًوٌ.! غير متواجد حالياً
Syria     Female
لوني المفضل Chocolate
 رقم العضوية : 173
 تاريخ التسجيل : Oct 2021
 فترة الأقامة : 1149 يوم
 أخر زيارة : 19-Jul-2023 (02:43 PM)
 العمر : 23
 الإقامة : قلب امي
 المشاركات : 6,050 [ + ]
 التقييم : 7416
 معدل التقييم : الَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond reputeالَسِمًوٌ.! has a reputation beyond repute
بيانات اضافيه [ + ]

اوسمتي

افتراضي لغة البرمجة Go






تم تطوير Go من قبل شركة Google لتلبية احتياجات عالم محدد بواسطة معالجات متعددة النواة وأنظمة شبكية ومجموعات حوسبة وتطبيقات ويب وتم تطويرها لتكون سريعة في الكتابة مع تضمين جميع الميزات الحديثة مثل التزامن وجمع القمامة ويهدف تطوير Go أيضا إلى تسهيل إدارة التبعيات وتمكين التطبيقات من التوسع بسهولة أكبر.


أشياء قد لن تحبها حول لغة البرمجة Go
1. ليست كائنية التوجه
هذا إن كنت تظن أنها كذلك، فلا يوجد مفهوم الصنف (Class) ولا الكائنات (Objects) وبالتالي لا يوجد وراثة (inheritance). مع ذلك فإن Go تحمل بضعا من مزايا البرمجة الكائنية كتوفيرها لـ Interface و دوال البنيات (Struct methods) وتركيب البنيات (Struct composition).

لماذا؟ مؤسسي اللغة يرون أن اللغات كائنية التوجه تحمل العديد من العيوب والتعقيدات التي يمكن إلغاؤها بالتخلي عن بعض هذه المفاهيم كلية. حتى مبرمجي Java أنفسهم ينصحون بـ Composition مثلا في كثير من الأحيان عوض inheritance، مؤسسي اللغة ممن يرون أن البرمجة كائنية التوجه غالبا ما تكون فكرة سيئة -تقنيا-.

2. لا توجد معالجة للاستثناءات Exception Handling
قد تكون هذه نتيجة طبيعية بسبب غياب مفهوم البرمجة الكائنية لدى Go، فمعالجة الأخطاء في Go تتم بطريقة واضحة وتقليدية نوعا ما، حيث أن الأخطاء تُرجع كقيم عادية من نوع error. حيث error هو نوع بدائي في حد ذاته مثله مثل أي نوع أصلي آخر (int, string .. الخ). مع ذلك تسمح لك Go بقذف خطأ للحالات الاستثنائية عبر الكلمة المفتاحية panic (أشبه بـ raise أو throw في باقي اللغات) وكذا التعافي من هذه الأخطاء عن طريق recover.

3. لا توجد معامِلات افتراضية أو اختيارية يمكن تمريرها للدوال (default/optional arguments)
ربما قد اعتدت في لغات البرمجة الأخرى على القيام بشيء مثل:

function listFolders(path, subfolders=false, recursive=false){ ... }
لكن في Go لن يمكنك تمرير subfolder=false ولا recursive=false كإمضاء للدالة listFolders لأنها لن تقبل مثل هذه المعاملات الافتراضية/الاختيارية، وسينتج عن ذلك خطأ عند التجميع (compile error).

لماذا؟ يرى مؤسسوا اللغة أن هذه السلوكيات تساهم في بناء واجهات برمجية (API) غير ثابتة أو تساهم في جعل تصرفها غير مُتوقع. في مثالنا السابق مثلا، هم يفضلون كتابة الدالة من دون معاملات افتراضية، أي:

func listFolders(path string, subfolders bool, recursive bool) { ... }
يجبرك هذا على كتابة التصرف الذي تريده من الدالة بشكل صريح عوض ترك الواجهة البرمجية تملي عليك التصرف الافتراضي، هذا لتقليل الأخطاء البشرية. أيضا قد يدفعك هذا إلى كتابة ثلاث دوال، كل بتصرفها الخاص الواضح من اسمها، مثال: listFolders, listFoldersRecursivly و listFoldersWithFirstLevelSubFolders.

4. لا توجد ميزة إثقال الدوال (Method Overloading)
لنفس الأسباب السابقة، فإنه لا يوجد Method overloading، أي لا يمكنك إعادة تعريف دالة تحمل نفس الاسم لكن بإمضاء مغاير. مثلا، إذا وُجدت دالة باسم:

func listFolders(path string) { ... }
فلا يمكنك إنشاء دالة أخرى بنفس الاسم لكن بإمضاء مغاير مثل:

func listFolder(path string, level int) { ... }
بل عليك تغيير اسمها إلى مثلا:

dunc listFolderToLevel(path string, level int) { ... }
على الرغم من ذلك فهناك طريقة غير مباشرة لجعل دالة ما تقبل قيما اعتباطية عبر جعل الإمضاء من نوع {}interface سنتطرق إليها في الدروس القادمة.

5. لا وجود للعموميات (generics)
تمكّنك باقي اللغات من كتابة دوال أو أصناف عامة، حيث لا تصرّح عند كتابتها بنوع المعاملات التي تقبلها لكن تترك لها مهمة معرفة نوع المعاملات لاحقا عند استدعائها، لعل أقرب مثال هو ما توفره لغة Java مثلا في صنف <List<T حيث T يرمز إلى أي نوع يتم تحديده لاحقا، بالتالي يمكن إنشاء <List<String أو <List<Integer بكل سهولة مع الحفاظ على نفس الوظائف والعمليات التي يمكن إجراؤها على القائمة List بشكل عام.

لا يوجد في Go مثل هذا، وعوضا عن ذلك فهناك {}interface كنوع شامل يرضي جميع الأنواع، لكنه ليس كبديل تام لـ Generics.

لماذا؟ سبب عدم توفر العموميات (Generics) في Go هو أن مؤسسيها لم يتبيّنوا بعد الطريقة الأنسب لهم لإضافة هذه الميزة إلى اللغة دون زيادة حِمل أثناء وقت التشغيل (run-time).

6. Go لُغة مملة كما أنها ليست أفضل لغة برمجة!
لشدة بساطة اللغة وعدم إتيانها بشيء جديد، فإن الكثيرين يعتبرها لغة مملة. فعدد الكلمات المفتاحية بها والأنواع الأصلية فيها ضئيل مقارنة بباقي اللغات، كما أنها تقلل كثيرا من وجود أكثر من طريقة للقيام بمهمة معينة. حتى أنها لا تحتوي على حلقة while وتقتصر فقط على حلقة for، الكثيرون يعتبرون هذا من مزايا اللغة، لكني ذكرتها لك حتى لا تتوقع شيئا جديدا يصلح للتباهي.

أيضا لن تسمح لك اللغة بترك متغير دون استعمال أو استيراد شيء غير مستعمل (unused import/variable) ولن يقبل المُجمع (compiler) أبدا بذلك.

7. لغة عنيدة
مؤسسوا اللغة متشبثون برأيهم وقراراتهم في تصميم اللغة، فلا تتوقع تغيرات جوهرية قد تحدث على المدى القريب أو المتوسط في اللغة أو تغيرات في طريقة القيام بالأمور وسلوك المُجمّع (compiler). ولا داعي لفتح نقاشات فارغة حول تصميم اللغة وعيوبها إلا إذا كنت في نفس مستوى خبرتهم وحكمتهم.

هم نفسهم يصرحون بهذا، ويذكرون أن هناك خيارات ولغات برمجة أخرى إن لم تعجبك Go.

8. لا يوجد إجماع على مدير حزم واحد
تملك بايثون pip، وجافاسكريب تملك npm، وغيرهم من اللغات تملك مدير حزم (package manager) شهير أو متفق عليه، لا تخلو Go من مدير حزم، فهي تملك الكثير من ذلك، لكنها لم تتفق بعد على مدير حزم واحد ولا عن كيفية جلب وسرد الاعتماديات بطريقة قياسية، لكن حديثا يتم العمل على ذلك عبر مفهوم Vendoring.

هذه الأمور الثمانية، للذكر وليس للحصر من أشد الانتقادات التي توجّه إلى Go كلغة برمجة، فإن كنت توافقها فقد لا تناسبك اللغة، وإن كنت ترى أن من ورائها حكمة -مثلي- فأكمل قراءة المقال حول أمور قد تعجبك حول Go.



 توقيع : الَسِمًوٌ.!


رد مع اقتباس
قديم 06-Oct-2021, 05:26 PM   #2


الصورة الرمزية - سُكرة.
- سُكرة. غير متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 160
 تاريخ التسجيل :  Sep 2021
 أخر زيارة : 30-May-2022 (07:53 PM)
 المشاركات : 707 [ + ]
 التقييم :  3400
 الجنس ~
Female
 MMS ~
MMS ~
لوني المفضل : Mediumauqamarine
افتراضي رد: لغة البرمجة Go



_




إنتقاء جميل
يعطيك آلف عآفيةة
سلمت .


 

رد مع اقتباس
قديم 06-Oct-2021, 06:01 PM   #3


الصورة الرمزية مسگ
مسگ متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 1
 تاريخ التسجيل :  Apr 2021
 أخر زيارة : يوم أمس (08:12 AM)
 المشاركات : 18,430 [ + ]
 التقييم :  134005
 الجنس ~
Female
 SMS ~
لوني المفضل : White

اوسمتي

افتراضي رد: لغة البرمجة Go



طرح مميز
يعطيك الف عاافيه


 
 توقيع : مسگ




الوقت أغلى من المال والقيل والقال
أستغل وقتك والحمقى لا تُلقي لهُم بال


رد مع اقتباس
قديم 08-Oct-2021, 01:01 AM   #4


الصورة الرمزية مستثناه
مستثناه متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 164
 تاريخ التسجيل :  Sep 2021
 أخر زيارة : يوم أمس (09:35 AM)
 المشاركات : 165,405 [ + ]
 التقييم :  87787
لوني المفضل : Cadetblue

اوسمتي

افتراضي رد: لغة البرمجة Go



موضوع قيم
يعطيك العافيه


 

رد مع اقتباس
قديم 08-Oct-2021, 04:49 AM   #5


الصورة الرمزية فرح
فرح غير متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 179
 تاريخ التسجيل :  Oct 2021
 أخر زيارة : 14-Aug-2023 (07:03 PM)
 المشاركات : 9,916 [ + ]
 التقييم :  104122
 الجنس ~
Female
 MMS ~
MMS ~
لوني المفضل : Azure
افتراضي رد: لغة البرمجة Go



انتقاء غاية في الذوق
الله يعطيك العافيه


 

رد مع اقتباس
قديم 18-Oct-2021, 07:47 AM   #6


الصورة الرمزية N@gh@m
N@gh@m متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 14
 تاريخ التسجيل :  May 2024
 أخر زيارة : يوم أمس (04:54 PM)
 المشاركات : 496,047 [ + ]
 التقييم :  231042
 الدولهـ
Lebanon
 الجنس ~
Female
 SMS ~
لوني المفضل : Purple

اوسمتي

افتراضي رد: لغة البرمجة Go





 
 توقيع : N@gh@m



رد مع اقتباس
قديم 24-Oct-2021, 09:42 AM   #7


الصورة الرمزية غَيْم..!
غَيْم..! متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 4
 تاريخ التسجيل :  May 2021
 أخر زيارة : اليوم (01:56 AM)
 المشاركات : 871,407 [ + ]
 التقييم :  471449
 الدولهـ
Saudi Arabia
 MMS ~
MMS ~
لوني المفضل : White

اوسمتي

افتراضي رد: لغة البرمجة Go



طرح مميز
يعطيك العافية على جمال طرحك
لك الجوري ..


 
 توقيع : غَيْم..!



رد مع اقتباس
قديم 10-Nov-2021, 08:25 PM   #8


الصورة الرمزية متعب
متعب غير متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 203
 تاريخ التسجيل :  Nov 2021
 أخر زيارة : 17-Jun-2024 (07:42 AM)
 المشاركات : 7,250 [ + ]
 التقييم :  12770
 MMS ~
MMS ~
لوني المفضل : Cadetblue
افتراضي رد: لغة البرمجة Go



مجهود رائع
الله يعطيك العافيه
تحياتي لك


 

رد مع اقتباس
قديم 25-Nov-2021, 11:55 AM   #9


الصورة الرمزية ذيب العمري
ذيب العمري غير متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 171
 تاريخ التسجيل :  Oct 2021
 العمر : 36
 أخر زيارة : 03-Feb-2022 (06:56 PM)
 المشاركات : 600 [ + ]
 التقييم :  2614
 الجنس ~
Male
 MMS ~
MMS ~
لوني المفضل : Lightcyan
افتراضي رد: لغة البرمجة Go



طرح جميـــــل ..||
دام التألق ... ودام عطاء نبضك
كل الشكر لهذا الإبداع,والتميز...!!
وبآنتظار روائع جديدك بكل شوق...!


 
 توقيع : ذيب العمري



رد مع اقتباس
قديم 28-Nov-2021, 08:00 AM   #10


الصورة الرمزية الموج..!
الموج..! غير متواجد حالياً

بيانات اضافيه [ + ]
 رقم العضوية : 109
 تاريخ التسجيل :  Aug 2021
 أخر زيارة : 24-Oct-2024 (09:18 AM)
 المشاركات : 51,163 [ + ]
 التقييم :  34800
 الجنس ~
Male
لوني المفضل : Antiquewhite

اوسمتي

افتراضي رد: لغة البرمجة Go



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


 
 توقيع : الموج..!





رد مع اقتباس
إضافة رد

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
لغات البرمجة .. بايثون قد تتفوق قريبًا على c وجافا سلطان الزين منتدى البرامج وشروحاته 15 21-Apr-2024 04:56 PM
#2 كيف تصبح مبرمج - تعلم البرمجة للمبتدئين بواسطة سي شارب #c ‏ الَسِمًوٌ.! تطوير المواقع والمنتديات والمدونات 19 11-Apr-2024 12:25 PM
#1 كيف تصبح مبرمج - تعلم البرمجة للمبتدئين بواسطة سي شارب #c ‏ الَسِمًوٌ.! تطوير المواقع والمنتديات والمدونات 21 11-Apr-2024 12:25 PM
#4كيف تصبح مبرمج - تعلم البرمجة للمبتدئين بواسطة سي شارب #c ‏ الَسِمًوٌ.! تطوير المواقع والمنتديات والمدونات 20 05-Dec-2023 07:14 PM
#3كيف تصبح مبرمج - تعلم البرمجة للمبتدئين بواسطة سي شارب #c ‏ الَسِمًوٌ.! تطوير المواقع والمنتديات والمدونات 19 05-Dec-2023 07:11 PM


الساعة الآن 03:20 AM


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. TranZ By Almuhajir
HêĽм √ 3.2 OPS BY: ! ωαнαм ! © 2010
new notificatio by 9adq_ala7sas
جميع ما يطرح في منتديات أحاسيس الليل لا يعبر عن رأي الموقع وإنما يعبر عن رأي الكاتب
وإننــے أبرأ نفســے أنا صاحبة الموقع أمامـ الله سبحانه وتعالــے من أــے تعارف بين الشاب والفتاة من خلال أحاسيس الليل
vEhdaa 1.1 by rKo ©2009