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

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

صيانة البرمجيات في الأبحاث

إصدار بايثون إصدار JVM المدونة … مكتبة —> صيانة البرمجيات في الأبحاث بقلم كونراد هينسن، نُشر في 26 فبراير 2014 تُعد صيانة البرمجيات واحدة من الصعوبات التي يواجهها مطورو البرمجيات العلمية بانتظام. إنها نشاط مهم، لكنها قد تستغرق وقتًا طويلاً ولا تكافئها إجراءات التقييم الحالية بشكلٍ كافٍ. وإذا كنت تدير مشروع برمجيات ضخمًا، فإن الحصول على تمويل للصيانة يكون عادةً أمرًا عسيرًا. ونظرًا لأن صيانة البرمجيات صعبة وليست ذات أهمية علمية جوهرية، ينبغي أن نسأل أنفسنا لماذا هي ضرورية، وهل يمكننا فعل شيء لتقليل الحاجة إليها؟ أولًا، ما هي صيانة البرمجيات؟ يُعرّف قاموس ميريام ويبستر الفعل “يحافظ” (maintain) بأنه الإبقاء على (شيء ما) في حالة جيدة من خلال إجراء الإصلاحات، وتصحيح المشكلات، وما إلى ذلك. هذا منطقي بالنسبة للمعدات التقنية التي تتدهور مع مرور الوقت بسبب التآكل الميكانيكي وغيره. لكن البرمجيات لا تتدهور، لذا يجب أن يعني مصطلح “الصيانة” شيئًا مختلفًا عند تطبيقه على البرمجيات. لستُ على علم بأي تعريف متفق عليه، لذا فإن ما أقدمه هنا هو تعريفي الخاص: تتكون صيانة البرمجيات من تعديل البرمجيات لسببين: إصلاح الأخطاء البرمجية. الحفاظ على قابلية استخدام البرمجيات في بيئات الحوسبة المتطورة. قد يضيف البعض التحسينات الوظيفية إلى هذه القائمة، لكن هذه ليست صيانة بالمعنى الحقيقي، بل هي تحسينات. خاصة في حالة البرمجيات العلمية، حيث غالبًا ما تعني الوظائف الجديدة علومًا جديدة. أولًا، الأخطاء البرمجية. كما هو الحال مع أي برمجيات، نريد إصلاح الأخطاء في البرمجيات العلمية للحصول على نتائج أفضل في المستقبل. ومع ذلك، نرغب أيضًا في الاحتفاظ بالإصدار الذي يحتوي على الأخطاء إذا كانت هناك أي دراسة علمية منشورة قد استخدمته. هذا ببساطة مسألة نزاهة والحفاظ على السجل العلمي: إذا كانت هناك فرصة بأن تكون نتائج الدراسة قد تأثرت بخطأ برمجي في البرنامج، فيجب أن يتمكن المطلعون على الدراسة من اكتشاف ذلك. يجب أن تكون لديهم إمكانية الوصول إلى نفس البرنامج بالضبط الذي استُخدم في الأصل، وليس فقط إلى النسخة المحسنة الحالية. لهذا السبب، فإن الحفاظ على الكود المستخدم في الدراسة أهم فعليًا من إصلاح الأخطاء. صُمم ActivePapers مع وضع هذا الهدف في الاعتبار: فكل عنصر بيانات محسوب في ورقة ActivePaper مرتبط بالبرمجيات التي أنتجته. علاوة على ذلك، هذا الرابط غير قابل للتعديل تمامًا بعد النشر، نظرًا لأن أوراق ActivePapers تُنشر تمامًا مثل النسخ الإلكترونية من المقالات ويُشار إليها عبر معرفات DOI. يمكنك الغش قبل النشر عن طريق تعديل ورقة ActivePaper بقصد ارتكاب الاحتيال تحديدًا. لا يدعم ActivePapers مثل هذه الإجراءات، لكنه لا يبذل أي جهد لمنع الاحتيال أيضًا. يمكن إضافة مثل هذه الميزات من خلال حماية معلومات النسب باستخدام التجزئات (hashes)، لكنني آمل ألا يكون ذلك ضروريًا. المشكلة الثانية، وهي بيئات الحوسبة المتطورة، أكثر دقة. إنها حقيقة واقعة أن كل شيء في عالم الحاسوب (أجهزة الحاسوب، أنظمة التشغيل، المترجمات، تعريفات اللغات، المكتبات، …) يتغير بوتيرة سريعة، مما يؤدي إلى أنه من غير المرجح أن يعمل جزء معين من الكود المصدري كما هو بعد بضع سنوات. يحدث هذا لسببين: (1) التقدم التقني يسمح بأجهزة وبرمجيات أفضل باستمرار، وهو ما يريده الناس، و(2) لا يوجد لدى أحد مصلحة راسخة في استقرار منصات الحوسبة أو القدرة على تحقيق ذلك. بالنسبة لبائعي الأجهزة وموردي البرمجيات التجارية، يُعد التغيير السريع أفضل طريقة لضمان شراء العملاء لأجهزة جديدة وتحديث تراخيصهم بانتظام. بالطبع، هناك مجتمع واحد على الأقل لديه مصلحة راسخة في استقرار منصات الحوسبة: مجتمع العلوم الحاسوبية. إذا استطعنا تشغيل برمجياتنا بعد 20 عامًا، دون تعديل، والحصول على نفس النتائج، لكنا سعداء. لا نريد القيام بصيانة البرمجيات، ومعظمنا لا يستطيع بشكل معقول صيانة البرمجيات التي يطورها لأبحاثه بما يتجاوز احتياجاته الشخصية المباشرة. ومن غير المعقول حتى توقع أن يقوم أي شخص بصيانة برمجيات شخص آخر، مثل البرمجيات التي تركها طالب الدراسات العليا الذي يعمل الآن في الصناعة. عمليًا، فقط البرمجيات المجتمعية واسعة الاستخدام هي التي تحظى بالصيانة لفترات طويلة كافية. لكن حتى مشاريع البحث التي تستخدم حزمًا شائعة ومُصانة تتطلب عادةً بعض البرمجيات الخاصة بالمشروع، على الأقل بضعة نصوص أوامر (shell scripts). وهذا أحد الأسباب وراء سوء قابلية إعادة إنتاج الدراسات الحاسوبية. هل يمكن للمجتمع العلمي فعل شيء حيال هذا؟ أعتقد أنه يمكنه ذلك، لكنني لست متفائلًا بأنه سيتخذ إجراءً في القريب العاجل. من المحتمل أن يستمر العلماء في استخدام أجهزة تجارية للحوسبة العلمية، مما يعني أنهم سيضطرون إلى قبول تطور الأجهزة وبرمجيات الأنظمة المرتبطة بها، وهو أمر خارج عن سيطرتهم. ومع ذلك، يمكنهم بناء منصة مستقرة فوق هذه المنصات المتطورة باستمرار، على الأقل للجزء الحسابي البحت من عملهم. على المستوى الأساسي، جميع التدوينات البرمجية الكاملة تورينغ (Turing-complete) متكافئة ويمكن تحويل بعضها إلى بعض. عمليًا، تفرض اعتبارات الأداء حدًا على تحويل الكود، لكن لا يزال من الممكن تعريف تمثيلات للكود يمكن ترجمتها بكفاءة إلى جميع أنواع الأجهزة الأساسية وبرمجيات الأنظمة، وبالتالي تظل مستقرة. مثالان واقعيان هما байت كود JVM والشكل الوسيط لـ LLVM. كان байت كود JVM موجودًا منذ 20 عامًا وقد أثبت استقرارًا استثنائيًا. أما الشكل الوسيط لـ LLVM فهو ليس مصممًا ليكون مستقرًا، ولكن ذلك لأن مطوري LLVM لا يريدون تقييد خياراتهم المستقبلية من خلال الالتزام بتمثيل مستقر. يحاول مشروع PNaCl التابع لشركة Google تجاهل هذا التحذير واستخدام كود LLVM بطريقة لا معنى لها إلا إذا ظل مستقرًا.和时间 akan membuktikan كيف ستسير الأمور. يمكن للمجتمع العلمي تعريف تمثيل الكود الوسيط الخاص به، بالاعتماد على الخبرة مع النهج الحالية، وتحسين منصتهم للتطبيقات العلمية. لكن، كما قلت أعلاه، لست متفائلًا بحدوث ذلك. سيكون هناك شرطان: التزام طويل الأمد من قبل عدة مؤسسات بحثية وتمويلية كبيرة للحفاظ على هذه المنصة على مدى عقود عديدة. أنا مقتنع بأن هذا سيكون معقولًا اقتصاديًا، لأنني متأكد من أن الحفاظ على منصة واحدة أرخص من الحفاظ على العديد من حزم البرمجيات العلمية، وإعادة كتابة تلك التي لم تُصان باستمرار. لكن هذا سيتطلب مستوى من الاتفاق والالتزام نادر في العلم؛ فقد حدث فقط لبعض المنشآت الضخمة مثل CERN. الميزة المهمة التي توفرها المنصة المستقرة هي السبب وراء تصميم الإصدار الأول من ActivePapers حول JVM. للأسف، JVM ليس شائعًا جدًا في الحوسبة العلمية. يُفسر ذلك غالبًا بنقص الأداء، رغم أن هذه الحجة لم تعد صالحة كما كانت في السابق. هناك أيضًا بعض مشاكل التصميم، خاصة فيما يتعلق بعمليات الفاصلة العائمة، لكن الشيء نفسه يمكن قوله عن لغات شائعة مثل C أو C++، وهو ما لم يمنع العلماء من استخدامها. إصدار ActivePapers الأكثر فائدة عمليًا والمبني على بايثون يعتمد على منصة محددة بواسطة نظام Scientific Python البيئي (خاصة Python و NumPy و h5py). أثبتت هذه المنصة استقرارًا متوسطًا في الماضي، حيث كان الانتقال إلى Python 3 الحدث الرئيسي لعدم الاستقرار. المقياس الزمني الذي تعمل فيه العلوم

قراءة إضافية

  • SciPy — ويكيبيديا

تعلم لغة بايثون عن طريق البرمجة في متصفحك

دورات تفاعلية في لغة بايثون وعلوم البيانات تقوم بتشفيرها مباشرة في المتصفح