رهاينو (محرك جافا سكريبت)
راينو (بالإنجليزية: Rhino) هو محرك جافاسكربت مفتوح المصدر تم تطويره بواسطة لغة جافا ويدار بواسطة مؤسسة موزيلا. التي توفر محركا آخرا للجافاسكريت تمت كتابة الكود الخاص به بواسطة لغة سي يعرف بـسبايدر مونكي
راينو يقوم بتحويل كودات جافاسكربت إلى كلاسات (أصناف) برمجية. وهو يعمل بكلا من نمطي الـ (compiled) والـ (interpreted) وقد خطط لجعله يعمل لإعداد تطبيقات (Server Side) أي تطبيقات برمجية تعمل على الخادم (Server) كما في اي اس بي دوت نيت وبي اتش بي غير أنه لن تكون حاجة لدعم إضافي في متصفح الانترنت البراوزر.
اصدار حديث من راينو (راينو 1.6) تم إصداره لتتم كتابة الكود الخاصة به بواسطة لغة جافا وقد أنتجته الشركة المالكة لجافا (سن مايكروسستمس) وتم دمجه مع جافا 6 في سنة 2006 مما جعل التعامل مع الجافاسكربت عن طريق لغة البرمجة جافا امرا سهلا.
نبذة تاريخية
بدأ مشروع راينو في سنة 1997 بمؤسسة (Netscape Communications Corporation) نيتسكيب للاتصالات, والتي كانت تخطط لإنتاج اصدار من متصفح نيتسكيب المكتوب بلغة جافا كلية وبناء على ذلك فقد احتاجت إلى دمج الجافاسكربت ضمن لغة الجافا. وعندما توقف المشروع وترك العمل على المتصفح الجديد, تم إنهاء محرك راينو وقامت (suns microsystems) بشراء المشروع ودفع ثمن الرخصة لأكمال العمل عليه.
في الاصل تم دمج جميع كودات الجافاسكربت ضمن الجافا ضمن كلاس (صنف) برمجي خاص بذلك وكان العمل بجودة عالية جدا تتفوق على دمج الجافاسكربت ضمن لغة سي. غير ان المحرك عانا من مشكلتين اولاهما ان التنفيذ كان يستغرق وقتا طويلا لأن كلاس الجافاسكربت كان كبير الحجم. وأيضا فقد كان هناك مشكلة [[تسرب في الذاكرة) (memory leak) لأن معظم مشغلات الجافا لا تتضمن تطبيق جامع للقمامة (Garbage collection).
وبذلك فقد تمت إضافة نمط التشغيل الجديد للجافاسكربت في سنة 1998 (interpretive mode) وتم تحويل الكلاس إلى نمط اختياري وضمن مكتبة مدمجة (Dll) وبذلك زادت سرعة التنفيذ عن السابق ولم يعد التعامل مع الجافاسكربت داخل الجافا كبقية مكونات الجافا. وتم نشر الاصدار الأول من موزيلا في سنة 1998 وتم حجز الاصدار المصنف الذي يحتوي على كلاسات (اصناف) برمجية والذي عانا من مشاكل, واليوم وافقت موزيلا على نشر راينو بما فيه الاصدار الذي يحتوي على كلاسات كمشروع مفتوح المصدر قابل للتعديل (Open Source Project)ـ[٢]
مثال
الكود ادناه مكتوب بلغة جافاسكربت لتنفيذ تطبيق (Hello World) print('Hello, world!')
<source lang="java"> import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException;
public class RhinoEngine {
public static void main(String[] args) { ScriptEngineManager mgr = new ScriptEngineManager(); // Now we can go and get a script engine we want. // This can be done either by finding a factory that supports // our required scripting language // (engine = factory.getScriptEngine();) // or by requesting a script engine that supports a // given language by name from the script engine manager. ScriptEngine engine = mgr.getEngineByName("JavaScript"); // Now we have a script engine instance that // can execute some JavaScript try { engine.put("name", args[0]); engine.eval("print('Hello ' + name + '!')"); } catch (ScriptException ex) { ex.printStackTrace(); } }
} </source>
وفيما يلي مثال آخر لتحويل النص بين الاحرف الكبيرة والصغيرة.
<source lang="javascript"> // Equivalent in effect to the Java declaration import java.io.*; importPackage(java.io); importPackage(java.lang);
// "in" is a keyword in JavaScript. // In JavaScript you could query for an attribute using [] syntax: S = new BufferedReader(new InputStreamReader(System['in'])); s = true;
while (s){
s = S.readLine().toUpperCase(); if (s) System.out.println(s);
} </source>
المصادر
- ^ بنود رخصة مصدر موزيلا
- ^ | url=https://developer.mozilla.org/en/docs/New_in_Rhino_1.7R1 | title=New in Rhino 1.7R1 | publisher=Mozilla Foundation | accessdate=2008-03-20}}
وصلات خارجية
- Rhino - JavaScript for Java
- Download Rhino
- Download Archive (Main download page above doesn't work currently)
- إعداد: عمر سيروان
- 5 things you didn't know about... the Java Scripting API by Ted Neward
قالب:Mozilla projects قالب:ECMAScript
cs:Rhino de:Rhino (Programmierung) Rhino (JavaScript engine)]] es:Rhino fr:Rhino (moteur JavaScript) ja:Rhino pl:Rhino (JavaScript) ru:Rhino