Kotlin

מתוך ויקיפדיה, האנציקלופדיה החופשית
Kotlin
Kotlin-logo
פרדיגמות מרובת פרדיגמות: תכנות מונחה-עצמים, תכנות אימפרטיבי, תכנות פרוצדורלי, תכנות פונקציונלי, תכנות דקלרטיבי, תכנות גנרי, תכנות רפלקטיבי, תכנות מקבילי
שנה 2011
מתכנן JetBrains
מפתח JetBrains
גרסה אחרונה 1.4.10 (10 בספטמבר 2020)
טיפוסיות סטטית
הושפעה על ידי סי שארפ, אייפל,‏ Gosu, ‏Groovy,‏ ML,‏ פייתון, ג'אווה, סקאלה, סוויפט
רישיון Apache License 2.0
סיומת .kt, .kts, .ktm
https://kotlinlang.org/

Kotlin היא שפת תכנות כללית, חוצה פלטפורמות בעלת טיפוסיות סטטית, אשר פותחה על ידי תאגיד התוכנה הצ'כי JetBrains ויצאה לראשונה בשנת 2011. Kotlin פותחה על מנת לעבוד באופן מלא עם ג'אווה. Kotlin פועלת בעיקר במכונה הווירטואלית של ג'אווה (JVM), אך ניתן להדר אותה גם ל-JavaScript. ב-7 במאי 2019, הכריז תאגיד התוכנה Google ש-Kotlin היא שפת התכנות המועדפת לכתיבת יישומים במערכת ההפעלה אנדרואיד – אשר נפוצה בעיקר בטלפונים חכמים.

Kotlin היא שפה מרובת פרדיגמות, כלומר, היא תומכת במספר פרדיגמות (עקרונות) תכנות, כגון:

  • תכנות פרוצדורלי – חלוקה לתוכניות ולתת תוכניות
  • תכנות פונקציונלי – קריאה לפונקציות ופישוטן כביטוי
  • תכנות מונחה עצמים – תכנות בו מגדירים מבני נתוניים מתקדמים בשם אובייקטים על פי תבניות, שנקראות מחלקות
  • תכנות אימפרטיבי (פקודתי) – הרצת פקודות (Statements) זו אחר זו.
  • תכנות דקלריטיבי (הצהרתי) – בפרדיגמה זו, התוכנית מתארת מה היא עושה, בשונה מתכנות אימפרטיבי שבה היא מתארת איך היא מבצעת את הפקודות. דוגמה לשפה אשר פועלת לפי פרדיגמה זו היא שפת השאילתות SQL.
  • תכנות מקבילי – תכנות המתאים לעיבוד מקבילי, שבו מספר מעבדים או ליבות מעבדים חלק אחר מן הקוד.

Kotlin נחשבת לשפה כללית, משום שניתן להשתמש בה בתחומים רבים, בניגוד לשפות ספציפיות (Domain Specific Languages).

בנוסף, היא חוצה פלטפורמות (Cross Platform): היא רצה על פלטפורמות ומערכות הפעלה רבות. היא רצה על מערכות ההפעלה Windows,‏ Linux,‏ MacOS,‏ watchOS,‏ iOS ואנדרואיד, ועל הפלטפורמות JavaScript,‏ WebAssembly,‏ Java Virtual Machine.

היסטוריה[עריכת קוד מקור | עריכה]

ביולי 2011, JetBrains חשפה את Kotlin, שפה חדשה לפיתוח במכונה הווירטואלית של ג'אווה (JVM) אשר הייתה בפיתוח במשך שנה[1]. לטענת דימיטרי ג'רמוב, מ-JetBrains, לרוב השפות אשר רצות על ה-JVM אין את הפיצ'רים שהם מחפשים חוץ מ-Scala, אך ל-Scala ישנו זמן הידור איטי, אשר מתפרש בעיניו כחסרון. לכן, אחת ממטרותיה העיקריות של Kotlin היו לבצע הידור באותה מהירות כמו Java.

השם Kotlin נובע מהאי Kotlin, שנמצא ליד סנקט פטרבורג שברוסיה. הצוות החליט לקרוא ל-Kotlin על שם אי בדיוק כמו ש-Java נקראה על שם האי האינדונזי Java (אם כי ייתכן שהוא נקרא על שם הקפה Java, אשר נקרא גם הוא על שם האי).

