العودة إلى المجتمع

ABAP & ABAP

يعيش Lars Hvam في كوبنهاغن، الدنمارك، ويحب لغة البرمجة ABAP. بعد أن أعدّ مسار ABAP على Exercism، التقينا بـ Lars وأجرينا معه حديثًا هادئًا عن كيف انتهى به المطاف في مجال التقنية.

شاهد على YouTube
المدة 31دقيقة

Jonathan: مرحبًا وأهلًا بالجميع. اسمي Jonathan. أنا مضيف بودكاست Exercism، ويرافقني اليوم Lars. إذن، أين تقيم حاليًا يا Lars؟

Lars: أنا في كوبنهاغن، الدنمارك

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

Lars: نعم، لنرَ. أين أنا حاليًا؟ كما تحدّثنا، في كوبنهاغن. لكنني أعمل أساسًا في الاستشارات في مجال الأكواد المخصّصة في SAP و ABAP. وكيف انتهى بي المطاف هناك؟ نعم، كالعادة، القصة طويلة. لكنها التقنية. فلنتحدّث عن رحلات التقنية. عندما كنت صغيرًا، وكان ذلك منذ زمن بعيد. أنا وتوأمي المتماثل. لديّ

Jonathan: لديك توأم متماثل، فكيف لي أن أعرف أن المتحدّث اليوم ليس توأمك الآخر؟

Lars: يعمل في أمور Microsoft.

Jonathan: حسنًا. أمر مخيف.

Lars: الأشياء. لذا اسأله عن أي شيء يخصّ SAP، فلن يستطيع الإجابة. ثم لا يمكنه أن يسألني عن أي شيء يخصّ Microsoft، فلن أستطيع الإجابة.

Jonathan: نعم.

Lars: لكن عندما كنّا صغارًا، بدأنا اللعب على جهاز Commodore 64. وأتذكر أنني كتبت بعض البرمجة البسيطة جدًا بلغة BASIC على ذلك الجهاز، على شاشة تلفاز صغيرة جدًا بالأبيض والأسود. كنّا نقضي ساعات في ذلك، ثم حصلنا على حاسوب جديد، وكتبنا بـ QBasic على أجهزة 386 و 486. ثم الترقية إلى ثمانية ميغابايت من الذاكرة. كانت تلك هي الأيام. نعم، كان ذلك بـ QBasic، وكتبت برمجة بـ Pascal. ثم انتقلت في النهاية إلى Windows، وكتبت الكثير بـ Visual Basic. نعم، أحببت Visual Basic. كان ذلك في التسعينيات أو نحوها، ثم انتقلت في النهاية إلى تشغيل بعض توزيعات Linux. . ونعم. ولمن يتذكّر أيام Linux الجميلة القديمة، كان هناك موقع themes.org حيث كان بإمكانك تنزيل سمات لمختلف مديري النوافذ. أمر يخصّ Linux جدًا. وأعتقد أن تلك كانت المرة الأولى التي انخرطت فيها فعلًا في المجتمع، حيث قضيت وقتًا في بناء ذلك الموقع بـ PHP. نعم،

Jonathan: حسنًا. واو.

Lars: وضعوا لي بعض الأختام. Visual Basic، والبرمجة في مرحلة الدكتوراه. نعم.

Jonathan: حسنًا. جميل. جميل. نعم، هذه واحدة جيدة.

Lars: ثم في النهاية ذهبت إلى الجامعة، وحصلت على ماجستير في علوم الحاسوب، وكنت أبرمج أي شيء، ثم حصلت بشكل عابر على وظيفة صغيرة لأنني... نعم، كنت بحاجة إلى المال لدفع الإيجار. وكنت أبرمج أشياء أخرى. وقد لازمني ذلك طوال نحو 15 عامًا الماضية في تطوير الأكواد المخصّصة بـ SAP ABAP. ونعم. إذن، السؤال التالي: لماذا؟ لماذا بقي معي؟ لأن ABAP ليست لغة برمجة حديثة كثيرًا الآن. فهي تشبه COBOL إلى حد كبير، لكنها أيضًا لغة برمجة مثيرة جدًا للاهتمام لأنها واسعة جدًا، ولديها الكثير من العبارات المختلفة، والكثير من الأمور المختلفة التي قد تسوء.

