الفرق بين المراجعتين لصفحة: «Kotlin/server overview»
تعديل مصطلح خاطئ |
مراجعة |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في تطوير تطبيقات الخادم}}</noinclude> | <noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)}}</noinclude> | ||
تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات | تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة. | ||
== ميزات استخدام لغة Kotlin | == ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) == | ||
* '''القدرة على التعبير:''' | * '''القدرة على التعبير (Expressiveness):''' تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها [[Kotlin/type safe builders|للمنشِئ الحافظ للنوع (type-safe builder)]] و<nowiki/>[[Kotlin/delegated properties|الخاصّيات المُعمّمة (delegated properties)]]) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام. | ||
* '''قابلية التوسّع:''' | * '''قابلية التوسّع (Scalability):''' تدعم لغة Kotlin ميّزة [[Kotlin/coroutines|الروتينات المساعدة (coroutines)]]، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ أكبر من العملاء (clients) وبمتطلباتٍ عتاديّةٍ (hardware) بسيطة. | ||
* ''' | * '''قابليّة التبديل (Interoperability):''' تتوافق لغة Kotlin كليًّا مع بيئة العمل في لغة Java، إذ تتيح الاستفادة من التقنيّات التي اعتدنا عليها سابقًا مع استخدامنا لغةً أكثر حداثةً. | ||
* '''سهولة الانتقال من لغة Java:''' | * '''سهولة الانتقال من لغة Java:''' تُؤمِّن لغة Kotlin الانتقال التدريجيّ إليها (من الشيفرات المعقّدة في لغة Java) خطوةً بخطوة ، فمن الممكن كتابة شيفراتٍ برمجيّةٍ جديدةٍ مع إبقاء الأجزاء الأخرى السابقة الموجودة في بيئة Java. | ||
* '''الأدوات''': | * '''الأدوات (Tooling)''': توفّر لغة Kotlin إضافةً إلى بيئتها التطويريّة المتكاملة (IDE) أدوات عملٍ مُخصّصة (كما في حالة بيئة [https://spring.io/ Spring] مثلًا) وذلك عبر الإضافة الخاصّة ببيئة IntelliJ IDEA Ultimate. | ||
* '''المُعدّل السريع للتعلّم:''' | * '''المُعدّل السريع للتعلّم (Learning Curve):''' سيكون البدء بلغة Kotlin أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعد المحول الآلي (convertor) في الخطوات الأولى والذي يُستخدَم للتحويل من لغة Java إلى Kotlin والموجود في إضافات Kotlin (Kotlin Plugins)، ومن المفيد كذلك الاطلاع على عددٍ من [http://try.kotlinlang.org/koans التمارين التفاعليّة]. | ||
== بيئات العمل المتاحة لتطوير تطبيقات الخادم باستخدام لغة Kotlin == | == بيئات العمل المتاحة لتطوير تطبيقات الخادم باستخدام لغة Kotlin == | ||
* تستفيد بيئة العمل [https://spring.io/ Spring] من مميّزات لغة Kotlin للحصول على | * تستفيد بيئة العمل [https://spring.io/ Spring] من مميّزات لغة Kotlin للحصول على واجهات تطبيقات برمجيّة API أكثر دقّةٍ (ابتداءً من الإصدار 5.0)، ويسمح [https://start.spring.io/#!language=kotlin مُولِّد المشاريع (Project Generator)] المتوفِّر عبر الانترنت بإنشاء مشروعٍ جديدٍ بلغة Kotlin. | ||
* تقدّم بيئة العمل [http://vertx.io/ Vert.x] (المستخدَمة لبناء تطبيقات الويب التفاعليّة بالاعتماد على | * تقدّم بيئة العمل [http://vertx.io/ Vert.x] (المستخدَمة لبناء تطبيقات الويب التفاعليّة بالاعتماد على JVM) د[https://github.com/vert-x3/vertx-lang-kotlin عمًا مخصَّصًا] للغة Kotlin. | ||
* تُعدُّ بيئة [https://github.com/kotlin/ktor Ktor] بيئة عملٍ أصليّة للغة Kotlin وهي | * تُعدُّ بيئة [https://github.com/kotlin/ktor Ktor] بيئة عملٍ أصليّة للغة Kotlin وهي متوفِّرة عبر الانترنت من قِبل شركة [https://www.jetbrains.com/ JetBrains]، وهي تتيح التوسّع الكبير اعتمادًا على [[Kotlin/coroutines|الروتينات المساعدة (coroutines)]] (في لغة [[Kotlin]]) وتقدِّم واجهةَ تطبيق برمجيّة سهلةَ الاستخدام. | ||
* تعدُّ بيئة العمل [https://github.com/kotlin/kotlinx.html Kotlinx.html] لغةً مخصّصة المجال (DSL)، وتُستخدَم لبناء صفحات HTML في تطبيقات | * تعدُّ بيئة العمل [https://github.com/kotlin/kotlinx.html Kotlinx.html] لغةً مخصّصة المجال (DSL: Domain-Specific Language)، وتُستخدَم لبناء صفحات [[HTML]] في تطبيقات الويب، فهي تقدِّم العديد من البدائل لأنظمة القوالب التقليديّة (traditional templating systems) مثل قالبَي JSP و FreeMarker. | ||
* أما الخيارات المتاحة ( | * أما الخيارات المتاحة (في حالة المعلومات المُخزَّنة الدائمة) فتشمل الوصول المباشر في برمجية JDBC، وواجهات JPA، بالإضافة إلى استخدام قواعد البيانات NoSQL من خلال محركاتها عبر لغة Java، إذ يُستفاد لدى استخدام JPA من [https://kotlinlang.org/docs/reference/compiler-plugins.html#jpa-support إضافة Kotlin-JPA] الموجودة بالمُترجِم بملاءمة (adapt) بعض الأصناف (classes) بما يتناسب مع متطلبات بيئة العمل. | ||
== نشر تطبيقات الخادم بلغة Kotlin == | == نشر تطبيقات الخادم بلغة Kotlin == | ||
تُنشَر التطبيقات بلغة Kotlin ضمن أيّ مُضيف (host) يدعم تطبيقات Java للويب بما فيها AWS (Amazon Web Services)، ومنصة Google السحابيّة والعديد من الخدمات الأخرى، كما يمكن نشر التطبيقات بلغة Kotlin عبر منصّة [https://www.heroku.com/ Heroku]، وتوفّر شركة AWS Labs [https://github.com/awslabs/serverless-photo-recognition مشروعًا نموذجيًا] توضِّح فيه استخدام لغة Kotlin من أجل كتابة الدوال [https://aws.amazon.com/lambda/ AWS Lambda]. | |||
وتوفّر شركة AWS Labs [https://github.com/awslabs/serverless-photo-recognition مشروعًا نموذجيًا] توضِّح فيه استخدام لغة Kotlin من أجل كتابة الدوال [https://aws.amazon.com/lambda/ AWS Lambda]. | |||
== مستخدمو لغة Kotlin من جهة الخادم == | == مستخدمو لغة Kotlin من جهة الخادم == | ||
إنَّ [https://www.corda.net/2017/01/10/kotlin/ Corda] | إنَّ منصّة [https://www.corda.net/2017/01/10/kotlin/ Corda] المفتوحة المصدر والموزَّعة والتي تستخدم للسجلات وتُدعَم من كبرى المصارف مبنيةٌ كليًّا عبر لغة Kotlin، أمّا نظام [https://account.jetbrains.com/ JetBrains Account] والمسؤول عن كافَّة مبيعات التراخيص وعمليات التحقُّق في شركة [https://www.jetbrains.com/ JetBrains] فهو مكتوبٌ بأكمله بلغة Kotlin أيضًا، ووُضع بالخدمة منذ عام 2015 بدون حدوث مشاكل جوهريّة. | ||
أمّا نظام [https://account.jetbrains.com/ JetBrains Account] والمسؤول عن كافَّة مبيعات التراخيص وعمليات التحقُّق في شركة JetBrains فهو مكتوبٌ بأكمله بلغة Kotlin ووُضع بالخدمة منذ عام 2015 | |||
== مصادر == | == مصادر == | ||
* [https://kotlinlang.org/docs/reference/server-overview.html | * [https://kotlinlang.org/docs/reference/server-overview.html استخدام لغة Kotlin في تطوير تطبيقات الخادم في التوثيق الرسميّ للغة Kotlin] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Server]] | [[تصنيف:Kotlin Server]] |
مراجعة 08:11، 9 مايو 2018
تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة.
ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server)
- القدرة على التعبير (Expressiveness): تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها للمنشِئ الحافظ للنوع (type-safe builder) والخاصّيات المُعمّمة (delegated properties)) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام.
- قابلية التوسّع (Scalability): تدعم لغة Kotlin ميّزة الروتينات المساعدة (coroutines)، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ أكبر من العملاء (clients) وبمتطلباتٍ عتاديّةٍ (hardware) بسيطة.
- قابليّة التبديل (Interoperability): تتوافق لغة Kotlin كليًّا مع بيئة العمل في لغة Java، إذ تتيح الاستفادة من التقنيّات التي اعتدنا عليها سابقًا مع استخدامنا لغةً أكثر حداثةً.
- سهولة الانتقال من لغة Java: تُؤمِّن لغة Kotlin الانتقال التدريجيّ إليها (من الشيفرات المعقّدة في لغة Java) خطوةً بخطوة ، فمن الممكن كتابة شيفراتٍ برمجيّةٍ جديدةٍ مع إبقاء الأجزاء الأخرى السابقة الموجودة في بيئة Java.
- الأدوات (Tooling): توفّر لغة Kotlin إضافةً إلى بيئتها التطويريّة المتكاملة (IDE) أدوات عملٍ مُخصّصة (كما في حالة بيئة Spring مثلًا) وذلك عبر الإضافة الخاصّة ببيئة IntelliJ IDEA Ultimate.
- المُعدّل السريع للتعلّم (Learning Curve): سيكون البدء بلغة Kotlin أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعد المحول الآلي (convertor) في الخطوات الأولى والذي يُستخدَم للتحويل من لغة Java إلى Kotlin والموجود في إضافات Kotlin (Kotlin Plugins)، ومن المفيد كذلك الاطلاع على عددٍ من التمارين التفاعليّة.
بيئات العمل المتاحة لتطوير تطبيقات الخادم باستخدام لغة Kotlin
- تستفيد بيئة العمل Spring من مميّزات لغة Kotlin للحصول على واجهات تطبيقات برمجيّة API أكثر دقّةٍ (ابتداءً من الإصدار 5.0)، ويسمح مُولِّد المشاريع (Project Generator) المتوفِّر عبر الانترنت بإنشاء مشروعٍ جديدٍ بلغة Kotlin.
- تقدّم بيئة العمل Vert.x (المستخدَمة لبناء تطبيقات الويب التفاعليّة بالاعتماد على JVM) دعمًا مخصَّصًا للغة Kotlin.
- تُعدُّ بيئة Ktor بيئة عملٍ أصليّة للغة Kotlin وهي متوفِّرة عبر الانترنت من قِبل شركة JetBrains، وهي تتيح التوسّع الكبير اعتمادًا على الروتينات المساعدة (coroutines) (في لغة Kotlin) وتقدِّم واجهةَ تطبيق برمجيّة سهلةَ الاستخدام.
- تعدُّ بيئة العمل Kotlinx.html لغةً مخصّصة المجال (DSL: Domain-Specific Language)، وتُستخدَم لبناء صفحات HTML في تطبيقات الويب، فهي تقدِّم العديد من البدائل لأنظمة القوالب التقليديّة (traditional templating systems) مثل قالبَي JSP و FreeMarker.
- أما الخيارات المتاحة (في حالة المعلومات المُخزَّنة الدائمة) فتشمل الوصول المباشر في برمجية JDBC، وواجهات JPA، بالإضافة إلى استخدام قواعد البيانات NoSQL من خلال محركاتها عبر لغة Java، إذ يُستفاد لدى استخدام JPA من إضافة Kotlin-JPA الموجودة بالمُترجِم بملاءمة (adapt) بعض الأصناف (classes) بما يتناسب مع متطلبات بيئة العمل.
نشر تطبيقات الخادم بلغة Kotlin
تُنشَر التطبيقات بلغة Kotlin ضمن أيّ مُضيف (host) يدعم تطبيقات Java للويب بما فيها AWS (Amazon Web Services)، ومنصة Google السحابيّة والعديد من الخدمات الأخرى، كما يمكن نشر التطبيقات بلغة Kotlin عبر منصّة Heroku، وتوفّر شركة AWS Labs مشروعًا نموذجيًا توضِّح فيه استخدام لغة Kotlin من أجل كتابة الدوال AWS Lambda.
مستخدمو لغة Kotlin من جهة الخادم
إنَّ منصّة Corda المفتوحة المصدر والموزَّعة والتي تستخدم للسجلات وتُدعَم من كبرى المصارف مبنيةٌ كليًّا عبر لغة Kotlin، أمّا نظام JetBrains Account والمسؤول عن كافَّة مبيعات التراخيص وعمليات التحقُّق في شركة JetBrains فهو مكتوبٌ بأكمله بلغة Kotlin أيضًا، ووُضع بالخدمة منذ عام 2015 بدون حدوث مشاكل جوهريّة.