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

من موسوعة حسوب
ط تصويبات
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:Kotlin/Native}}</noinclude>
<noinclude>{{DISPLAYTITLE:Kotlin/Native}}</noinclude>
== ما هي تقنية Kotlin/Native؟ ==
== ما هي تقنية Kotlin/Native؟ ==
تُعدُّ [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] تقنيةً لترجمة شيفرة Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) التي لا تتطلَّب آلةً افتراضيّة (Virtual Machine) لتشغيلها، وتشمل كلًا من معالجات خلفيّة (أو السند الخلفي، backend) معتمدةً على تقنيات مكتبة LLVM للمترجم (compiler) وتعريف استخدام أساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت بالأصل للسماح بالترجمة لمنصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets]) أو عندما يحتاج المطوّر لكتابة برنامجٍ مستقلّ وبحجمٍ مقبولٍ دون أن ينتج عن ذلك زمن تشغيلٍ إضافيّ.
تُستخدَم تقنية [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] لترجمة شيفرات Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) والتي لا تتطلَّب آلةً افتراضيّة (virtual machine) لتشغيلها، وتشمل كلًا من المعالجات الخلفيّة (أو السند الخلفي [backend]) المعتمدة على تقنيات مكتبة LLVM للمترجِم (compiler) وكذلك تعريف الاستخدام الأساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت هذه التقنية للسماح بالترجمة في منصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets])، أو عندما يحتاج المطوّر لكتابة برنامجٍ مستقلّ وبحجمٍ مقبولٍ دون أيّ زيادة في زمن التشغيل.


وتدعم تقنية Kotlin/Native توافقية التبديل (interoperability) مع الشيفرة الأساسيّة (native code)، كما أن هناك مكتبات متاحة مُوافقةٍ  لمكتبات منصّات العمل (platforms)، أما بالنسبة للمكتبات الأخرى فهناك أ[https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md داة لتوليد مكتبةٍ تبديليّةٍ] (introp) من ترويسة ملف C متضمّنةً الدعم الكامل لكلّ مزايا لغة البرمجة C، كما وتدعم توافقية التبديل (interoperability) مع شيفرات Objective/C في أنظمة macOS و iOS.
وتدعم تقنية [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] توافقيّة التبديل (interoperability) مع الشيفرة الأساسيّة (native code) إذ تتوفَّر المكتبات المُوافقِةٍ لمكتبات منصّات العمل (platforms)، أمّا بالنسبة للمكتبات الأخرى فهناك [https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md أداة لتوليد مكتبةٍ تبديليّةٍ] (introp library) من ترويسة ملف C لتؤمِّن الدعم الكامل لكلّ مزايا لغة البرمجة C، كما وتدعم توافقيّة التبديل (interoperability) مع شيفرات Objective/C في أنظمة macOS و iOS.