Jonathan: حسنًا. إذن هناك الكثير من حلّ المشكلات والكثير من أنواع التنقيح. هل هذه هي طبيعتها؟

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

Jonathan: حسنًا، إذن بدأت قبل 15 عامًا. هل مع الشركة نفسها، أم بدأت تتعلّم ABAP مع SAP ثم انتقلت إلى شركات مختلفة؟

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

Jonathan: نعم. يبدو أن هذا موضوع متكرر في حياتك، ألا وهو الدفع. دفع الإيجار،

Lars: نعم.

Jonathan: وإيجاد طرق للدفع.

Lars: ومع ذلك أقضي وقتًا طويلًا جدًا في مشاريع المصادر المفتوحة، وأخرج عن المسار نحو شيء مليء بالتحديات.

Jonathan: نعم. إذن هل لديك فريق من الأشخاص تعمل معهم كجزء من عملك، أم أنك مستقل تمامًا بهذا المعنى؟ كيف يبدو يومك أو أسبوعك في العمل؟

Lars: أنا مستقل ولديّ شركتي الخاصة. وعند الحديث عن التعاون، أتعاون مع العميل، أليس كذلك؟ ثم في مجال المصادر المفتوحة، لديّ أيضًا الكثير من الأصدقاء الجيدين في مجتمع المصادر المفتوحة الذين يساعدون في بعض الأمور من وقت لآخر، وأنا أساعدهم في بعض الأمور بين الحين والآخر، لذا فهي حالة يفوز فيها الجميع.

Jonathan: نعم. إذن أنت في الواقع المسؤول بالكامل، على ما أعتقد، عن بناء مسار ABAP على Exercism، إن لم أكن مخطئًا، أو لديك مستوى عالٍ من المشاركة في بنائه. حدّثنا قليلًا عن ذلك.

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

Jonathan: نعم. نعم. نعم.

Lars: هذا هو الحال. لدينا أشخاص مختلفون يساهمون في Exercism. لكن مسار ABAP مختلف قليلًا، أليس كذلك؟ لأنه لغة برمجة يصعب فعلًا البدء فيها، لأنك لا تستطيع ببساطة تنزيل بيئة تشغيل JavaScript مثل Node أو بيئة تشغيل Python. لا يمكنك فعل ذلك بسهولة كبيرة في ABAP. أحدث طريقة للقيام بذلك كانت عبارة عن حاوية بحجم 60، بلغت 16 غيغابايت على حدّ ما أتذكر.

Jonathan: 16

Lars: تحتاج إلى 32 غيغابايت من الذاكرة على الأقل لتشغيل هذا. وليس هناك الكثير من الأشخاص الذين تتوفر لديهم هذه البنية التحتية بسهولة. كما أن التشغيل على هذا النوع من البنية التحتية سيكون مستحيلًا مع Exercism، لا أعرف. البنية التحتية خلف المنظومة، أما المسارات، فهي كلها الكثير من حاويات Docker الصغيرة التي تبدأ، وتشغّل الكود، وتتحقق من التمرين، ثم تتوقف مرة أخرى.

Jonathan: نعم.

Lars: وبدء حاوية Docker بهذا الحجم قد يستغرق بسهولة 10 دقائق.

Jonathan: ؟ لا. لا. بالتأكيد.

Lars: لذا احتجنا إلى مقاربة مختلفة، ولحسن الحظ كنت أعمل على أدوات التحليل الساكن الخاصة بي. بدأت قبل بضع سنوات، وهي تحتوي على أشجار تركيب مجرّدة (abstract syntax trees). لذا نأخذ هذا الكود فعلًا ونحوّله إلى كود JavaScript، ثم نشغّله على Node ونقدّم الملاحظات. لذا نقول إن هذا ليس رسميًا. فاللغة التي ندعمها هي ABAP، و ABAP أيضًا لغة خاصة نوعًا ما، كما ذكرت عدة مرات من قبل، إذ لا يوجد وصف رسمي جيد حقيقي للغة ABAP بحدّ ذاتها. وليست مثل لغات أخرى صُمّمت لهذا الغرض. أعتقد أن ABAP تطوّرت أساسًا إلى ما هي عليه منذ السبعينيات أو متى ما بدأت. لذا نبنيها بالاجتهاد بينما نمضي قدمًا.

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

