الفرق بين المراجعتين لصفحة: «Kotlin/js overview»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في نطاق JavaScript}}</noinclude> تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript م...'
 
ط تعديل الروابط وتصحيح بعض الجمل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في نطاق JavaScript}}</noinclude>
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في نطاق JavaScript}}</noinclude>
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ المعايير القياسيّة في ECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع ECMAScript 2015 لاحقًا.
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ مواصفة ECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع مواصفة ECMAScript 2015 لاحقًا.


لدى اختيارك لاستخدام لغة Kotlin بهدف كتابة شيفرات JavaScript  فإنّ أي شيفرة بلغة Kotlin (كونها جزءٌ من المشروع ومن المكتبة القياسيّة المرتبطة بلغة Kotlin) ستُحوَّل إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد أثناء عملية الترجمة (compilation) أيُّ ملفٍ غير متعلِّقٍ بلغة Kotlin.
لدى اختيارك لاستخدام لغة Kotlin بهدف كتابة شيفرات JavaScript  فإنّ أي شيفرة بلغة Kotlin (كونها جزءًا من المشروع ومن المكتبة القياسيّة المرتبطة بلغة Kotlin) ستُحوَّل إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد أثناء عملية الترجمة (compilation) أيُّ ملفٍ غير متعلِّقٍ بلغة Kotlin.


ويحاول مترجم Kotlin ‏(Kotlin compiler) تحقيق الأهداف الآتية:
ويحاول مترجم Kotlin ‏(Kotlin compiler) تحقيق الأهداف الآتية:
سطر 11: سطر 11:


== كيف يمكن القيام بذلك؟ ==
== كيف يمكن القيام بذلك؟ ==
يمكنك ترجمة شيفرة Kotlin إلى شيفرة JavaScript بإحدى الطرق الآتية:
يمكنك ترجمة شيفرة Kotlin إلى شيفرة JavaScript بإحدى الطرائق الآتية:
* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف العميل client:
* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف العميل client:
** '''التعامل مع عناصر DOM:''' إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (static) للتعامل مع نمط Document Object Model ممّا يسمح بإنشاء عناصر DOM وتعديلها.
** '''التعامل مع عناصر DOM:''' إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (statically typed interfaces) للتعامل مع نمط Document Object Model ممّا يسمح بإنشاء عناصر DOM وتعديلها.
** '''التعامل مع الرسوميّات مثل WebGL:''' إذ يمكنك استخدام لغة Kotlin لإنشاء عناصر رسوميّة في صفحة ويب بالاعتماد على WebGL.
** '''التعامل مع الرسوميّات مثل WebGL:''' إذ يمكنك استخدام لغة Kotlin لإنشاء عناصر رسوميّة في صفحة ويب بالاعتماد على WebGL.


* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف الخادم server:
* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف الخادم server:
** '''العمل مع تقنيات طرف الخادم server:''' حيث يمكنك استخدام لغة Kotlin للتعامل مع  JavaScript من طرف الخادم server مثل Node.js.
** '''العمل مع تقنيات طرف الخادم server-side technology:''' إذ يمكنك استخدام لغة Kotlin للتعامل مع  JavaScript من طرف الخادم server مثل Node.js.
ويُمكِن استخدام لغة Kotlin مع المكتبات أو منصات العمل الخارجيّة مثل jQuery أو React، إذ إنّه للوصول للمنصات الخارجية عبر واجهات API (من نوع strongly-typed) تستطيع استخدام أداة [https://github.com/kotlin/ts2kt ts2kt] وذلك لتحويل تعريفات TypeScript الموجودة في مركز توثيق التعريف [http://definitelytyped.org/ Definitely Typed] إلى لغة Kotlin، أو يمكنك استخدام [https://kotlinlang.org/docs/reference/dynamic-type.html النمط الديناميكيّ] كبديلٍ للوصول إلى أي منصة دون اللجوء إلى strong typing.
ويُمكِن استخدام لغة Kotlin مع المكتبات أو منصات العمل الخارجيّة مثل jQuery أو React، إذ إنّه للوصول للمنصات الخارجية عبر واجهات API (من نوع strongly-typed) تستطيع استخدام أداة [https://github.com/kotlin/ts2kt ts2kt] وذلك لتحويل تعريفات TypeScript الموجودة في مركز توثيق التعريف [http://definitelytyped.org/ Definitely Typed] إلى لغة Kotlin، أو يمكنك استخدام [[Kotlin/dynamic type|النمط الديناميكيّ]] كبديلٍ للوصول إلى أي منصة دون اللجوء إلى strong typing.


وتعمل شركة JetBrains على تطوير عددٍ من الأدوات خصّيصًا لمجتمع React مثل: [https://github.com/JetBrains/kotlin-wrappers React bindings] و[https://github.com/JetBrains/create-react-kotlin-app Create React Kotlin App] ؛ إذ تساعد أداة Create React Kotlin App على البدء ببناء تطبيقات React باستخدام Kotlin بدون إعدادات خاصّة بعملية البناء (build configuration).
وتعمل شركة JetBrains على تطوير عددٍ من الأدوات خصّيصًا لمجتمع React مثل: [https://github.com/JetBrains/kotlin-wrappers React bindings] و[https://github.com/JetBrains/create-react-kotlin-app Create React Kotlin App] ؛ إذ تساعد أداة Create React Kotlin App على البدء ببناء تطبيقات React باستخدام Kotlin بدون إعدادات خاصّة بعملية البناء (build configuration).


وتُعدُّ لغة Kotlin متوافقةً مع  CommonJS و AMD و UMD مما ي[https://kotlinlang.org/docs/tutorials/javascript/working-with-modules/working-with-modules.html حقِّق تفاعلًا مباشرًا] مع مختلف الأنظمة الوحدويّة (module systems).
وتُعدُّ لغة Kotlin متوافقةً مع  CommonJS و AMD و UMD مما [https://kotlinlang.org/docs/tutorials/javascript/working-with-modules/working-with-modules.html يحقِّق تفاعلًا مباشرًا] مع مختلف الأنظمة الوحدويّة (module systems).
 
== البدء بتحويل شيفرة Kotlin إلى JavaScript ==
لمعرفة تفاصيل البدء بذلك يمكنك الرجوع إلى الدليل التعليميّ المُتاح بالانكليزيّة عبر [https://kotlinlang.org/docs/tutorials/javascript/kotlin-to-javascript/kotlin-to-javascript.html الرابط].


== مصادر ==
== مصادر ==

مراجعة 03:55، 3 مارس 2018

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ مواصفة ECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع مواصفة ECMAScript 2015 لاحقًا.

لدى اختيارك لاستخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فإنّ أي شيفرة بلغة Kotlin (كونها جزءًا من المشروع ومن المكتبة القياسيّة المرتبطة بلغة Kotlin) ستُحوَّل إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد أثناء عملية الترجمة (compilation) أيُّ ملفٍ غير متعلِّقٍ بلغة Kotlin.

ويحاول مترجم Kotlin ‏(Kotlin compiler) تحقيق الأهداف الآتية:

  • أن يكون الخرج بحجم تخزينٍ مثاليّ
  • أن يصبح الخرج مقروءًا بلغة JavaScript
  • تحقيق توافقية التبديل (interoperability) مع الأنظمة الوحدويّة (module systems) الموجودة
  • تحقيق نفس الفعاليّة في المكتبة القياسيّة سواءً أكان الهدف JavaScript أو JVM (لأقصى درجة ممكنة)

كيف يمكن القيام بذلك؟

يمكنك ترجمة شيفرة Kotlin إلى شيفرة JavaScript بإحدى الطرائق الآتية:

  • إنشاء شيفرة Kotlin تستهدف JavaScript من طرف العميل client:
    • التعامل مع عناصر DOM: إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (statically typed interfaces) للتعامل مع نمط Document Object Model ممّا يسمح بإنشاء عناصر DOM وتعديلها.
    • التعامل مع الرسوميّات مثل WebGL: إذ يمكنك استخدام لغة Kotlin لإنشاء عناصر رسوميّة في صفحة ويب بالاعتماد على WebGL.
  • إنشاء شيفرة Kotlin تستهدف JavaScript من طرف الخادم server:
    • العمل مع تقنيات طرف الخادم server-side technology: إذ يمكنك استخدام لغة Kotlin للتعامل مع JavaScript من طرف الخادم server مثل Node.js.

ويُمكِن استخدام لغة Kotlin مع المكتبات أو منصات العمل الخارجيّة مثل jQuery أو React، إذ إنّه للوصول للمنصات الخارجية عبر واجهات API (من نوع strongly-typed) تستطيع استخدام أداة ts2kt وذلك لتحويل تعريفات TypeScript الموجودة في مركز توثيق التعريف Definitely Typed إلى لغة Kotlin، أو يمكنك استخدام النمط الديناميكيّ كبديلٍ للوصول إلى أي منصة دون اللجوء إلى strong typing.

وتعمل شركة JetBrains على تطوير عددٍ من الأدوات خصّيصًا لمجتمع React مثل: React bindings وCreate React Kotlin App ؛ إذ تساعد أداة Create React Kotlin App على البدء ببناء تطبيقات React باستخدام Kotlin بدون إعدادات خاصّة بعملية البناء (build configuration).

وتُعدُّ لغة Kotlin متوافقةً مع  CommonJS و AMD و UMD مما يحقِّق تفاعلًا مباشرًا مع مختلف الأنظمة الوحدويّة (module systems).

مصادر