آه، اذهب، لغة البرمجة. ربما سمعت عن ذلك، ربما من أحد المطورين المتحمسين للغاية في المكتب والذي لا يتوقف أبدًا عن الحديث عن مدى "السرعة الفائقة" التي أصبحت بها واجهات برمجة التطبيقات (APIs) الخاصة بهم الآن. من المؤكد أنك انخرطت في لغات أخرى، وربما فكرت: "هل أحتاج حقًا إلى لغة أخرى في طبقي؟" تنبيه المفسد: نعم، نعم تفعل ذلك. والذهاب هي تلك اللغة. اسمحوا لي أن أفصلها لكم بأكثر الطرق الصادقة الساخرة الممكنة.
بناء جملة Go بسيط جدًا لدرجة أنه مهين تقريبًا. إذا كنت قد أمضيت سنوات في إتقان تعقيدات أطر عمل JavaScript، أو المصارعة مع مصممي لغة Python، أو الرقص حول إدارة ذاكرة لغة C وكأنها قنبلة يدوية حية، فستشعر وكأن شخصًا ما قد سلمك كتاب تلوين. لا، على محمل الجد. Go هي لعبة بسيطة عن عمد، مع فلسفة تصرخ: "نحن لسنا بحاجة إلى كل هذه الميزات الرائعة، دعونا ننجز الأمور فقط".
بينما تمنحك اللغات الأخرى جميع الأدوات اللازمة لصياغة التعليمات البرمجية الخاصة بك في عمل فني متقن وغير قابل للقراءة، فقد فكر مصممو Go، "لا، دعنا نجعلها تعمل." لا يوجد تسلسلات هرمية معقدة للوراثة، ولا يوجد تحميل زائد للوظائف المعقدة، ولا توجد قوالب تشبه الجبر من حلم سيئ. مجرد رمز مباشر إلى النقطة. يبدو الأمر كما لو أنهم يقولون: "توقف عن التفكير بجدية".
إذا سبق لك أن حاولت التعامل مع التزامن في اللغات التقليدية، فأنت تعرف مدى الضرر الذي يمكن أن يحدثه ذلك. تجمعات الخيوط، والكائنات المزامنة، والطرق المسدودة - مجرد التفكير يجعلك ترغب في الالتفاف في كرة والبكاء. لكن اذهب؟ أوه لا، يقول Go، "الخيوط؟ Pfft. هنا، لديك goroutines." من غير المحترم تقريبًا مدى سهولة تدوير الخيوط خفيفة الوزن في Go. ما عليك سوى طرح الكلمة الأساسية go أمام استدعاء دالة، ويتم تشغيل BAM بشكل متزامن.
ولا تجعلني أبدأ في قنوات Go. يبدو الأمر كما لو أن Go ألقى نظرة على محاولات كل لغة أخرى لتحقيق التزامن وقال: "أنتم تبالغون في تعقيد الأمر، شاهدوا هذا." تسمح القنوات لـ goroutines بالتواصل مثل الأطفال ذوي السلوك الجيد الذين يمررون الملاحظات في الفصل - بدون صراخ أو ضجة. قد تشعر بالإهانة من مدى سلاسة العمل.
هل تعرف هذا الشعور عندما يتعين عليك تثبيت 47 حزمة فقط لتقديم طلب HTTP بسيط؟ ليس في الذهاب. مكتبة Go القياسية تشبه سكين الجيش السويسري الذي لم تكن تعلم أنك بحاجة إليه ولكن الآن لا يمكنك العيش بدونه. هل تريد تدوير خادم الويب؟ منتهي. هل تحتاج إلى التعامل مع JSON؟ سهل. هل تتطلع إلى كتابة برنامج متزامن يتصل عبر الشبكة؟ إنه موجود بالفعل في صندوق الأدوات.
تتمتع مكتبة Go القياسية بهذه الثقة الهادئة، كما لو أنها تقول: "أوه، هل تريد إنشاء خدمة ويب؟ يمكنك ذلك، دون سحب 200 من تبعيات الطرف الثالث والتضحية بروحك. يشبه الأمر الحصول على جميع الميزات المميزة للغة ما دون تكلفة الاشتراك المتضخمة. وبصراحة، هذا مجرد وقاحة.
هل تتذكر كل الأوقات التي جلست فيها هناك، وتنقر بقدمك، وتنتظر تشغيل كود Python أو JavaScript؟ اذهب ليس لديه الوقت لهذا الهراء. لقد تم تجميعه، وهو سريع. مثل وميض ويتم ذلك بسرعة. من المؤكد أن اللغات الأخرى تبذل قصارى جهدها، لكن Go ترمي ثنائياتها السريعة عليك مثل "ماذا؟ هل مازلت هنا؟ لقد انتهى بالفعل."
الجزء الأفضل؟ لست بحاجة إلى فهم كل السحر الذي يحدث تحت الغطاء. أنت تعلم فقط أن تطبيق Go ينتج ملفات تنفيذية تعمل مثل يوسين بولت في قهوة الإسبريسو. في حين أن اللغات الأخرى تأخذ وقتها للإحماء وارتداء أحذية الجري، فقد عبرت Go بالفعل خط النهاية، واستحممت، واستمتعت بعصير ما بعد السباق.
هل سبق لك أن حاولت جعل برنامج Python النصي يعمل على نظامي التشغيل Windows و Linux؟ نعم، الأمر أشبه بمحاولة تنظيم مشروع جماعي في الكلية، مليئًا بالارتباك والأخطاء الغريبة والكثير من توجيه أصابع الاتهام. لكن اذهب؟ Go لا يهتم بالمنصة التي تستخدمها. قم بتجميعه مرة واحدة، وسيتم تشغيله في أي مكان تقريبًا. إنه الموقف "بالتأكيد، مهما كان" في عالم البرمجة.
وإذا كنت شخصًا يحب كتابة حاويات Docker (ولنكن واقعيين، من لا يحب الحاوية الجيدة؟)، فإن ثنائيات Go هي حلم أصبح حقيقة. إن الثنائي الفردي المرتبط بشكل ثابت والذي لا يعتمد على كون بيئة التشغيل "مناسبة تمامًا" يعادل وجود زميل في الغرفة يقوم بالفعل بغسل الأطباق دون أن يُطلب منه ذلك. إنه أمر رائع جدًا لدرجة يصعب تصديقها، ولكن ها نحن هنا.
الآن، أعرف ما الذي تفكر فيه - "ولكن ماذا لو كنت أرغب فقط في بناء مشاريع جانبية صغيرة؟" بالتأكيد، يمكنك ذلك. لكن لنكن واقعيين. في اللحظة التي تسمع فيها أن شركة جوجل، الشركة التي تتحكم في معظم الإنترنت، هي التي أنشأت لعبة Go، ستشعر وكأنك تستخدم أداة قوية مصممة للسيطرة على العالم. بالتأكيد، من المحتمل أن تبدأ بخادم ويب صغير أو بعض واجهات برمجة التطبيقات (API)، ولكن في العمق، تعلم أنه يمكنك إنشاء النظام التالي على نطاق Google باستخدام هذا الشيء إذا كنت تريد ذلك حقًا.
هذا صحيح، لقد تم تصميم Go على نطاق واسع، ولكن لا تقلق، لن يحكم عليك أحد إذا كان مشروعك الأول عبارة عن تطبيق قائمة مهام. (في الواقع، قد أفعل ذلك. فقط القليل.)
كلنا نحب المشاريع مفتوحة المصدر، أليس كذلك؟ إنه يمنحنا ذلك الشعور الدافئ الغامض بأننا جزء من "المجتمع". حسنًا، Go مفتوح المصدر، ويمكنك البحث في الكود إذا أردت ذلك. هل ستساهم فعليًا بأي شيء في ذلك؟ ربما لا. لكن مجرد معرفة أنك تستطيع إذا شعرت أن ذلك كافٍ، أليس كذلك؟
يمكنك إخبار الأشخاص في الاجتماعات، "نعم، أنا أعمل مع Go، وهو مفتوح المصدر تمامًا، وهو أمر رائع للمجتمع." ثم استرخ واستمتع بالإيماءات المحترمة من زملائك. لا يحتاج أحد إلى معرفة أن مساهماتك الحقيقية تتكون في معظمها من عمليات إعادة الشراء المميزة على GitHub.
انظر، لقد كنا جميعًا جزءًا من مجتمعات البرمجة... حسنًا، دعنا نقول فقط أنهم يمكن أن يكونوا "متحمسين". قد تكون بعض المجتمعات اللغوية (نحن لا نذكر أسماء، لكنك تعرف من أنت) مخيفة بعض الشيء بسبب "أفضل ممارساتها" والتدقيق المستمر في الطريقة الصحيحة لكتابة حلقة for. لكن مجتمع Go؟ انها مثل نسمة من الهواء النقي. إنهم داعمون ومفيدون ولن يجعلوك تشعر بأنك أحمق لطرح سؤال بسيط. إنه أمر مقلق تقريبًا مدى برودةهم.
ربما يرجع السبب في ذلك إلى أن اللغة نفسها لا تحاول أن تكون معقدة للغاية، لذلك لا يشعر أحد بالحاجة إلى التصرف بشكل متفوق. مهما كان السبب، فإن مجتمع Go هو المكان الذي ستجد فيه دعمًا حقيقيًا بدلاً من حراسة البوابة المتخفية في صورة "نصيحة".
إذًا، لماذا يجب على الجميع تعلم لغة Go؟ لأنه بسيط دون أن يكون غبيًا، وسريعًا دون إثارة ضجة، وقويًا بما يكفي للتعامل مع أي مشروع مجنون تطرحه عليه. إنه مثل ذلك الصديق الذي يكون دائمًا هادئًا ومتماسكًا ويتمكن بطريقة ما من أن يكون منتجًا بشكل يبعث على السخرية دون أن يبدو الأمر وكأنه عمل شاق.
إذا سئمت من اللغات التي تدللك أو تطالبك بالتضحية بسلامتك العقلية، فإن Go هو المكان المناسب لك. جربه، ومن يدري، ربما تصبح ذلك المطور المتحمس للغاية في المكتب. وبصراحة، ألن يكون ذلك أمرًا ممتعًا؟
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3