Lars: هناك الكثير من الوثائق، لكنها ليست... إنها مجرد نص، وليست صحيحة 100% دائمًا.

Jonathan: . . حسنًا.

Lars: الطريقة الصحيحة هي أن تجرّب الكود وترى ما يفعله فعلًا، أليس كذلك؟ بالطبع هناك الكثير من الأمور الصحيحة في اللغة. لكن أيضًا، عندما نعمل ونبني الأشياء في نظام SAP، نكون عادةً عدة مطوّرين في نظام واحد، وهذا النظام الواحد يحتوي على أكثر من 200 مليون سطر من الكود، وأكثر من 80,000 جدول قاعدة بيانات،

Jonathan: يا إلهي.

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

Jonathan: إذن أنت تفضّل إعداد النظام الأحادي، هل سيكون ذلك تعليقًا منصفًا أم أنه... أيهما تفضّل؟

Lars: نعم. أنا فعلًا أفضّل النظام الأحادي، لكن نعم. حسنًا. إذن مع خلفيتك في BASIC، تفضّل إدارة الشبكات. نعم. رائع. ذلك...

Jonathan: الكود القديم. نعم. كل الأشياء القديمة، وكل ذلك النوع من الأمور.

Lars: نعم. أحبّ الأشياء القديمة. إنها ممتعة جدًا، أليس كذلك؟ عادةً أقول إنني، عندما أكبر في السن، أريد أن أتوجّه إلى البرمجة بـ PL/I أو APL، بعض تلك اللغات. لا أعرف، ربما أستطيع فعل ذلك على Exercism أيضًا، أليس كذلك؟ في مرحلة ما...

Jonathan: على الأرجح. لدينا كل شيء في الخلفية في هذه المرحلة. لنرَ ما لدينا. Abl... هل قلت APL أم abl؟

Lars: APL. أوه، لا يوجد مسار APL.

Jonathan: أوه، ربما تكون هناك فرصة.

Lars: PL/I أيضًا. لا يوجد مسار لـ PL/I. حسنًا. حسنًا. إذن هذان مساران يمكن لأحد في المجتمع

Jonathan: أوه، أنت تسجّل فيهما الآن. هذا...

Lars: لا. إذن كيف يبدو الأمر يوميًا، مثلًا في مسار ABAP؟ مسار ABAP هو تقريب لما هو صحيح، ونحن نحاول دائمًا أن نجعله خطوة أقرب إلى أن يكون 100%. لذا لدينا فعلًا أشخاص لديهم حلول صحيحة لا تعمل فقط على Exercism

Jonathan: حسنًا.

Lars: بسبب مجموعة الاختبارات الغريبة هذه التي أعددتها. لكن خطوة بخطوة، يومًا بعد يوم، يبدأ الأمر في العمل، ونواصل إضافة المزيد والمزيد من اختبارات الوحدة إلى الواجهة الخلفية وإلى مشغّل اختبارات Exercism وكل شيء. ثم نأمل أن يصبح في يوم ما مثاليًا بنسبة 100%، لكن...

Jonathan: من يعلم. من يعلم ما سيأتي من تلك النقطة. إذن، كم عميلًا تتعامل معه عادةً خلال الأسبوع؟ هل هو واحد أو اثنان أو ثلاثة، أم قد يصل إلى 10؟

Lars: واحد أو اثنان فقط.

Jonathan: حسنًا. وهذا الأمر مستمر منذ فترة.

Lars: نعم. نعم. أعمل في الاستشارات منذ سنوات عديدة الآن.

Jonathan: . وهل يتركّز الأمر أساسًا في كوبنهاغن، أم حصلت أثناء الجائحة على فرصة للعمل عن بعد من أماكن أبعد؟ ما هو... هل تسافر كثيرًا، أم...

