الفرق بين المراجعتين لصفحة: «Kotlin/js overview»
ط تعديل الروابط وتصحيح بعض الجمل |
إضافة رابطي المكتبة القياسية و Node.js |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في نطاق JavaScript}}</noinclude> | <noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في نطاق JavaScript}}</noinclude> | ||
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ | تتيح لغة Kotlin إمكانيّة استهداف [[JavaScript|لغة JavaScript]] من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في [[JavaScript]] ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. | ||
عند استخدام لغة Kotlin بهدف كتابة شيفرات [[JavaScript]] فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع و<nowiki/>[[Kotlin/stdlib|المكتبة القياسيّة في Kotlin]]) إلى شيفرة [[JavaScript]]، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد أيُّ ملفٍ غير متعلِّقٍ بلغة Kotlin أثناء عملية الترجمة (compilation). | |||
ويهدف مُترجِم Kotlin (Kotlin compiler) لتحقيق الأهداف الآتية: | |||
* أن يكون | * أن يكون الناتج (output) بحجم تخزينٍ مثاليّ | ||
* أن يصبح | * أن يصبح الناتج (output) مقروءًا بلغة [[JavaScript]] | ||
* تحقيق | * تحقيق توافقيّة التبديل (interoperability) مع الأنظمة الوحدويّة (module systems) الموجودة | ||
* تحقيق | * تحقيق الفعاليّة ذاتها في [[Kotlin/stdlib|المكتبة القياسيّة]] سواءً كان الهدف [[JavaScript]] أو JVM (لأقصى درجةٍ ممكنةٍ) | ||
== كيف يمكن القيام بذلك؟ == | == كيف يمكن القيام بذلك؟ == | ||
هنالك العديد من الوسائل لترجمة شيفرة Kotlin إلى شيفرة [[JavaScript]] ، وهي: | |||
* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف العميل client: | * إنشاء شيفرة Kotlin تستهدف [[JavaScript]] من طرف العميل (client): | ||
** '''التعامل مع عناصر DOM:''' إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (statically typed interfaces) للتعامل مع نمط | ** '''التعامل مع عناصر DOM (أي Document Object Model):''' إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (statically-typed interfaces) للتعامل مع نمط DOM ممّا يسمح بإنشاء عناصر DOM وتعديلها. | ||
** '''التعامل مع الرسوميّات مثل WebGL:''' إذ | ** '''التعامل مع الرسوميّات (graphics) مثل WebGL:''' إذ يُمكن استخدام لغة Kotlin لإنشاء عناصر رسوميّة في صفحة ويب بالاعتماد على WebGL. | ||
* إنشاء شيفرة Kotlin تستهدف JavaScript من طرف الخادم server: | * إنشاء شيفرة Kotlin تستهدف [[JavaScript]] من طرف الخادم (server): | ||
** '''العمل مع تقنيات طرف الخادم server-side technology:''' | ** '''العمل مع تقنيات طرف الخادم (server-side technology):''' مثل [[Node.js]]. | ||
ويُمكِن استخدام لغة Kotlin مع المكتبات أو | ويُمكِن استخدام لغة Kotlin مع المكتبات أو منصّات العمل الخارجيّة مثل [[jQuery]] أو React، إذ تُستخدَم أداة [https://github.com/kotlin/ts2kt ts2kt] للوصول للمنصّات الخارجيّة عبر واجهات API (من نوع strongly-typed) وذلك لتحويل تعريفات TypeScript (الموجودة في مركز توثيق التعريف [http://definitelytyped.org/ Definitely Typed]) إلى لغة Kotlin، أو قد يُستخدَم النمط الديناميكيّ كبديلٍ للوصول إلى أي منصّة دون اللجوء إلى strong typing. | ||
وتعمل شركة JetBrains على تطوير عددٍ من الأدوات | وتعمل شركة [https://www.jetbrains.com/ JetBrains] على تطوير عددٍ من الأدوات المخصّصة لمجتمع React مثل: [https://github.com/JetBrains/kotlin-wrappers React bindings] و تطبيق [https://github.com/JetBrains/create-react-kotlin-app Create React Kotlin App] ؛ إذ يساعد هذا التطبيق على البدء ببناء تطبيقات React باستخدام Kotlin بدون إعدادات خاصّة بعملية البناء (build configuration). | ||
وتتوافق لغة Kotlin كذلك مع CommonJS و AMD و UMD مما يحقِّق تفاعلًا مباشرًا مع مختلف الأنظمة الوحدويّة (module systems). | |||
== مصادر == | == مصادر == | ||
* [https://kotlinlang.org/docs/reference/js-overview.html | * [https://kotlinlang.org/docs/reference/js-overview.html استخدام لغة Kotlin في نطاق JavaScript في التوثيق الرسميّ للغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin JavaScript]] | [[تصنيف:Kotlin JavaScript]] |
المراجعة الحالية بتاريخ 11:32، 12 مايو 2018
تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا.
عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد أيُّ ملفٍ غير متعلِّقٍ بلغة Kotlin أثناء عملية الترجمة (compilation).
ويهدف مُترجِم Kotlin (Kotlin compiler) لتحقيق الأهداف الآتية:
- أن يكون الناتج (output) بحجم تخزينٍ مثاليّ
- أن يصبح الناتج (output) مقروءًا بلغة JavaScript
- تحقيق توافقيّة التبديل (interoperability) مع الأنظمة الوحدويّة (module systems) الموجودة
- تحقيق الفعاليّة ذاتها في المكتبة القياسيّة سواءً كان الهدف JavaScript أو JVM (لأقصى درجةٍ ممكنةٍ)
كيف يمكن القيام بذلك؟
هنالك العديد من الوسائل لترجمة شيفرة Kotlin إلى شيفرة JavaScript ، وهي:
- إنشاء شيفرة Kotlin تستهدف JavaScript من طرف العميل (client):
- التعامل مع عناصر DOM (أي Document Object Model): إذ توفِّر Kotlin عددًا من الواجهات الستاتيكيّة (statically-typed interfaces) للتعامل مع نمط DOM ممّا يسمح بإنشاء عناصر DOM وتعديلها.
- التعامل مع الرسوميّات (graphics) مثل WebGL: إذ يُمكن استخدام لغة Kotlin لإنشاء عناصر رسوميّة في صفحة ويب بالاعتماد على WebGL.
- إنشاء شيفرة Kotlin تستهدف JavaScript من طرف الخادم (server):
- العمل مع تقنيات طرف الخادم (server-side technology): مثل Node.js.
ويُمكِن استخدام لغة Kotlin مع المكتبات أو منصّات العمل الخارجيّة مثل jQuery أو React، إذ تُستخدَم أداة ts2kt للوصول للمنصّات الخارجيّة عبر واجهات API (من نوع strongly-typed) وذلك لتحويل تعريفات TypeScript (الموجودة في مركز توثيق التعريف Definitely Typed) إلى لغة Kotlin، أو قد يُستخدَم النمط الديناميكيّ كبديلٍ للوصول إلى أي منصّة دون اللجوء إلى strong typing.
وتعمل شركة JetBrains على تطوير عددٍ من الأدوات المخصّصة لمجتمع React مثل: React bindings و تطبيق Create React Kotlin App ؛ إذ يساعد هذا التطبيق على البدء ببناء تطبيقات React باستخدام Kotlin بدون إعدادات خاصّة بعملية البناء (build configuration).
وتتوافق لغة Kotlin كذلك مع CommonJS و AMD و UMD مما يحقِّق تفاعلًا مباشرًا مع مختلف الأنظمة الوحدويّة (module systems).