"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دفتر Jupyter لجافا

دفتر Jupyter لجافا

تم النشر بتاريخ 2024-11-06
تصفح:821

قوة Jupyter Notebook

تُعد Jupyter Notebooks أداة ممتازة، تم تطويرها في الأصل لمساعدة علماء ومهندسي البيانات على تبسيط عملهم مع البيانات باستخدام لغة برمجة بايثون. في الواقع، فإن الطبيعة التفاعلية لأجهزة الكمبيوتر المحمولة تجعلها مثالية لرؤية نتائج التعليمات البرمجية بسرعة دون إعداد بيئة تطوير أو تجميع أو تعبئة وما إلى ذلك. لقد كانت هذه الميزة حاسمة لاعتمادها في علوم البيانات، والتعلم الآلي، والنمذجة الإحصائية حيث كانت مهارة التطوير أقل أهمية من خبرة معالجة البيانات.

المزايا

فيما يلي بعض مزايا دفتر Jupyter

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

تلخيص يمكننا أن نقول أن

تعمل دفاتر Jupyter الدفترية على تبسيط عملية التطوير، بدءًا من الاستكشاف الأولي وحتى التعليمات البرمجية الجاهزة للإنتاج، مما يوفر المرونة والتعليقات في الوقت الفعلي.

كسر حاجز بايثون

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

السؤال هنا:

هل من الممكن استخدام دفتر ملاحظات JUPYTER للغة برمجة أخرى غير لغة بايثون❓؟

الجواب هو نعم؟.

العمارة كوكب المشتري

تم تصميم أدوات Jupyter لدعم لغات البرمجة المتعددة من خلال مفهوم Kernel، انظر الرسم البياني أدناه:

Jupyter Notebook for Java

النواة هي الطريقة التي يقوم بها خادم دفتر Jupyter بتقييم كتل التعليمات البرمجية التي كتبها المستخدم داخل مستند دفتر الملاحظات (.ipynb)، لذا يكفي أن يكون لديك نواة يمكنها تقييم كود لغة البرمجة التي تختارها أنه مدعوم من دفتر Jupyter.
بالطبع، من السهل استنتاج أن كل لغة برمجة محتملة يمكن أن تدعمها Jupyter Kernel يجب أن تدعم ميزة حلقة القراءة والتقييم والطباعة (REPL).

يصبح السؤال:

هل هناك نواة جوبيتر غير بايثون❓؟

الجواب هو نعم؟.

كنت أعمل مؤخرًا على Langgraph4J وهو تطبيق Java لـ Langgraph.js الأكثر شهرة وهي مكتبة Javascript تستخدم لإنشاء سير عمل وكيل ومتعدد الوكلاء بواسطة Langchain. ملاحظة مثيرة للاهتمام هي أن [Langchain.js] يستخدم دفاتر ملاحظات Javascript Jupyter المدعومة بـ DENO Jupiter Kernel لتنفيذ المهام الإرشادية وتوثيقها.
لذلك، واجهت معضلة حول كيفية استخدام (أو ربما محاكاة) نفس النهج في Java، وبدون الكثير من الأمل، بدأت في البحث عن Jupyter Kernel الذي يدعم Java مع الأخذ في الاعتبار أنه من إصدار JDK 9، كان هناك مقدمة لـ JShell الذي مكّن REPL لـ Java.

جافا Jupyter نواة

بعد قليل من البحث (وفكرة غريبة بمحاولة إلقاء نفسي في تطبيق DIY) وصلت إلى Rapaio-jupyter-kernel وهو Jupyter Kernel الذي يدعم Java؟. ينص المشروع على:

نواة Jupyter للغة Java المبنية على JShell. يقوم بتنفيذ الإصدار 5.4 من مواصفات رسالة Jupyter، ويتطلب Java = 22.

إنه لأمر مدهش. لقد بدأت في استخدامه واو!؟. قم بإلقاء نظرة على بعض ميزاته، أدناه قمت بتلخيص الميزات الأكثر تمثيلاً:

ميزات دفتر جافا Jupyter


يمكنك كتابة جافا عادية.

var result = 2   2;
result

4

// including classes
record Complex(double a, double b) {
    public Complex add(Complex c) {
        return new Complex(a c.a, b c.b);
    }
}
Complex x = new Complex(10,20);
x.add(new Complex(1,1))

معقد[a=11.0, b=21.0]

// methods can also be implemented
int add(int a, int b) { return a b; }
add(2,3)

5

أوامر سحرية

إلى جانب كود Java، يمكن أن تحتوي الخلية على أوامر خاصة تنفذها النواة. وتسمى هذه الرموز السحرية، وهناك نوعان: الخطوط السحرية والخلايا السحرية.
الخطوط السحرية هي خطوط تسبقها %. بعد البادئة، يتبعها الأمر السحري والمعلمات الاختيارية. وفيما يلي مثال على الخط السحري:

// magic line which asks JShell to list the types defined in this notebook in this moment
%jshell /types

| مجمع السجلات

استيفاء الأوامر السحرية

في بعض الأحيان تكون هناك حاجة لتشغيل أمر سحري بطريقة أكثر ديناميكية. ويمكن القيام بذلك باستخدام الاستيفاء السحري.
الاستيفاء السحري هو استيفاء المحتوى المميز الذي يبدأ بـ \{ وينتهي بـ }. يتم تقييم أي محتوى مزين بهذه العلامات في jshell ويتم تحويل النتيجة إلى سلسلة تحل محل المحتوى المزخرف في الأمر السحري.

String version = "1.0.2";

 

بيان الافراج تم نشر هذه المقالة على: https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3