Lars: كنت أسافر كثيرًا في أيام شبابي، لكنني الآن عادةً أجلس في المنزل وأعمل عن بعد.

Jonathan: حسنًا.

Lars: إنه

Jonathan: نعم. تُبقي آلة القهوة دافئة.

Lars: نعم.

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

Lars: أوه، لا أعرف. أعتقد أنني فهمت البرمجة دائمًا، أليس كذلك؟

Jonathan: نعم.

Lars: لكن عادةً، في أيام شبابي، كان الأمر دائمًا برمجة إجرائية. أتذكر في وقت ما في الجامعة كان هناك تقديم للبرمجة الوظيفية والبرمجة المنطقية. وهما نموذجان مختلفان تمامًا لممارسة البرمجة فعليًا. وعلى حدّ علمي، هناك Prolog.

Jonathan: نعم، هناك مسار لـ Prolog. لذا لمن لم يجرّب البرمجة المنطقية، أوصي بتجربة بعض البرمجة بـ Prolog. وعلى الأرجح يوجد أيضًا Standard ML، ليكتشف المرء ما كان يفكّر فيه فعلًا، برمجة إجرائية جديدة. لكن هناك أيضًا الكثير من الأمور الأخرى التي يمكنك القيام بها.

Lars: نعم، أتعلّم أشياء جديدة كل يوم، لذا لم تتّضح لي.

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

Lars: الدخول إلى البرمجة يبدأ دائمًا بشكل عشوائي، أليس كذلك؟ أسلوب BASIC، ثم Java، والبدء بشكل عشوائي، ثم برزت هي كنوع من لغة برمجة مليئة بالتحديات، لأنها كبيرة جدًا في العبارات المختلفة. أما Java و JavaScript فليس لديهما في الحقيقة الكثير من العبارات. بل لديهما مكتبة كبيرة. مقارنةً بذلك، في ABAP لدينا الكثير من الأمور المكتبية كجزء من لغة البرمجة، أما في JavaScript، فإنك تستدعي مكتبات مختلفة باستخدام نفس نوع البنية اللغوية لاستدعاء المكتبات.

Jonathan: حسنًا.

Lars: نعم.

Jonathan: حسنًا. إذن كان الأمر أشبه بأنك اكتشفت ABAP بشكل عشوائي تقريبًا. إذن، بالنظر إلى الأمام الآن، خلال السنوات العشر أو نحوها القادمة... لا أعرف إن كنت تريد حتى التفكير إلى هذا الحد، لكن كيف تبدو السنوات الخمس إلى العشر القادمة بالنسبة لك من ناحية البرمجة والعمل؟ هل لديك أي إحساس بأن: أوه، هذا هو المكان الذي أريد أن أكون فيه، وهذا ما أريد أن أفعله؟

Lars: آه، لا تعرف أبدًا، أليس كذلك؟ أواصل الأشياء ما دمت أعتبرها ممتعة، أليس كذلك؟ وإذا لم تعد ممتعة، فأتركها وأفعل شيئًا آخر.

Jonathan: حسنًا، إذن تلك هي...

Lars: الخطة، أليس كذلك؟ كما يقول، يجب أن يكون ممتعًا حتى يعمل يومًا بعد يوم، في رأيي. وعلى الأرجح ستبقى ABAP على القائمة بعد 10 سنوات، على ما أعتقد. وهذا يعود نوعًا ما إلى ذلك. أنا انتقائي جدًا عندما يتعلق الأمر بلغات البرمجة والتقنية. لذا أعمل بـ ABAP وأعمل بـ JavaScript/TypeScript، ثم أحاول ألّا أدخل في أي لغة أخرى.

Jonathan: نعم. حسنًا. لكن لو قلت لك: حسنًا يا Lars، عليك أن تترك ABAP و JavaScript الآن، وعليك أن تتعلّم لغة برمجة أخرى. هل لديك أي فكرة عن أي واحدة تريدها؟ نعم، سأفعل ذلك.

