استخدام لغة Kotlin في نطاق JavaScript

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

تتيح لغة 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).

مصادر