Korisnik:Xeniawiki/pesak

Kotlin (engl. Kotlin) je višeplatformski, opšti programski jezik visokog nivoa[1]. Kotlin je dizajniran da u potpunosti radi sa Javom[2]. Ovaj statički otkucani jezik je dizajniran za upotrebu u Android[3] i JVM[4] okruženjima. Kotlin uglavnom radi na JVM, ali se takođe kompajlira u JavaSkript[5] (npr. za frontend veb[6] aplikacije koje koriste Reakt[7]).

Kotlin
Logo programskog jezika Kotlin
Pojavio se22. jula 2011. godine
Autor(i)DžetBrejns (eng. JetBrains)
Dizajner(i)Andrej Breslav i Dmitrij Jemerov
Aktuelna verzija1.9.22
Datum aktuelne verzije21. decembar 2023. godine
Uticao napisanje aplikacija za servere i pisanje aplikacija za Android uređaje, iako je moguće koristi ga za pisanje aplikacija za uređaje koji rade na iOS operativnom sistemu
Veb-sajthttps://kotlinlang.org/

Kotlin je univerzalni programski jezik otvorenog koda, koji je razvio DžetBrejns (engl. JetBrains[8]). Koncizan je, siguran, pragmatičan i kompatibilan sa Java kodom. Može se koristiti bilo gde se koristi Java, kao što je razvoj aplikacija na strani servera, Android aplikacija i još mnogo toga. Odlično radi sa svim postojećim Java bibliotekama i radnim okvirima i ima iste performanse kao Java. Sam jezik je stvoren kako bi se prevazišli nedostaci programskog jezika Java i uspešno je opravdao očekivanja mnogih Java programera.

Gugl (engl. Google[9]) je 7. maja 2019. objavio da je programski jezik Kotlin sada njegov omiljeni jezik za programere Android aplikacija. Od objavljivanja Android Studio verzije 3.0 u oktobru 2017. godine, Kotlin je uključen kao alternativa standardnom Java kompajleru[10]. Android Kotlin kompajler podrazumevano proizvodi Java 8 bajt-kod (koji se pokreće u bilo kom kasnijem JVM-u), ali dozvoljava programeru da bira od Jave 9 do Jave 20, radi optimizacije, ili dozvoljava više funkcija; ima dvosmernu podršku za interoperabilnost klase zapisa za JVM, uvedenu u Javi 16, koja se smatra stabilnom od Kotlina verzije 1.5.

Istorija

uredi
 
Maskota jezika Kotlin u 2D[11]

Ime je izvedeno od ostrva Kotlin, ruskog ostrva u Finskom zalivu, u blizini Sankt Peterburga. Andrei Breslav, bivši glavni dizajner Kotlina, spomenuo je da je tim odlučio da ga nazove po ostrvu, baš kao što je programski jezik Java dobio ime po indonežanskom ostrvu Java (iako se kaže da je ime jezika inspirisano „ java“ američkim žargonskim izrazom za kafu, koji je i sam izveden od imena ostrva).

Nastanak

uredi

Jezik je nastao 2011. godine, kao jezik za rad na Java virtuelnoj mašini (JVM). Kako je rekao lider projekta u kompaniji Džetbrejns, Dmitrij Jemerov: „Skup karakteristika drugih jezika ne zadovoljava naše potrebe.”

