سلام عليكم ورحمة وبركاته
سؤال الاول
هل يمكن دمج في مشروع مع جافا لغة بايثون
سؤال ثاني
اني عندي في مشكلة في مصدر . لغة انجليزي جيد لاباس به لكن مصادر صعبةفي عربي او صعب الاشخاص يفهمون او معلومة ناقصة
أحبذ أن يكون المشروعين منفصلين و يتم تصدير API يمكن استخدامها .
ولكن إن كان لا بد من دمج الاثنين , فبرأيي jython هو الحل المثالي هنا , حيث يتم ترجمة كود ال Python إلى Java
لاحظ هذا المثال :
import org.python.util.PythonInterpreter;
public class JythonHelloWorld {
public static void main(String[] args) {
try(PythonInterpreter pyInterp = new PythonInterpreter()) {
pyInterp.exec("print('Hello Python World!')");
}
}
}
بحيث يتم التواصل بين اللغتين بسهولة كما هو موضح.
من الممكن أن تشاهد فيديوهات إنكليزية ولو كان مستواك في اللغة بسيط , حتى أن هناك أنس أعرفهم , يطفؤون الصوت و يتبعون ما يفعله الشخص الذي يشرح.
فبرأيي ليست عقبة , و مع كثرة قرائتك للمصطلحات والمفاهيم تجد نفسك تحفظها مع الوقت .
فيما يخص السؤال الأول :
لا أرجح أبدًا أن يكون المشروع الخاص بك مبني باستخدام لغتين مختلفتين بالأخص java مع python بمعنى إذا كنت تحاول كتابة كود لأداء وظيفة ما حاول أن تقوم بكتابته باستخدام لغة واحدة فقط.
فلا يوجد طريقة فعّالة لكتابة كود في لغة A يستدعي كود في لغة B و و الذي بدوره يستدعي كود في اللغة A مرة أخرى. إلا إذا كان كلًا من اللغتين تعملان في بيئة عمل واحدة "و لكن لغة بايثون لا يمكنها العمل على JVM"
و لكن إذا كان هناك غرض ضروري مثل أنك تريد استخدام machine learning model مثلًا يمكنك استخدام اللغتين و لكن الأمر سيكون مكلِّف بعض الشئ لأنك ستحتاج استخدام العديد من التقنيات و الأمور الخاصة ب Devops. أو يمكنك استخدام ححاويات Docker للأكواد الخاصة ب python.
لذلك تم تطوير المكتبة Jython ، يمكنك استخدام الإصدار 3
فهو الإصدار الذي يدعم python 3.
أما عن السؤال الثاني:
يمكنك أن تجد توثيق باللغة العربية لمعظم اللغات البرمجية في موسوعة حسوب:
و مقالات في أكاديمية حسوب أيضًا
وعليكم السلام،
لربط برنامج بلغة معينة مع برنامج اخر بلغة اخرى يتم بعدة طرق إما عن طريق:
١. الAPI
٢. موجه الأوامر
٣. الشبكة
فى الطريقة الثانية يقوم فيها البرنامج الأساسي باستخدام موجه الأوامر في نظام التشغيل بتشغيل البرنامج المساعد و تمرير البيانات اللازمة له. فإذا فرضنا ان البرنامج الأساسى مكتوب بلغة الجافا و البرنامج المساعد بلغة البايثون فالربط يتم على النحو التالى
import java.io.*;
public class Main { public static void main(String[] args) throws Exception { Process process = Runtime.getRuntime().exec("python helper.py Rami"); BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream())); System.out.println(stdInput.readLine()); } }
اما عن سؤالك الثانى فيمكنك البدء فى المصادر العربية و رويدا رويدا تتجه إلى المصادر الأجنبية . و يمكنك الإعتماد على برامج الترجمة فى حالة إذا ما واجهتك صعوبات فى الفهم.
اتمنى لك التوفيق.
التعليقات