JSweet: مترجم جافا إلى جافا سكريبت
تستفيد JSweet من TypeScript لكتابة تطبيقات ويب غنية وسريعة الاستجابة بلغة Java من خلال استخدام مكتبات وأطر عمل JavaScript. باستخدام JSweet، يتم نقل برامج Java (تجميعها من المصدر إلى المصدر) إلى TypeScript وJavaScript لتشغيلها في المتصفحات أو طرق عرض الويب على الأجهزة المحمولة أو في Node.js.
- JSweet آمن وموثوق. فهو يوفر لتطبيقات الويب إمكانية التحقق من النوع وإنشاء برامج JavaScript تم التحقق من نوعها بشكل كامل. إنه يقف على برنامج Java Compiler (javac) من Oracle وعلى TypeScript (tsc) من Microsoft.
- يسمح لك JSweet باستخدام مكتبة JS المفضلة لديك (JSweet+Angular2، JSweet+threejs، IONIC/Cordova، ...).
- يتيح JSweet مشاركة التعليمات البرمجية بين Java من جانب الخادم وJavaScript من جانب العميل. يوفر JSweet تطبيقات لمكتبات Java الأساسية لمشاركة التعليمات البرمجية وغرض ترحيل Java القديم.
- JSweet سريع وخفيف الوزن وقابل للتشغيل المتبادل بالكامل مع JavaScript. التعليمات البرمجية التي تم إنشاؤها هي تعليمات JavaScript عادية، مما يعني عدم وجود أي تكاليف إضافية مقارنة بـ JavaScript، ويمكن أن تتفاعل مباشرة مع برامج ومكتبات JavaScript الحالية.
كيف يعمل؟ يعتمد JSweet على أوصاف مكتوبة جيدًا لواجهات برمجة تطبيقات JavaScript، والتي تسمى "الحلوى"، ويتم إنشاء معظمها تلقائيًا من ملفات تعريف TypeScript. يمكن رؤية أوصاف API هذه في Java كرؤوس (على غرار ملفات الرأس *.h في C) لربط مكتبات JavaSript من Java. هناك العديد من مصادر الحلوى للمكتبات الموجودة ويمكنك بسهولة إنشاء حلوى لأي مكتبة موجودة (انظر المزيد من التفاصيل).
مع JSweet، يمكنك الاستفادة من جميع أدوات Java (IDE's، Maven، ...) لبرمجة تطبيقات JavaScript حقيقية باستخدام أحدث مكتبات JavaScript.
جافا -> تايب سكريبت -> جافا سكريبت
إليك أول تجربة لما تحصل عليه باستخدام JSweet. فكر في برنامج Java البسيط هذا:
package org . jsweet ;
import static jsweet . dom . Globals .*;
/**
* This is a very simple example that just shows an alert.
*/
public class HelloWorld {
public static void main ( String [] args ) {
alert ( "Hi there!" );
}
}
Transpiling باستخدام JSweet يعطي برنامج TypeScript التالي:
namespace org . jsweet {
/**
* This is a very simple example that just shows an alert.
*/
export class HelloWorld {
public static main ( args : string [ ] ) {
alert ( "Hi there!" ) ;
}
}
}
org . jsweet . HelloWorld . main ( null ) ;
والذي بدوره ينتج مخرجات JavaScript التالية:
var org ;
( function ( org ) {
var jsweet ;
( function ( jsweet ) {
/**
* This is a very simple example that just shows an alert.
*/
var HelloWorld = ( function ( ) {
function HelloWorld ( ) {
}
HelloWorld . main = function ( args ) {
alert ( "Hi there!" ) ;
} ;
return HelloWorld ;
} ( ) ) ;
jsweet . HelloWorld = HelloWorld ;
} ) ( jsweet = org . jsweet || ( org . jsweet = { } ) ) ;
} ) ( org || ( org = { } ) ) ;
org . jsweet . HelloWorld . main ( null ) ;
المزيد مع وضع الحماية المباشر.
سمات
- تعيين بناء الجملة بالكامل بين Java وTypeScript، بما في ذلك الفئات والواجهات والأنواع الوظيفية وأنواع الاتحاد وأنواع الصف وأنواع الكائنات وأنواع السلسلة وما إلى ذلك.
- تمت إضافة دعم واسع النطاق لبنيات Java ودلالاتها منذ الإصدار 1.1.0 (الفئات الداخلية، والفئات المجهولة، والحقول النهائية، والتحميل الزائد للطريقة، ومثيل المشغل، والمهيئات الثابتة، ...).
- أكثر من 1000 من مكتبات وإطارات عمل ومكونات JavaScript لكتابة تطبيقات HTML5 على الويب والجوال (JQuery وUnderscore وAngular وBackbone وCordova وNode.js وغير ذلك الكثير).
- مستودع Maven يحتوي على جميع المكتبات المتاحة في مصنوعات Maven (المعروفة أيضًا باسم الحلوى).
- دعم واجهات برمجة التطبيقات الأساسية لـ Java مثل حلوى J4TS (متفرعة من محاكاة GWT's JRE).
- البرنامج المساعد Eclipse لسهولة التثبيت والاستخدام.
- مكون إضافي لـ Maven لاستخدام JSweet من أي IDE آخر أو من سطر الأوامر.
- مكون إضافي لـ Gradle لدمج JSweet مع المشاريع المستندة إلى Gradle.
- وضع تصحيح لتمكين تصحيح أخطاء كود Java داخل متصفحك المفضل.
- مجموعة من أمثلة WEB/Mobile HTML5 الرائعة للبدء والتعود على JSweet وواجهات برمجة تطبيقات JavaScript الأكثر شيوعًا (المزيد من الأمثلة في قسم الأمثلة).
- دعم الحزم لتشغيل البرامج التي تم إنشاؤها بأبسط الطرق.
- دعم وحدات JavaScript (commonjs، amd، umd). يمكن تشغيل برامج JSweet في المتصفح أو في Node.js.
- دعم الإصدارات المستهدفة المختلفة لـ EcmaScript (من ES3 إلى ES6).
- دعم لغة غير متزامنة/انتظار
- ...
لمزيد من التفاصيل، انتقل إلى مواصفات اللغة (PDF).
ابدء
- الخطوة 1: تثبيت (أو التحقق من تثبيت) Git وNode.js وMaven (الأوامر
git
و node
و npm
و mvn
يجب أن تكون في المسار الخاص بك). - الخطوة 2: استنساخ مشروع jsweet-quickstart من Github:
$ git clone https://github.com/cincheo/jsweet-quickstart.git
- الخطوة 3: قم بتشغيل برنامج التحويل لإنشاء كود JavaScript:
$ cd jsweet-quickstart
$ mvn generate-sources
- الخطوة 4: تحقق من النتيجة في متصفحك:
$ firefox webapp/index.html
- الخطوة 5: تحرير المشروع وبدء البرمجة:
- تحقق من الأمثلة لرؤية حالات الاستخدام المختلفة
- الوصول إلى مئات libs (الحلويات)
- ارجع إلى مواصفات اللغة لمعرفة المزيد عن البرمجة باستخدام JSweet
- مستخدمو Eclipse: قم بتثبيت البرنامج الإضافي Eclipse للحصول على تقارير الأخطاء المضمنة والإنشاء عند الحفظ وواجهة مستخدم التكوين السهلة
مزيد من المعلومات على http://www.jsweet.org.
أمثلة
- أمثلة بسيطة توضح استخدام أطر العمل المختلفة في Java (jQuery، Underscore، Backbone، AngularJS، Knockout): https://github.com/cincheo/jsweet-examples
- أمثلة بسيطة توضح استخدام إطار عمل Threejs في Java: https://github.com/cincheo/jsweet-examples-threejs)
- Node.js + المقبس.IO + AngularJS: https://github.com/lgrignon/jsweet-node-example
- بعض الأمثلة البسيطة للبدء باستخدام React.js: https://github.com/cincheo/jsweet-examples-react
- مثال خادم JSweet JAX-RS (كيفية مشاركة نموذج Java بين العميل والخادم): https://github.com/lgrignon/jsweet-jaxrs-server-example
- مثال JSweet Cordova/البوليمر: https://github.com/lgrignon/jsweet-cordova-polymer-example
- JSweet Cordova / مثال أيوني: https://github.com/lgrignon/jsweet-cordova-ionic-example
- مثال JSweet Angular 2: https://github.com/cincheo/jsweet-angular2-quickstart
- JSweet Angular 2 + PrimeNG: https://github.com/cincheo/jsweet-primeng-quickstart
المشاريع الفرعية
تم تنظيم هذا المستودع في مشاريع فرعية. كل مشروع فرعي لديه عملية البناء الخاصة به.
- JSweet transpiler: مترجم Java إلى TypeScript/JavaScript.
- حلوى JSweet الأساسية: واجهات برمجة التطبيقات الأساسية (لغة JavaScript، وJavaScript DOM، والأدوات المساعدة للغة JSweet).
- وقت تشغيل JDK: شوكة من محاكاة JRE الخاصة بـ GWT لتنفيذ واجهات برمجة تطبيقات JDK الرئيسية في JSweet/TypeScript/JavaScript.
- JSweet Candy generator: أداة لإنشاء واجهات برمجة تطبيقات Java من ملفات تعريف TypeScript، وتجميعها كحلوى JSweet.
- وثائق JSweet: وثائق JSweet.
بالإضافة إلى ذلك، تتوفر بعض الأدوات الخاصة بـ JSweet في مستودعات خارجية.
- البرنامج المساعد مخضرم
- البرنامج المساعد Gradle
- الكسوف البرنامج المساعد
كيفية البناء
يرجى التحقق من ملف README لكل مشروع فرعي.
المساهمة
يستخدم JSweet تدفق Git. يمكنك تفرع هذا المستودع. يتم تطوير الفرع الافتراضي. يرجى استخدام git flow feature start myAwesomeFeature
لبدء العمل على شيء رائع :) عند الانتهاء، يمكنك إرسال طلب سحب GitHub عادي.
رخصة
يرجى قراءة ملف الترخيص.