ولا تزال Kotlin/Native قيد التطوير إذ إنّ بعض الإصدارات التجريبيّة منها متاحة، ويتوفَّر دعم بيئة العمل (IDE) لها من خلال إضافةٍ (plugin) عبر [https://www.jetbrains.com/clion/ CLion].
وما تزال [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] قيد التطوير ومن السهل الحصول على بعض الإصدارات التجريبيّة منها، كما يتوفَّر دعم بيئة العمل (IDE) لها من خلال الإضافة (plugin) المتاحة عبر [https://www.jetbrains.com/clion/ CLion].


== المنصات المستهدفة ==
== المنصات المستهدفة (Target Platforms) ==
تدعم Kotlin/Native حاليًا المنصّات الآتية:
تدعم [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] المنصّات الآتية:
* Windows (فقط بالإصدار x86_64 )
* Windows (بالإصدار x86_64 فقط)
* Linux‏ (x86_64 و arm32 و MIPS و MIPS little endian)
* Linux‏ (بالإصدارات x86_64 و arm32 و MIPS و MIPS little endian)
* MacOS (فقط بالإصدار x86_64 )
* MacOS (بالإصدار x86_64 فقط)
* iOS (فقط بالإصدار arm64)
* iOS (بالإصدار arm64 فقط)
* Android (كلًا من إصداري arm32 و arm64)
* Android (كلًا من إصداريّ arm32 و arm64)
* WebAssembly (فقط بالإصدار wasm32 )
* WebAssembly (بالإصدار wasm32 فقط)


== بعض المشاريع النموذجيّة ==
== بعض المشاريع النموذجيّة (Sample Projects) ==
تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في Kotlin/Native:
تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في [https://github.com/JetBrains/kotlin-native/ Kotlin/Native]:
* [https://github.com/JetBrains/kotlin-native/tree/master/samples مركز تخزين Kotlin/Native GitHub] والذي يحتوي على عدّة مشاريع نموذجية.
* [https://github.com/JetBrains/kotlin-native/tree/master/samples مركز التخزين Kotlin/Native GitHub]: يحتوي عدّة مشاريعَ نموذجيّة.
* [https://github.com/jetbrains/kotlinconf-spinner تطبيق KotlinConf Spinner] وهو عبارة عن لعبة متعددة المنصات (cross-platform) وبعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية Kotlin/Native وتتألف من:
* [https://github.com/jetbrains/kotlinconf-spinner تطبيق KotlinConf Spinner]: لعبةٌ متعدِّدة المنصّات (cross-platform) لعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] وتتألف من:
** سند خلفي (backend) بالاعتماد على SQLite لتخزين البيانات وعلى واجهات REST/JSON.
** سند خلفيّ (backend) بالاعتماد على مُحرِّك SQLite (راجع [[SQL|لغة SQL]]) لتخزين البيانات وواجهات REST/JSON.
** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL.
** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL.
** واجهات أماميّة (frontend) من خلال مستعرضٍ يعتمد على WebAssembly لعرض نتائج اللعبة.
** واجهات أماميّة (frontend) وهي مستعرض يعتمد على WebAssembly لعرض نتائج اللعبة.
* [https://github.com/JetBrains/kotlinconf-app/tree/master/ios تطبيق KotlinConf] والذي هو تطبيق iOS بواجهات مستخدمٍ معتمدةً على UIKit وهي بهذا تعرض إمكانيّات توافقيّة التبديل إلى Objective/C في Kotlin/Native.
* [https://github.com/JetBrains/kotlinconf-app/tree/master/ios تطبيق KotlinConf]: تطبيق iOS بواجهاتٍ معتمدةٍ على UIKit والتي تعرِض إمكانيّات توافقيّة التبديل (interoperability) إلى Objective/C في Kotlin/Native.


== مصادر ==
== مصادر ==
* [https://kotlinlang.org/docs/reference/native-overview.html صفحة تقنية Kotlin/Native في التوثيق الرسميّ للغة Kotlin]
* [https://kotlinlang.org/docs/reference/native-overview.html تقنية Kotlin/Native في التوثيق الرسميّ للغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Interoperability]]
[[تصنيف:Kotlin Interoperability]]

المراجعة الحالية بتاريخ 08:02، 15 مايو 2018

ما هي تقنية Kotlin/Native؟

تُستخدَم تقنية Kotlin/Native لترجمة شيفرات Kotlin إلى الصيغة الثنائيّة الأساسيّة (native binaries) والتي لا تتطلَّب آلةً افتراضيّة (virtual machine) لتشغيلها، وتشمل كلًا من المعالجات الخلفيّة (أو السند الخلفي [backend]) المعتمدة على تقنيات مكتبة LLVM للمترجِم (compiler) وكذلك تعريف الاستخدام الأساسيّ (native implementation) من مكتبة التشغيل (runtime) في Kotlin، وقد صُمّمت هذه التقنية للسماح بالترجمة في منصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة iOS والأهداف المدمجة [embedded targets])، أو عندما يحتاج المطوّر لكتابة برنامجٍ مستقلّ وبحجمٍ مقبولٍ دون أيّ زيادة في زمن التشغيل.

وتدعم تقنية Kotlin/Native توافقيّة التبديل (interoperability) مع الشيفرة الأساسيّة (native code) إذ تتوفَّر المكتبات المُوافقِةٍ لمكتبات منصّات العمل (platforms)، أمّا بالنسبة للمكتبات الأخرى فهناك أداة لتوليد مكتبةٍ تبديليّةٍ (introp library) من ترويسة ملف C لتؤمِّن الدعم الكامل لكلّ مزايا لغة البرمجة C، كما وتدعم توافقيّة التبديل (interoperability) مع شيفرات Objective/C في أنظمة macOS و iOS.

وما تزال Kotlin/Native قيد التطوير ومن السهل الحصول على بعض الإصدارات التجريبيّة منها، كما يتوفَّر دعم بيئة العمل (IDE) لها من خلال الإضافة (plugin) المتاحة عبر CLion.

المنصات المستهدفة (Target Platforms)

تدعم Kotlin/Native المنصّات الآتية:

  • Windows (بالإصدار x86_64 فقط)
  • Linux‏ (بالإصدارات x86_64 و arm32 و MIPS و MIPS little endian)
  • MacOS (بالإصدار x86_64 فقط)
  • iOS (بالإصدار arm64 فقط)
  • Android (كلًا من إصداريّ arm32 و arm64)
  • WebAssembly (بالإصدار wasm32 فقط)

بعض المشاريع النموذجيّة (Sample Projects)

تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في Kotlin/Native:

  • مركز التخزين Kotlin/Native GitHub: يحتوي عدّة مشاريعَ نموذجيّة.
  • تطبيق KotlinConf Spinner: لعبةٌ متعدِّدة المنصّات (cross-platform) لعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية Kotlin/Native وتتألف من:
    • سند خلفيّ (backend) بالاعتماد على مُحرِّك SQLite (راجع لغة SQL) لتخزين البيانات وواجهات REST/JSON.
    • عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL.
    • واجهات أماميّة (frontend) وهي مستعرض يعتمد على WebAssembly لعرض نتائج اللعبة.
  • تطبيق KotlinConf: تطبيق iOS بواجهاتٍ معتمدةٍ على UIKit والتي تعرِض إمكانيّات توافقيّة التبديل (interoperability) إلى Objective/C في Kotlin/Native.

مصادر