Jedino je Skala[12] (engl. Scala) bila veoma blizu, ali problem sa njom je bilo sporije prevođenje u odnosu na Javu. Prvi cilj razvoja Kotlina bio je jezik moćan kao Skala, ali brz kao Java. U februaru 2012. Džetbrejns je postavio otvoren kod sa Apač 2[13] (engl. Apache 2) licencom. Četiri godine kasnije, 15. februara 2016, izlazi prva zvanična verzija, Kotlin 1.0. Još jedan bitan korak u razvoju jezika jeste Gugl (engl. Google) I/O konferencija, održana maja 2017. na kojoj je Kotlin proglašen zvaničnim jezikom za razvoj Android aplikacije uz punu podršku Gugla. U verziji 1.1 omogućeno je da se pored Java koda, i kod pisan u JavaSkriptu (engl. JavaScript) prevodi i pokreće iz veb pregledača. Od verzije 1.2 moguće je deljenje koda između JVM i JavaSkript platformi. Trenutno je u toku razvoja multiplatformskih svojstava, tako da bi se u budućnosti Kotlin mogao koristiti i za razvoj klijentskih strana aplikacija. Do sada su objavljene i Kotlin/Nejtiv (engl. Kotlin/Native[14]), kao i beta verzija, za kompilaciju koda direktno u mašinske instrukcije, kao i Ktor 1.0, veb radni okvir (engl. veb frejmvork) za Kotlin, koji je namenjen za pravljenje asinhronih servera u povezanim sistemima.

Razvoj

uredi

U julu 2011. godine, DžetBrejns je predstavio Projekat Kotlin, novi jezik za JVM, koji je bio u razvoju godinu dana. Lider kompanije DžetBrejns, Dmitrij Jemerov, rekao je da većina jezika nema funkcije koje su tražili, sa izuzetkom jezika Skala. Međutim, on je naveo sporo vreme prevođenja Skale kao nedostatak. Jedan od navedenih ciljeva Kotlina je da kompajlira brzo kao Java. U februaru 2012, DžetBrejns je otvorio projekat pod licencom Apač 2.

DžetBrejns se nadao da će novi jezik podstaći InteliDžej IDEA (engl. IntelliJ IDEA) prodaju.

Prvo urezivanje u Kotlin Git repozitorij je bilo 8. novembra 2010.

Kotlin 1.0 je objavljen 15. februara 2016. Ovo se smatra prvim zvanično stabilnim izdanjem i DžetBrejns se obavezao na dugoročnu kompatibilnost unazad počevši od ove verzije.

Na Gugl I/O 2017, Gugl je najavio prvoklasnu podršku za Kotlin na Androidu.

Kotlin 1.2 je objavljen 28. novembra 2017. godine.Funkcija deljenja koda između JVM i Javaskript platformi je nedavno dodata ovom izdanju (programiranje na više platformi je do sada nova beta funkcija[15] nadograđena od „eksperimentalnog“). Napravljena je demo verzija sa novim Kotlin/JS Gradl Plagin-om (engl. Gradle Plugin).

Kotlin 1.3 je objavljen 29. oktobra 2018. godine, dodajući podršku za korutine za korišćenje sa asinhronim programiranjem.

Gugl je objavio 7. maja 2019. godine da je programski jezik Kotlin sada njegov omiljeni jezik za programere Android aplikacija.

Kotlin 1.4 je objavljen u avgustu 2020. godine, sa nekim malim promenama u podršci Apple platforme.

Kotlin 1.5 je objavljen u maju 2021. godine.

Kotlin 1.6 je objavljen u novembru 2021. godine.

Kotlin 1.7 je objavljen u junu 2022. godine, uključujući alfa verziju novog kompajlera Kotlin K2.[25]

Kotlin 1.8 je objavljen u decembru 2022. godine, 1.8.0 je objavljen 11. januara 2023. godine.

Kotlin 1.9 je objavljen u julu 2023. godine, 1.9.0 je objavljen 6. jula 2023. godine.

Dizajn

uredi

Lider razvoja Andrej Breslav rekao je da je Kotlin dizajniran da bude objektno-orijentisan jezik industrijske snage i „bolji jezik“ od Jave, ali da i dalje bude u potpunosti interoperabilan sa Java kodom, omogućavajući kompanijama da izvrše postepen prelazak sa Jave na Kotlin.

Tačke i zareze su opcione kao izvršilac iskaza; u većini slučajeva dovoljan je novi red da bi kompajler zaključio da je izjava završena.

