الفرق بين المراجعتين ل"Kotlin/native overview"
ط (تصويبات) |
|||
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين) | |||
سطر 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])، أو عندما يحتاج المطوّر لكتابة برنامجٍ مستقلّ وبحجمٍ مقبولٍ دون أيّ زيادة في زمن التشغيل. | |
− | وتدعم تقنية Kotlin/Native | + | وتدعم تقنية [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. |
− | + | وما تزال [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 ( | + | * Windows (بالإصدار x86_64 فقط) |
− | * Linux (x86_64 و arm32 و MIPS و MIPS little endian) | + | * Linux (بالإصدارات x86_64 و arm32 و MIPS و MIPS little endian) |
− | * MacOS ( | + | * MacOS (بالإصدار x86_64 فقط) |
− | * iOS ( | + | * iOS (بالإصدار arm64 فقط) |
− | * Android (كلًا من | + | * Android (كلًا من إصداريّ arm32 و arm64) |
− | * WebAssembly ( | + | * WebAssembly (بالإصدار wasm32 فقط) |
− | == بعض المشاريع النموذجيّة == | + | == بعض المشاريع النموذجيّة (Sample Projects) == |
− | تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في Kotlin/Native: | + | تستعرِض عيّنات المشاريع الآتية عددًا من الإمكانات المتاحة في [https://github.com/JetBrains/kotlin-native/ Kotlin/Native]: |
− | * [https://github.com/JetBrains/kotlin-native/tree/master/samples مركز | + | * [https://github.com/JetBrains/kotlin-native/tree/master/samples مركز التخزين Kotlin/Native GitHub]: يحتوي عدّة مشاريعَ نموذجيّة. |
− | * [https://github.com/jetbrains/kotlinconf-spinner تطبيق KotlinConf Spinner] | + | * [https://github.com/jetbrains/kotlinconf-spinner تطبيق KotlinConf Spinner]: لعبةٌ متعدِّدة المنصّات (cross-platform) لعدّة لاعبين مبنيّة بشكلٍ كاملٍ بتقنية [https://github.com/JetBrains/kotlin-native/ Kotlin/Native] وتتألف من: |
− | ** سند | + | ** سند خلفيّ (backend) بالاعتماد على مُحرِّك SQLite (راجع [[SQL|لغة SQL]]) لتخزين البيانات وواجهات REST/JSON. |
** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL. | ** عملاء (clients) لأنظمة iOS و Android باستخدام OpenGL. | ||
− | ** واجهات أماميّة (frontend) | + | ** واجهات أماميّة (frontend) وهي مستعرض يعتمد على WebAssembly لعرض نتائج اللعبة. |
− | * [https://github.com/JetBrains/kotlinconf-app/tree/master/ios تطبيق KotlinConf] | + | * [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 | + | * [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.