الفرق بين المراجعتين لصفحة: «Kotlin/native overview»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:Kotlin/Native}}</noinclude> == ما هي تقنية Kotlin/Native؟ == تُعدُّ [https://github.com/JetBrains/kotlin-native/ Kotlin/Native]...' |
ط تصويبات |
||
سطر 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، وقد صُمّمت بالأصل للسماح بالترجمة لمنصّات العمل التي تكون فيها الآلات الافتراضيّة غير متاحةٍ أو مرغوبةٍ (مثل أنظمة | تُعدُّ [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. | وتدعم تقنية Kotlin/Native توافقية التبديل (interoperability) مع الشيفرة الأساسيّة (native code)، كما أن هناك مكتبات متاحة مُوافقةٍ لمكتبات منصّات العمل (platforms)، أما بالنسبة للمكتبات الأخرى فهناك أ[https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md داة لتوليد مكتبةٍ تبديليّةٍ] (introp) من ترويسة ملف C متضمّنةً الدعم الكامل لكلّ مزايا لغة البرمجة C، كما وتدعم توافقية التبديل (interoperability) مع شيفرات Objective/C في أنظمة macOS و iOS. | ||
سطر 10: | سطر 10: | ||
تدعم Kotlin/Native حاليًا المنصّات الآتية: | تدعم Kotlin/Native حاليًا المنصّات الآتية: | ||
* Windows (فقط بالإصدار x86_64 ) | * Windows (فقط بالإصدار x86_64 ) | ||
* | * Linux (x86_64 و arm32 و MIPS و MIPS little endian) | ||
* MacOS (فقط بالإصدار x86_64 ) | * MacOS (فقط بالإصدار x86_64 ) | ||
* iOS (فقط بالإصدار arm64) | * iOS (فقط بالإصدار arm64) | ||
سطر 20: | سطر 20: | ||
* [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) وبعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية Kotlin/Native وتتألف من: | ||
** | ** سند خلفي (backend) بالاعتماد على SQLite لتخزين البيانات وعلى واجهات REST/JSON. | ||
** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL. | ** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL. | ||
** واجهات أماميّة (frontend) من خلال مستعرضٍ يعتمد على WebAssembly لعرض نتائج اللعبة. | ** واجهات أماميّة (frontend) من خلال مستعرضٍ يعتمد على WebAssembly لعرض نتائج اللعبة. | ||
سطر 26: | سطر 26: | ||
== مصادر == | == مصادر == | ||
[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]] | [[تصنيف:Interoperability]] |
مراجعة 09:58، 4 مارس 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) من ترويسة ملف C متضمّنةً الدعم الكامل لكلّ مزايا لغة البرمجة C، كما وتدعم توافقية التبديل (interoperability) مع شيفرات Objective/C في أنظمة macOS و iOS.
ولا تزال Kotlin/Native قيد التطوير إذ إنّ بعض الإصدارات التجريبيّة منها متاحة، ويتوفَّر دعم بيئة العمل (IDE) لها من خلال إضافةٍ (plugin) عبر CLion.
المنصات المستهدفة
تدعم Kotlin/Native حاليًا المنصّات الآتية:
- Windows (فقط بالإصدار x86_64 )
- Linux (x86_64 و arm32 و MIPS و MIPS little endian)
- MacOS (فقط بالإصدار x86_64 )
- iOS (فقط بالإصدار arm64)
- Android (كلًا من إصداري arm32 و arm64)
- WebAssembly (فقط بالإصدار wasm32 )
بعض المشاريع النموذجيّة
تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في Kotlin/Native:
- مركز تخزين Kotlin/Native GitHub والذي يحتوي على عدّة مشاريع نموذجية.
- تطبيق KotlinConf Spinner وهو عبارة عن لعبة متعددة المنصات (cross-platform) وبعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية Kotlin/Native وتتألف من:
- سند خلفي (backend) بالاعتماد على SQLite لتخزين البيانات وعلى واجهات REST/JSON.
- عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL.
- واجهات أماميّة (frontend) من خلال مستعرضٍ يعتمد على WebAssembly لعرض نتائج اللعبة.
- تطبيق KotlinConf والذي هو تطبيق iOS بواجهات مستخدمٍ معتمدةً على UIKit وهي بهذا تعرض إمكانيّات توافقيّة التبديل إلى Objective/C في Kotlin/Native.