Kod Kotlin jezika, deklaracije promenljivih i liste parametara imaju tip podataka iza imena promenljive (i sa separatorom dvotačke), slično kao Ada[16], Bejzik[17], Paskal[18], Tajpskript[19] i Rast[20]. Ovo, prema članku Romana Elizarova, trenutnog vođe projekta, rezultira usaglašavanjem imena promenljivih i prijatnije je za oči, posebno kada postoji nekoliko deklaracija promenljivih u nizu, a jedan ili više tipova je previše složen, ili treba da bude eksplicitno deklarisan da bi ljudski čitaoci razumeli.

Promenljive u Kotlinu mogu biti samo za čitanje, deklarisane ključnom rečju вал, ili univerzalne promenljive, deklarisane ključnom rečju вар.

Članovi klase su podrazumevano javni, a same klase su podrazumevano konačne, što znači da je kreiranje izvedene klase onemogućeno, osim ako osnovna klasa nije deklarisana ključnom rečju опен.

Sintaksa

uredi

Proceduralni stil programiranja

uredi

Kotlin ublažava Javino ograničenje dozvoljavanja statičkih metoda i promenljivih da postoje samo unutar tela klase. Statički objekti i funkcije mogu se definisati na najvišem nivou paketa bez potrebe za redundantnim nivoom klase. Za kompatibilnost sa Javom, Kotlin obezbeđuje JVM Nejm (engl. JVMName) anotaciju koja navodi ime klase koje se koristi kada se paket pregleda iz Java projekta. Na primer, @file:JvmName("JavaClassName")

Glavna funkcija

uredi

Kao i u S[21] (transkr. Ce), S++[22] (transkr. Ce++), S#[23] (transkr. Ce šarp), Javi i Go[24]-u, ulazna tačka u Kotlin program je funkcija pod nazivom "mejn", kojoj može biti prosleđen niz koji sadrži bilo koje argumente komandne linije. Ovo je opciono od Kotlina 1.3. Podržana je interpolacija stringova u stilu Perl[25] i PHP[26]-a . Zaključivanje tipa je takođe podržano.

 
Pisanje koda u glavnoj funkciji

Kotlin pravi razliku između tipova podataka koji mogu da imaju nultu vrednost i onih koji ne mogu. Svi objekti koji mogu imati nultu vrednost moraju biti deklarisani sa "?" postfiksom posle naziva tipa. Operacije nad objektima sa nultom vrednošću zahtevaju posebnu pažnju programera: provera nule mora da se izvrši pre upotrebe vrednosti, bilo eksplicitno, ili uz pomoć Kotlinovih operatora.

Aplikacije

uredi

Kada je Kotlin najavljen kao zvanični Android razvojni jezik na Gugl konferenciji u maju 2017. godine, postao je treći jezik koji je u potpunosti podržan za Android, posle Jave i S++ jezika. Od 2020. godine, Kotlin je najčešće korišćeni jezik na Androidu, a Gugl procenjuje da je 70% od 1.000 najboljih aplikacija u Plej prodavnici[27] napisano na Kotlinu. Sam Gugl ima 60 aplikacija napisanih u Kotlinu, uključujući Mape i Drajv. Mnoge Android aplikacije su u procesu migracije na Kotlin i s toga koriste i Kotlin i Javu. Kotlin na Android-u se smatra korisnim zbog njegove bezbednosti nul-pokazivača, kao i zbog njegovih karakteristika koje čine kraći, čitljiviji kod.

Pored svoje istaknute upotrebe na Androidu, Kotlin sve više dobija na razvoju na strani servera. Spring Frejmvork je zvanično dodao podršku za Kotlin sa verzijom 5, 4. januara 2017. godine. Da bi dodatno podržao Kotlin, Spring[28] je preveo svu svoju dokumentaciju na Kotlin i dodao ugrađenu podršku za mnoge karakteristike specifične za Kotlin, kao što su korutine. Pored Spring-a, Džetbrejns je proizveo prvi okvir za Kotlin pod nazivom Ktor za pravljenje veb aplikacija.