בשנת 2012, הפכה JetBrains את Kotlin לפרויקט קוד תחת רישיון Apache 2. גרסת Kotlin v1.0 של Kotlin יצאה בשנת 2016, והיא נחשבה לגרסה הרשמית הראשונה שהייתה יציבה.

בכנס המפתחים השנתי Google I/O שהתקיים בשנת 2017, Google הכריזה על תמיכה ב-Kotlin בשביל מערכת ההפעלה אנדרואיד [2].

גרסה 1.2 של Kotlin שוחררה ב-28 בנובמבר 2017. בגרסה זו הוסף פיצ'ר חדש המאפשר שיתוף קוד בין המכונה הווירטואלית של ג׳אווה (JVM) לשפת התכנות Javascript.

גרסה 1.3 של Kotlin שוחררה ב-29 באוקטובר 2018.

ב-7 במאי 2019, הכריזה חברת גוגל ש-Kotlin היא שפת התכנות המועדפת לתכנות יישומים במערכת ההפעלה אנדרואיד.

גרסה 1.4 של Kotlin יצאה באוגוסט 2020, עם שינויים קלים בתמיכה בפלטפורמות מבית תאגיד התוכנה הבינלאומי אפל.

תכנון ומבנה השפה[עריכת קוד מקור | עריכה]

מנהל הפיתוח של Kotlin, אנדריי ברסלב ציין כי Kotlin תוכננה להיות שפת תכנות מונחית עצמים, אשר עמידה בפני שגיאות ותקלות (Industrial Strength) וטובה יותר מ-Java.

ניתן לשים נקודה פסיק ( ; ) בסוף כל הצהרה, אם כי הדבר לא נחוץ ברוב המקרים, שכן המהדר (אשר אחראי על המרת השפה לשפות תחתיות יותר לצורך הרצת התוכנית על ידי המעבד) יסיק זאת לבד מהתחלת שורה חדשה.

בהגדרת משתנים ורשימות פרמטרים לפעולות, יכתב שם המשתנה או הפרמטר, שלאחריו נקודתיים ואת סוג מבנה הנתונים של המשתנה. לדוגמה, var number1:Int = 5 ייצור משתנה חדש ששמו number1 מסוג Int (מספר שלם, Integer) וערכו 5. זאת בדומה לשפות התכנות BASIC,‏ פסקל,‏ TypeScript‏ וסוויפט. ניתן ליצור משתנים שניתן לקרוא אותם וכן לשנות אותם (Mutable) באמצעות המילה השמורה var, וקבועים שניתן רק לקרוא את ערכם (Immutable) באמצעות המילה השמורה val (קיצור של value).

שדות בתוך מחלקה הם פומביים (public) כברירת מחדל, כלומר ניתן לגשת לגשת אליהם מכל המקומות, כגון מחלקות אחרות. המחלקה עצמה מסוג final כברירת מחדל, כך שלא ניתן לרשת ממחלקה אלא אם כן מוסיפים בהגדרת המחלקה לפני המילה השמורה class, את המילה השמורה open. לדוגמה:[3]

open class Person(age: Int) {
 // code for eating, talking, walking
}

class MathTeacher(age: Int): Person(age) {
 // other features of math teacher
}

class Footballer(age: Int): Person(age) {
 // other features of footballer
}

class Businessman(age: Int): Person(age) {
 // other features of businessman
}

כתיבת קוד ב-Kotlin[עריכת קוד מקור | עריכה]

תוכנית Hello World ב-Kotlin:

fun main(args: Array<String>) {
 println("Hello World!")
}

כאן הורצה פקודה אשר מדפיסה את הפרמטרים בשורה חדשה על ידי שימוש בפונקציה המובנית println בתוך הפעולה main. פעולה זו תתרחש בכל פעם שהתוכנית תרוץ. את רוב הקוד רצוי לכתוב בפעולות אחרות, ולזמנן בהתאם ב-main.

מבני נתונים בסיסיים ב-Kotlin[עריכת קוד מקור | עריכה]

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

Green globe.svg אתר האינטרנט הרשמי של Kotlin (באנגלית)

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ InfoWorld, "JetBrains readies JVM language Kotlin"., Infoworld.com
  2. ^ Shafirov, Maxim, "Kotlin on Android. Now official", www.jetbrains.com, ‏17 במאי, 2017
  3. ^ Kotlin Inheritance, Programiz.com