جو (Go)

جو لغة برمجة صغيرة من جوجل، صُنعت لتستطيع خدمة واحدة الرد على عدد هائل من الطلبات في الوقت نفسه دون أن تتوقف.

يُعرف أيضًا بـ جولانج لغة جو Golang

التعريف

جو لغة برمجة صنعتها جوجل، وهي صغيرة عن قصد. فقد بدأ مصمموها مما يتعطل فعلًا في الأنظمة الكبيرة، فأبقوا ما ينفع ورموا الباقي. ولهذا يستطيع مبرمج يعمل بالفعل أن يتعلم معظم جو في أسبوع تقريبًا، وهذه البساطة تترك مساحة للعمل الوحيد الذي صُنعت اللغة من أجله.

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

والأمر الثاني الذي تحبه الفرق يظهر في النهاية، إذ يتحول برنامج جو بعد اكتماله إلى ملف واحد فقط. تنسخ هذا الملف إلى الخادم وتشغّله، ولا شيء آخر تثبته بجانبه. أي لا بيئة تشغيل تتابع إصداراتها، ولا قائمة قطع صغيرة يجب أن تتطابق كلها. ومن رأى برنامجًا يعمل على جهاز ويرفض العمل على الجهاز التالي يعرف تمامًا لماذا يهم هذا.

وجو تطلب مقابلًا. فهي لغة مباشرة الكلام، لذلك تكتب أسطرًا مكررة أكثر مما تكتبه في لغات أخرى، وبعض المبرمجين يجدونها مملة. وهي أيضًا الأداة الخطأ لشاشات العمل العادية، مثل قائمة الفواتير وصفحة المخزون ونموذج الحجز، لأن هذا العمل ينتهي أسرع ويكلف أقل بلغة تطبيقات الويب الشائعة. ولذلك حين تلجأ لينكي سوفت لنظم المعلومات إلى جو، فهي تلجأ إليها لقطعة واحدة شديدة الانشغال داخل نظام أكبر، لا للنظام كله.

وهذه القطعة تكون في الغالب من النوع نفسه: الجزء الذي يستقبل الرسائل من الهواتف، أو يرسل الإشعارات، أو يجيب مربع البحث ألف مرة في الدقيقة. وهي تقف عادة خلف تطبيق هاتف يجب أن يبدو فوريًا، وهناك يظهر أي تأخير أول ما يظهر. ولهذا يستحق أن تسأل أي مورّد يقترح جو سؤالًا واحدًا: ما أول شيء ينهار حين يتضاعف عدد الزوار؟ فإذا كان الجواب قاعدة البيانات لا الكود، فقد فهم المشكلة الحقيقية، وهذا هو المكان الذي تفضل لينكي سوفت أن تنفق فيه ميزانيتك.

أسئلة حول جو (Go)

هل جو هي نفسها جولانج؟
نعم. جولانج مجرد اسم دارج جاء من عنوان الموقع القديم، لأن كلمة من حرفين مثل جو يصعب البحث عنها.
هل جو أسرع من بي إتش بي أو بايثون؟
غالبًا نعم، للعمل نفسه على الجهاز نفسه. لكن أغلب المواقع البطيئة تكون بطيئة بسبب قاعدة البيانات أو الشبكة، لا بسبب اللغة.
هل أكتب نظام شركتي كله بلغة جو؟
نادرًا. شاشات العمل اليومية تُبنى أسرع بلغات أخرى، وتظهر فائدة جو في الجزء أو الجزأين اللذين يحملان ضغطًا كبيرًا.
هل يصعب إيجاد مبرمجين يعرفون جو؟
عددهم أقل من مبرمجي بي إتش بي أو جافا، لكن اللغة صغيرة بما يكفي ليتعلمها مبرمج جيد في أسابيع. اسأل من سيتولى صيانتها بعد الإطلاق.

ما زلت غير متأكد كيف ينطبق هذا على مشروعك؟

أخبرنا بما تبنيه وسنجيبك بلغة واضحة.