Lars: نعم، تحدّثنا بالفعل عن APL،

Jonathan: حسنًا. نعم.

Lars: لغة رائعة جدًا، وعلى الأرجح أقدم مني، لا أعرف... APL و PL/I، أعتقد أنهما أقدم من ABAP.

Jonathan: . حسنًا. واو. إذن لماذا هاتان بالتحديد، من باب الفضول؟ ما الذي يثير اهتمامك فيهما؟

Lars: أما APL فلم أجرّبها فعلًا، لكن هناك بعض المحاكيات على الإنترنت يمكنك تجربتها. فيها الكثير من الحروف اليونانية، حيث كل شيء عبارة عن ضرب مصفوفات. أنا لا... تبدو غريبة جدًا، ونعم، غبية. لكن هذا أيضًا ما يجعلها ممتعة، أليس كذلك؟ لا بد أن يكون هناك نوع من التحدي. و PL/I هي فقط... شيء مختلف. لست متأكدًا.

Jonathan: شيء غامض وقليلًا...

Lars: نعم. ليس تمامًا. أحبّ أن أتّجه إلى الأشياء الكلاسيكية القديمة، وليس كل الأشياء الجديدة الفخمة. لذا ربما أقول Rust، لا. على الأرجح سأدخل في Rust يومًا ما، لكن ذلك ليس حقًا لأنني بحاجة إلى ذلك، وليس لأنني أرغب فيه.

Jonathan: نعم. وهل تلاحظ أن عدد الأشخاص الذين يستخدمون ABAP يتراجع أم يزداد، أم كانت هناك عودة للاهتمام باللغة في الآونة الأخيرة؟ ما وجهة نظرك في ذلك؟

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

Jonathan: حسنًا.

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

Jonathan: نعم. وهل لاحظت أنك رأيت الكثير من الأشخاص يخوضون المسار؟ مسار ABAP؟

Lars: نعم. لدينا الآن ما يقارب 5,000 طالب.

Jonathan: واو، هذا مذهل. نعم.

Lars: نعم، في سبتمبر هنا كان هناك. تحدٍّ برمجي مجتمعي نظّمه دعاة مطوّري SAP. لمحاولة جذب الناس إلى المنصة وتجربة بعض التمارين بما نسمّيه الجداول الداخلية. في لغات أخرى. تُسمّى هذه عادةً مصفوفات، لكننا نسمّيها جداول داخلية، وكذلك الجداول الداخلية المتداخلة، التي تُسمّى عادةً مصفوفات متداخلة، أو مصفوفات مزدوجة، في لغات البرمجة الأخرى.

Jonathan: نعم.

Lars: فجلبنا بذلك الكثير من الطلاب الجدد. وحصلنا أيضًا على الكثير من الملاحظات والـ Bug والمشكلات على GitHub. وهذا أيضًا أمر لسنا معتادين عليه حقًا في عالم ABAP. التعاون عبر مؤسسات متعددة. ومشاركة بعض الكود على GitHub فعلًا ليس شيئًا معتادًا كثيرًا في المجتمع.

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

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

Jonathan: نعم.

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

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

Lars: واحدة واحدة. فكرة واحدة.

Jonathan: حسنًا. يمكنني أن أعطيك اثنتين. يمكنني أن أعطيك اثنتين. نعم. ثلاث. حسنًا. ثلاث. يمكنك أن تأخذ ثلاث أفكار، لأنني أعرف أن أهل التقنية ليسوا أصحاب آراء قوية على الإطلاق، عادةً.

Lars: نعم. أعتقد أن الناس لو وصفوني، فأحيانًا تكون لديّ آراء قوية جدًا في الأمر، نعم. إذن إحدى أفكاري الرئيسية هي أن تقول لا: هذا لن يكون ممكنًا. افعل شيئًا آخر يناسب الحل والتقنية أكثر. لذا قل لا لاستخدام أدوات مثل Jenkins. قل لا لـ Jenkins، فهو إحدى الأدوات التي أحبّ ذكرها بأن لا أحد ينبغي أن يستخدمها، أليس كذلك؟

