أسئلة شائعة عن لغة Kotlin

من موسوعة حسوب

ما هي لغة Kotlin؟

تُعدُّ Kotlin إحدى لغات البرمجة مفتوحة المصدر (OSS) والمكتوبة ستاتيكيًّا، وتستهدف كلًا من بيئة JVM و Android و JavaScript و Native، وقد طُوِّرت من قِبل شركة JetBrains بدءًا من العام 2010 حيث كانت مفتوحة المصدر منذ بداياتها الأولى، ونٌشر الإصدار الرسميّ Kotlin 1.0 في الشهر الثاني (شباط) من عام 2016.

ما النسخة الحاليّة للغة Kotlin؟

نٌشر الإصدار الأخير للغة Kotlin في الأوّل من الشهر الثالث (آذار) من عام 2018 وهو الإصدار Kotlin 1.2.30.

هل Kotlin مجانيّة؟

نعم، كانت مجانيّةً ولا زالت وستبقى كذلك، فقد طُوِّرت بموجب الترخيص Apache 2.0 وتُتاح كافّة الشيفرات المصدريّة عبر الموقع GitHub.

هل تُعدُّ لغة Kotlin كائنيّة التوجّه (OOP) أم أنّها وظائفيّة (Functional)؟

كلاهما، فهي تحتوي على بعض البُنى (construct) كائنية التوجه وأخرى وظائفيّة، لذلك يمكن استخدامها في المجالين الكائنيّ (OO) والوظائفيّ (FP) أو المزج بينهما، فهي الخيار الأفضل عند القيام بالبرمجة الوظائفيّة أو استكشافها، وذلك لاحتوائها على ميزاتٍ مثل الدوال بمستوى أعلى (higher-level) وأنواع الدوال (function types) وكذلك دعمها لدوال lambdas.

بِم تمتاز Kotlin عن لغة البرمجة Java؟

Kotlin أكثر إيجازًا واختصارًا بنسبة 40% من عدد الأسطر في الشيفرات، وهي كذلك أكثر أمانًا في الأنواع كدعمها للأنواع nullable (التي تقبل القيمة الفارغة null)، وتتضمن الميزات الأخرى: التحويلات الذكيّة (smart casts) والدوال بمستوى أعلى (higher-order) والدوال الإضافيّة (extension functions) وlambdas في المستقبِل (receiver)، وهي بذلك تساعد على كتابة شيفرة معبِّرة مُخصَّصة المجال (DSL).

هل تتوافق لغة Kotlin مع لغة Java؟

نعم بشكل كلّيّ، ومن المؤكَّد أنّ الشيفرات الأساسيّة تتوافق تمامًا مع Kotlin فمن السهل استدعاء شيفرة Kotlin من Java وبالعكس، مما يجعل الاعتماد عليها أسهل وبمخاطر أقلّ، كما ويوجد مُحوَّل مؤتمَت (automated converter) لتحويل الشيفرة الموجودة من Java إلى Kotlin وهو مضمَّن في بيئة العمل IDE.

بِم تستخدَم لغة Kotlin؟

تُستخدَم في أيّ نوعٍ من التطوير سواءً أكان من طرف الخادم (server) أو من طرف العميل (client) أو الويب أو Android ، وبما أن العمل جارٍ على تحقيق التوافقية Kotlin/Native فمن المُتوقَع أن تدعم Kotlin مختلف منصّات العمل مثل الأنظمة المُدمَجة (embedded systems) وأنظمة macOS و iOS، ومن الاستخدامات المُمكنة للغة Kotlin في الوقت الحاليّ: تطبيقات الجوّال وتطبيقات الخادم وكذلك التطبيقات من طرف العميل بالاعتماد على JavaScript أو JavaFX وعلوم البيانات.

هل يمكن استخدام Kotlin للتطوير في بيئة Android؟

نعم، إذ تدعم بيئة Android لغة Kotlin وهناك بعض مئاتٍ من التطبيقات المستخدمة للغة Kotlin مثل: Basecamp و Pinterest، وللمزيد من التفاصيل راجع استخدام لغة Kotlin للتطوير في بيئة Android.

هل يمكن استخدام Kotlin لتطوير تطبيقات الخادم (server-side)؟

نعم، فهي متوافقةٌ تمامًا مع JVM وبالتالي يمكن استخدامها في أيّ منصّة عملٍ (framework) مثل Spring Boot أو vert.x أو JSF، وهناك بعض منصّات العمل المكتوبة باستخدام لغة Kotlin مثل Ktor، ولمزيدٍ من التفاصيل راجع استخدام لغة Kotlin في تطوير تطبيقات الخادم.

هل يمكن استخدام Kotlin لتطوير الويب؟

نعم، فإلى جانب استخدامها في البرمجة الخلفيّة (back-end) في الويب يمكن استخدامها أيضًا التوافق ما بين Kotlin/JS لبرمجة الويب من طرف العميل (client-side)، إذ تستخدِم Kotlin عددًا من التعاريف من DefinitelyTyped للحصول على كتابةٍ ستاتيكيّة لمكتبات JavaScript القياسيّة، وهي متوافقةٌ مع الأنظمة الوحدوية (module system) الموجودة مثل AMD و CommonJS، ولمزيد من التفاصيل راجع استخدام لغة Kotlin في نطاق JavaScript.