Godine 2020-te, Džetbrejns je u anketi programera koji koriste Kotlin otkrio da 56% koristi Kotlin za mobilne aplikacije, dok ga 47% koristi za veb bekend. Nešto više od trećine svih Kotlin programera je reklo da migriraju na Kotlin sa drugog jezika.

Reference

uredi
  1. ^ Programski jezik visokog nivoa (na jeziku: srpski), 2024-01-16, Pristupljeno 2024-05-18 
  2. ^ Java (programski jezik) (na jeziku: srpski), 2024-05-15, Pristupljeno 2024-05-19 
  3. ^ Android razvoj softvera (na jeziku: srpski), 2024-05-11, Pristupljeno 2024-05-19 
  4. ^ Java virtuelna mašina (na jeziku: srpski), 2024-01-13, Pristupljeno 2024-05-19 
  5. ^ JavaScript (na jeziku: srpski), 2024-05-02, Pristupljeno 2024-05-19 
  6. ^ Front-end veb razvoj (na jeziku: srpski), 2024-01-16, Pristupljeno 2024-05-19 
  7. ^ React (na jeziku: srpski), 2024-05-07, Pristupljeno 2024-05-19 
  8. ^ JetBrains (kompanija) (na jeziku: srpski), 2024-05-07, Pristupljeno 2024-05-19 
  9. ^ Google (veb-pretraživač) (na jeziku: srpski), 2024-04-09, Pristupljeno 2024-05-19 
  10. ^ Kompilator (na jeziku: srpski), 2020-01-12, Pristupljeno 2024-05-19 
  11. ^ Dvodimenzionalni prostor (na jeziku: srpski), 2024-04-13, Pristupljeno 2024-05-19 
  12. ^ Scala (programski jezik) (na jeziku: srpski), 2024-04-23, Pristupljeno 2024-05-19 
  13. ^ Apache (server) (na jeziku: srpski), 2022-06-10, Pristupljeno 2024-05-19 
  14. ^ „Kotlin Native | Kotlin”. Kotlin Help (na jeziku: engleski). Pristupljeno 2024-05-19. 
  15. ^ Beta-funkcija (na jeziku: srpski), 2024-01-14, Pristupljeno 2024-05-20 
  16. ^ Ada (programski jezik) (na jeziku: srpski), 2024-05-19, Pristupljeno 2024-05-20 
  17. ^ BASIC (na jeziku: srpski), 2024-04-07, Pristupljeno 2024-05-20 
  18. ^ Pascal (programski jezik) (na jeziku: srpski), 2024-05-07, Pristupljeno 2024-05-20 
  19. ^ TypeScript (na jeziku: srpski), 2024-01-13, Pristupljeno 2024-05-20 
  20. ^ Rust (programski jezik) (na jeziku: srpski), 2024-02-06, Pristupljeno 2024-05-20 
  21. ^ C (programski jezik) (na jeziku: srpski), 2024-04-16, Pristupljeno 2024-05-20 
  22. ^ C++ (na jeziku: srpski), 2024-05-07, Pristupljeno 2024-05-20 
  23. ^ C Sharp (na jeziku: srpski), 2024-05-06, Pristupljeno 2024-05-20 
  24. ^ Go (programski jezik) (na jeziku: srpski), 2023-08-11, Pristupljeno 2024-05-20 
  25. ^ Perl (programski jezik) (na jeziku: srpski), 2023-10-06, Pristupljeno 2024-05-20 
  26. ^ PHP (na jeziku: srpski), 2024-04-23, Pristupljeno 2024-05-20 
  27. ^ Google Play (na jeziku: srpski), 2024-01-13, Pristupljeno 2024-05-20 
  28. ^ Spring Framework (na jeziku: srpski), 2024-04-11, Pristupljeno 2024-05-20