تُعد Jupyter Notebooks أداة ممتازة، تم تطويرها في الأصل لمساعدة علماء ومهندسي البيانات على تبسيط عملهم مع البيانات باستخدام لغة برمجة بايثون. في الواقع، فإن الطبيعة التفاعلية لأجهزة الكمبيوتر المحمولة تجعلها مثالية لرؤية نتائج التعليمات البرمجية بسرعة دون إعداد بيئة تطوير أو تجميع أو تعبئة وما إلى ذلك. لقد كانت هذه الميزة حاسمة لاعتمادها في علوم البيانات، والتعلم الآلي، والنمذجة الإحصائية حيث كانت مهارة التطوير أقل أهمية من خبرة معالجة البيانات.
فيما يلي بعض مزايا دفتر Jupyter
تلخيص يمكننا أن نقول أن
تعمل دفاتر Jupyter الدفترية على تبسيط عملية التطوير، بدءًا من الاستكشاف الأولي وحتى التعليمات البرمجية الجاهزة للإنتاج، مما يوفر المرونة والتعليقات في الوقت الفعلي.
بالنظر إلى المزايا التي توفرها دفاتر ملاحظات Jupyter، سيكون من الرائع لمطوري البرامج استخدام أسلوب دفاتر الملاحظات هذا لتطوير، على سبيل المثال، استخدام اختبارات الحالة للمشاريع أو تقديم كيفية تفاعلية مفيدة.
السؤال هنا:
هل من الممكن استخدام دفتر ملاحظات JUPYTER للغة برمجة أخرى غير لغة بايثون❓؟
الجواب هو نعم؟.
تم تصميم أدوات Jupyter لدعم لغات البرمجة المتعددة من خلال مفهوم Kernel، انظر الرسم البياني أدناه:
النواة هي الطريقة التي يقوم بها خادم دفتر 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.
بعد قليل من البحث (وفكرة غريبة بمحاولة إلقاء نفسي في تطبيق DIY) وصلت إلى Rapaio-jupyter-kernel وهو Jupyter Kernel الذي يدعم Java؟. ينص المشروع على:
نواة Jupyter للغة Java المبنية على JShell. يقوم بتنفيذ الإصدار 5.4 من مواصفات رسالة Jupyter، ويتطلب Java = 22.
إنه لأمر مدهش. لقد بدأت في استخدامه واو!؟. قم بإلقاء نظرة على بعض ميزاته، أدناه قمت بتلخيص الميزات الأكثر تمثيلاً:
يمكنك كتابة جافا عادية.
var result = 2 2; result4
// 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";
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3