هل يمكن استخدام Kotlin لتطوير التطبيقات المكتبيّة (desktop)؟

نعم، فمن الممكن استخدام أيّ بيئة عمل واجهات Java مثل JavaFx و Swing أو ما يماثلهما، وهناك بعض المنصّات الإضافيّة مثل TornadoFX.

هل يمكن استخدام Kotlin للتطوير في بيئة Native؟

لا تزال التوافقيّة Kotlin/Native قيد الإنجاز إذ تُترجَم Kotlin إلى شيفرات native جاهزةٍ للعمل بدون VM، وهناك عيّنة متاحةٌ منها ولكنها ليست مُنتجَة بشكل جاهزٍ، ولا تشمل كافّة منصّات العمل المُخطَّط لها في الإصدار 1.0.

ما بيئة العمل IDE التي تدعم لغة Kotlin؟

تدعم غالب بيئات العمل في Java لغة Kotlin ومنها: IntelliJ IDEA و Android Studio و Eclipse و NetBeans بالإضافة إلى وجود مترجِم سطر الأوامر الذي يدعم ترجمة وتشغيل التطبيقات مباشرةً.

ما الأدوات البنائيّة (build tools) التي تدعم Kotlin؟

تشمل الأدوات البنائيّة في طرف JVM كلًا من الأدوات: Gradle و Maven و Ant و Kobalt، وهناك عددٌ من الأدوات الأخرى التي تستهدِف JavaScript من طرف العميل (client-side).

إلامَ تُترجَم Kotlin؟

عندما يكون الهدف هو JVM فتُنتِج لغة Kotlin شيفرة بايت (bytecode) متوافقةً مع Java، أمّا عندما تستهدف JavaScript فإنّها تُترجَم إلى ES5.1 إذ تولَّد الشيفراتُ المتوافقةُ مع الأنظمة الوحدوية (module systems) مثل AMD و CommonJS، أمّا في حالة native فتنتج شيفراتٍ مُخصّصةً لمنصّة العمل عبر LLVM.

هل تستهدف لغة Kotlin الإصدار Java 6 فقط؟

لا بل تُتيح حريّة الاختيار ما بين توليد الشيفرة bytecode المتوافقة مع Java 6 أو Java 8، أو يمكن توليد تلك الشيفرة بصيغة أفضل في الإصدارات اللاحقة من منصة العمل (platform).

هل Kotlin صعبة؟

إنّ Kotlin مستوحاةٌ من عدَّة لغات برمجةٍ مستخدمةٍ مثل  Java و C#‎ و JavaScript و Scala و Groovyوبالتالي فإنه من السهل تعلُّمها خلال أيام عدَّة، وقد يستغرق الأمر أكثر من ذلك بقليلٍ عند تعلُّم استخداماتها الاصطلاحيّة وميزاتها المتقدِّمة، ولكنها بالمجمل ليست لغةً معقَّدة.

ما الشركات التي تستخدِم لغة Kotlin؟

هناك العديد من الشركات التي تعتمد على لغة Kotlin والأشهر منها:  Square و Pinterest و Basecamp، والتي أعلنت استخدامها للغة Kotlin بشكل رسميّ للعامّة عبر منشورات المدوّنات أو أيّ وسيلة أخرى.

مَن يطوِّر لغة Kotlin؟

فريقٌ من المهندسين في شركة JetBrains (الحجم الحاليّ للفريق هو أكثر من 40 مهندسًا)، إذ إنّ المُصمِّم الرئيسي هو السيّد Andrey Breslav ويوجد أكثر من 100 مساهمٍ خارجيّ عبر موقع GitHub بالإضافة إلى الفريق الأساسيّ.

كيف يمكن تعلُّم المزيد عن لغة Kotlin؟

عبر الموقع الرسميّ للغة Kotlin والذي يحتوي على المترجِم المُخصَّص لها، كما ويُستفاد من تجربة الشيفرات عبره أو الوصول إلى بعض المصادر الأخرى المتنوعة.

هل من كتب مساعدة لتعلُّم لغة Kotlin؟

نعم، هناك عدّد من الكتب المتوفّرة بالانكليزيّة أشهرها: كتاب Kotlin in Action من تأليف أعضاء فريق Kotlin وهما: Dmitry Jemerov و Svetlana Isakova ، وكتاب Kotlin for Android Developers والذي يستهدف مطوري بيئة Android.

هل هنالك دورات تدريبيّة عبر الانترنت لتعلُّم لغة Kotlin؟

نعم وبالانكليزيّة، مثل:  Pluralsight Kotlin Course  للمدرّب Kevin Jones وO’Reilly Course للمدرّب هادي حريري وUdemy Kotlin Course للمدرّب Peter Sommerhoff، بالإضافة إلى كثيرٍ من المواد التعليميّة المتاحة عبر موقعيّ Youtube و Vimeo.

هل هناك مجتمعٌ مشتركٌ (community) في Kotlin؟

نعم مثل:  منتديات Kotlin و StackOverflow و Kotlin Slack (والذي كان بعددٍ يقارب 7000 عضوًا في الشهر الخامس من عام 2017).

مصادر