Jonathan: لماذا؟ لماذا؟ لماذا ذلك؟ ما هو السبب؟

Lars: من الأسهل بكثير أن تكون خطوط الأنابيب قريبة من الكود. لذا إذا كنت... أنا فقط أعتبرها قديمة.

Jonathan: حسنًا. إذن هي بمثابة مستوى من التجريد لا حاجة لإضافته إذا كنت تعرف ما تفعله.

Lars: نعم. وهناك أدوات أخرى تفعل الأشياء بشكل أفضل. أداة أخرى أحبّ تجنّبها وهي Eclipse. في عالم Java، إذا نظرت إلى الوراء خمس أو عشر سنوات، كانت Eclipse تُستخدم عادةً لبناء كود Java. من وجهة نظري، وصلنا إلى نقطة لم تعد فيها Eclipse تُستخدم حتى لبناء كود Java. فعادةً ما تكون بعض تطبيقات المؤسسات الكبيرة وأمور تُستخدم في Eclipse وبناء Eclipse، وهو ما لم تكن مخصّصة له حقًا في البداية. لم تكن هناك طرق أخرى كثيرة للقيام بذلك، وهناك الكثير من الأدوات الأخرى للاختيار من بينها. لذا فإن Eclipse قد انكسف.

Jonathan: حسنًا. نعم، يعجبني ذلك. وسأعطيك فكرة أخرى. ما هي الفكرة الأخرى، الفكرة الثالثة؟

Lars: المسافات البيضاء، أو هي المسافات البيضاء. أحد مشاريعي الجانبية هو التحليل الساكن لـ ABAP. وفي ABAP فعلًا، لدينا الكثير من العبارات المختلفة، والكثير من الطرق المختلفة للقيام بالإزاحة وحالة الأحرف الكبيرة والصغيرة والترميز الهنغاري، وكل شيء. نعم. وجود مسافتين في مكان ما في نص، أمر يستفزّني حقًا.

Jonathan: هل هذا فقط لأنه يربك كل شيء، وإنها كابوس فقط؟

Lars: إنه فقط يُخرجك عن المسار أثناء القراءة، كقراءة نص أو قطعة من الكود. أوه، هناك مسافتان هنا بين... إنه يربكني.

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

Lars: وأيضًا عند الحديث عن التكامل المستمر، لا تحوّل التكامل المستمر إلى انتظار مستمر.

Jonathan: حسنًا، إذن تدفع الكود، ثم يبقى هناك وينتظر أن تتم مراجعته، هل هذا ما...

Lars: سيحصل المطوّر على الملاحظات بسرعة بدلًا من أن ينتظر ساعة أو ساعتين للحصول على أي ملاحظات.

Jonathan: حسنًا. هل هذا لأنه على نحو منهجي، هو إجراء آمن ضد الفشل؟ هل هذا هو السبب وراء وجوده؟ هل هو فقط للتوقّف حتى يمكن مراجعة الأمور، أم لماذا...

Lars: مجرد بنية سيئة.

Jonathan: نعم. حسنًا. حسنًا. مثير للاهتمام. حسنًا، السؤال الأخير لهذا اليوم. آمل أنك استمتعت حتى الآن، لكنني أردت أن أسألك هذا. ما التوصيات التي لديك لمجتمع Exercism لهذا الأسبوع؟ لو كان بإمكانك أن توصي بشيء واحد للمجتمع، فماذا سيكون؟ يمكن أن يكون أي شيء. تناول السوشي. اذهب واقفز في نهر، أيًا كان...

Lars: بالطبع، جرّب المسار. هذا على الأرجح...

Jonathan: سأعطيك هذه مجانًا. هذه مجانية. هذه مجانية، حسنًا.

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

Jonathan: نعم.

Lars: لأن هناك الكثير جدًا من الأشياء التي يمكن فعلها في عالم التقنية وخارجه، فلا يستحق الأمر حقًا إذا كنت تشعر بالملل طوال الوقت.

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

المزيد من قصص مجتمعنا

استمع وتعلّم واستلهم من أعضاء مجتمعنا.