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

من موسوعة حسوب
تعديل مصطلح خاطئ
طلا ملخص تعديل
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في تطوير تطبيقات الخادم}}</noinclude>
<noinclude>{{DISPLAYTITLE:استخدام لغة Kotlin في تطوير تطبيقات الخادم (Server)}}</noinclude>
تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم؛ إذ تتيح كتابة الشيفرة بشكلٍ دقيقٍ ومعبِّر مع الحفاظ على التوافقيّة التامّة مع تقنيات لغة Java وبمعدّل تعلّم سريع.
تُعدّ لغة Kotlin أداةً قويةً في تطوير تطبيقات الخادم (server)؛ إذ تكون الشيفرات فيها دقيقةً ومعبِّرة، وتمتاز بالتوافقيّة التامّة مع لغة Java ومن السهل تعلُّمها بسرعة.


== ميزات استخدام لغة Kotlin للتطوير في بيئة Android ==
== ميزات استخدام لغة Kotlin لتطوير تطبيقات الخادم (Server) ==
* '''القدرة على التعبير:''' إذ تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها [[Kotlin/safe type builders|للمنشِئ الحافظ للنوع (type-safe builders)]] و<nowiki/>[[Kotlin/delegated properties|الخاصّيات المُعمّمة (delegated properties)]]) على إنشاء بنىً تجريديّة abstraction سهلة الاستخدام.
* '''القدرة على التعبير (Expressiveness):''' تساعد مميّزات لغة Kotlin المبتكرَة (مثل دعمها [[Kotlin/type safe builders|للمنشِئ الحافظ للنوع (type-safe builder)]] و<nowiki/>[[Kotlin/delegated properties|الخاصّيات المُعمّمة (delegated properties)]]) على إنشاء البنى التجريديّة (abstraction) سهلةِ الاستخدام.
* '''قابلية التوسّع:''' إذ تدعم لغة Kotlin ميّزة [[Kotlin/coroutines|الروتينات المساعدة coroutines]]، وهي بهذا تتيح لتطبيقات الخادم إمكانيّة التوسعة لعدد أكبر من العملاء clients بالاعتماد على متطلبات عتاديّة بسيطة.
* '''قابلية التوسّع (Scalability):''' تدعم لغة Kotlin ميّزة [[Kotlin/coroutines|الروتينات المساعدة (coroutines)]]، وهي بهذا تتيح -في تطبيقات الخادم- إمكانيّة التوسّع لعددٍ أكبر من العملاء (clients) وبمتطلباتٍ عتاديّةٍ (hardware) بسيطة.
* '''التوافقيّة:''' إن لغة Kotlin متوافقة كليًّا مع بيئات العمل في لغة Java، وبهذا فهي تتيح لك الاستفادة من التقنيّات التي اعتدت عليها سابقًا على الرغم من استخدامك لغة أكثر حداثةً.
* '''قابليّة التبديل (Interoperability):''' تتوافق لغة Kotlin كليًّا مع بيئة العمل في لغة Java، إذ تتيح الاستفادة من التقنيّات التي اعتدنا عليها سابقًا مع استخدامنا لغةً أكثر حداثةً.
* '''سهولة الانتقال من لغة Java:''' إذ تُؤمِّن لغة Kotlin الانتقال التدريجيّ إليها خطوةً بخطوة من الشيفرات الضخمة في لغة Java، وبهذا يمكنك كتابة شيفرات برمجيّة جديدة مع إبقائك للأجزاء الأخرى السابقة للنظام في بيئة Java.
* '''سهولة الانتقال من لغة Java:''' تُؤمِّن لغة Kotlin الانتقال التدريجيّ إليها (من الشيفرات المعقّدة في لغة Java) خطوةً بخطوة ، فمن الممكن كتابة شيفراتٍ برمجيّةٍ جديدةٍ مع إبقاء الأجزاء الأخرى السابقة الموجودة في بيئة Java.
* '''الأدوات''': إذ توفّر لغة Kotlin إضافةً إلى بيئتها التطويريّة المتكاملة (IDE) أدوات عملٍ مُخصّصة (كما في حالة بيئة Spring مثلًا) في الإضافة الخاصّة ببيئة IntelliJ IDEA Ultimate.
* '''الأدوات (Tooling)''': توفّر لغة Kotlin إضافةً إلى بيئتها التطويريّة المتكاملة (IDE) أدوات عملٍ مُخصّصة (كما في حالة بيئة [https://spring.io/ Spring] مثلًا) وذلك عبر الإضافة الخاصّة ببيئة IntelliJ IDEA Ultimate.
* '''المُعدّل السريع للتعلّم:''' إن الشروع بلغة Kotlin سيكون أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعده في خطواته الأولى المحوّل الآلي (convertor) للتحويل من Java إلى Kotlin والموجود في إضافات Kotlin‏ (Kotlin Plugins)، ويتوفّر كذلك دليلٌ تعليميٌّ مساعدٌ في أساسيات اللغة وعددٌ من التمارين التفاعليّة بالانكليزيّة عبر [https://kotlinlang.org/docs/tutorials/koans.html هذا الرابط].
* '''المُعدّل السريع للتعلّم (Learning Curve):''' سيكون البدء بلغة Kotlin أمرًا سهلًا للغاية بالنسبة للمطوّر بلغة Java، ويساعد المحول الآلي (<code>convertor</code>)  في الخطوات الأولى والذي يُستخدَم للتحويل من لغة Java إلى Kotlin والموجود في إضافات Kotlin‏ (Kotlin Plugins)، ومن المفيد كذلك الاطلاع على عددٍ من [http://try.kotlinlang.org/koans التمارين التفاعليّة].


== بيئات العمل المتاحة لتطوير تطبيقات الخادم باستخدام لغة Kotlin ==
== بيئات العمل المتاحة لتطوير تطبيقات الخادم باستخدام لغة Kotlin ==
* تستفيد بيئة العمل [https://spring.io/ Spring] من مميّزات لغة Kotlin للحصول على [https://spring.io/blog/2017/01/04/introducing-kotlin-support-in-spring-framework-5-0 واجهات تطبيقات برمجيّة API أكثر دقّةٍ] (ابتداءً من الإصدار 5.0)، ويسمح [https://start.spring.io/#!language=kotlin مُولِّد المشاريع] المتوفر عبر الانترنت بإنتاج مشروعٍ جديدٍ باستخدام لغة Kotlin.
* تستفيد بيئة العمل [https://spring.io/ Spring] من مميّزات لغة Kotlin للحصول على واجهات تطبيقات برمجيّة API أكثر دقّةٍ (ابتداءً من الإصدار 5.0)، ويسمح [https://start.spring.io/#!language=kotlin مُولِّد المشاريع (Project Generator)] المتوفِّر عبر الانترنت بإنشاء مشروعٍ جديدٍ بلغة Kotlin.
* تقدّم بيئة العمل [http://vertx.io/ Vert.x] (المستخدَمة لبناء تطبيقات الويب التفاعليّة بالاعتماد على آلة Java الافتراضية (JVM)) د[https://github.com/vert-x3/vertx-lang-kotlin عمًا مخصَّصًا] للغة Kotlin متضمِّنةً [http://vertx.io/docs/vertx-core/kotlin/ توثيقًا كاملًا] عبر موقعها.
* تقدّم بيئة العمل [http://vertx.io/ Vert.x] (المستخدَمة لبناء تطبيقات الويب التفاعليّة بالاعتماد على JVM) [https://github.com/vert-x3/vertx-lang-kotlin دعمًا مخصَّصًا] للغة Kotlin.
* تُعدُّ بيئة [https://github.com/kotlin/ktor Ktor] بيئة عملٍ أصليّة للغة Kotlin وهي متوفرة عبر الانترنت من قِبل شركة JetBrains، وتتيح بيئة العمل هذه إمكانية التوسّع الكبير بالاعتماد على الروتينات المساعدة (coroutines) (من لغة 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 في تطبيقات الويب إذ تقدِّم العديد من البدائل لأنظمة القوالب التقليديّة مثل قالبَي JSP و FreeMarker.
* تعدُّ بيئة العمل [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] الموجودة بالمترجم بملاءمة بعض الأصناف بما يتناسب مع متطلبات بيئة العمل.
* أما الخيارات المتاحة (في حالة المعلومات المُخزَّنة الدائمة) فتشمل الوصول المباشر في برمجية 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، ومنصة Google السحابيّة والعديد من الخدمات الأخرى، فإذا أردت نشر التطبيقات بلغة Kotlin عبر منصّة [https://www.heroku.com/ Heroku] مثلًا فيمكنك اتِّباع التعليمات الواردة بالانكليزيّة في [https://devcenter.heroku.com/articles/getting-started-with-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] هي منصَّة للسجلات مفتوحةَ المصدر وموزَّعة، تُدعَم من كبرى المصارف ومبنية بشكلٍ كاملٍ عبر لغة Kotlin.
إنَّ منصّة [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/tutorials/httpservlets.html إنشاء تطبيقات الويب باستخدام Http Servlets] و [https://kotlinlang.org/docs/tutorials/spring-boot-restful.html إنشاء خدمات الويب RESTful عبر Spring Boot] يوضح كيفيّة بناء تطبيق ويب صغير باستخدام لغة Kotlin وتشغيله.
 
ولتقديمٍ أكثر تفصيلًا للغة يمكن الاستعانة بالتوثيق الرسمي بالانكليزية أو الدليل المتوفر بالانكليزية عبر موقع Kotlin Koans.


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

المراجعة الحالية بتاريخ 11:24، 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 بدون حدوث مشاكل جوهريّة.

مصادر