Корисник:Xeniawiki/песак

С Википедије, слободне енциклопедије

Котлин (енгл. Kotlin) је вишеплатформски, општи програмски језик високог нивоа[1]. Котлин је дизајниран да у потпуности ради са Јавом[2]. Овај статички откуцани језик је дизајниран за употребу у Андроид[3] и ЈВМ[4] окружењима. Котлин углавном ради на ЈВМ, али се такође компајлира у ЈаваСкрипт[5] (нпр. за фронтенд веб[6] апликације које користе Реакт[7]).

Котлин
Лого програмског језика Котлин
Појавио се22. јула 2011. године
Аутор(и)ЏетБрејнс (енг. JetBrains)
Дизајнер(и)Андреj Бреслав и Дмитриj Јемеров
Актуелна верзија1.9.22
Датум актуелне верзије21. децембар 2023. године
Утицао написање апликација за сервере и писање апликација за Андроид уређаје, иако је могуће користи га за писање апликација за уређаје који раде на iOS оперативном систему
Веб-сајтhttps://kotlinlang.org/

Котлин је универзални програмски језик отвореног кода, који је развио ЏетБрејнс (енгл. JetBrains[8]). Концизан је, сигуран, прагматичан и компатибилан са Јава кодом. Може се користити било где се користи Јава, као што је развој апликација на страни сервера, Андроид апликација и још много тога. Одлично ради са свим постојећим Јава библиотекама и радним оквирима и има исте перформансе као Јава. Сам језик је створен како би се превазишли недостаци програмског језика Јава и успешно је оправдао очекивања многих Јава програмера.

Гугл (енгл. Google[9]) је 7. маја 2019. објавио да је програмски језик Котлин сада његов омиљени језик за програмере Андроид апликација. Од објављивања Андроид Студио верзије 3.0 у октобру 2017. године, Котлин је укључен као алтернатива стандардном Јава компајлеру[10]. Андроид Котлин компајлер подразумевано производи Јава 8 бајт-код (који се покреће у било ком каснијем ЈВМ-у), али дозвољава програмеру да бира од Јаве 9 до Јаве 20, ради оптимизације, или дозвољава више функција; има двосмерну подршку за интероперабилност класе записа за ЈВМ, уведену у Јави 16, која се сматра стабилном од Котлина верзије 1.5.

Историја[уреди | уреди извор]

Име[уреди | уреди извор]

Маскота језика Котлин у 2D[11]

Име је изведено од острва Котлин, руског острва у Финском заливу, у близини Санкт Петербурга. Андреи Бреслав, бивши главни дизајнер Котлина, споменуо је да је тим одлучио да га назове по острву, баш као што је програмски језик Јава добио име по индонежанском острву Јава (иако се каже да је име језика инспирисано „ јава“ америчким жаргонским изразом за кафу, који је и сам изведен од имена острва).

Настанак[уреди | уреди извор]

Језик је настао 2011. године, као језик за рад на Јава виртуелној машини (ЈВМ). Како је рекао лидер пројекта у компанији Џетбрејнс, Дмитриј Јемеров: „Скуп карактеристика других језика не задовољава наше потребе.”

Једино је Скала[12] (енгл. Scala) била веома близу, али проблем са њом је било спорије превођење у односу на Јаву. Први циљ развоја Котлина био је језик моћан као Скала, али брз као Јава. У фебруару 2012. Џетбрејнс је поставио отворен код са Апач 2[13] (енгл. Аpаchе 2) лиценцом. Четири године касније, 15. фебруара 2016, излази прва званична верзија, Котлин 1.0. Још један битан корак у развоју језика јесте Гугл (енгл. Google) I/O конференција, одржана маја 2017. на којој је Котлин проглашен званичним језиком за развој Андроид апликације уз пуну подршку Гугла. У верзији 1.1 омогућено је да се поред Јава кода, и код писан у ЈаваСкрипту (енгл. JavaScript) преводи и покреће из веб прегледача. Од верзије 1.2 могуће је дељење кода између ЈВМ и ЈаваСкрипт платформи. Тренутно је у току развоја мултиплатформских својстава, тако да би се у будућности Котлин могао користити и за развој клијентских страна апликација. До сада су објављене и Котлин/Нејтив (енгл. Kotlin/Native[14]), као и бета верзија, за компилацију кода директно у машинске инструкције, као и Ктор 1.0, веб радни оквир (енгл. веб фрејмворк) за Котлин, који је намењен за прављење асинхроних сервера у повезаним системима.

Развој[уреди | уреди извор]

У јулу 2011. године, ЏетБрејнс је представио Пројекат Котлин, нови језик за ЈВМ, који је био у развоју годину дана. Лидер компаније ЏетБрејнс, Дмитриј Јемеров, рекао је да већина језика нема функције које су тражили, са изузетком језика Скала. Међутим, он је навео споро време превођења Скале као недостатак. Један од наведених циљева Котлина је да компајлира брзо као Јава. У фебруару 2012, ЏетБрејнс је отворио пројекат под лиценцом Апач 2.

ЏетБрејнс се надао да ће нови језик подстаћи ИнтелиЏеј ИДЕА (енгл. IntelliJ IDEA) продају.

Прво урезивање у Котлин Гит репозиториј је било 8. новембра 2010.

Котлин 1.0 је објављен 15. фебруара 2016. Ово се сматра првим званично стабилним издањем и ЏетБрејнс се обавезао на дугорочну компатибилност уназад почевши од ове верзије.

На Гугл I/O 2017, Гугл је најавио првокласну подршку за Котлин на Андроиду.

Котлин 1.2 је објављен 28. новембра 2017. године.Функција дељења кода између ЈВМ и Јаваскрипт платформи је недавно додата овом издању (програмирање на више платформи је до сада нова бета функција[15] надограђена од „експерименталног“). Направљена је демо верзија са новим Котлин/ЈС Градл Плaгин-ом (енгл. Gradle Plugin).

Котлин 1.3 је објављен 29. октобра 2018. године, додајући подршку за корутине за коришћење са асинхроним програмирањем.

Гугл је објавио 7. маја 2019. године да је програмски језик Котлин сада његов омиљени језик за програмере Андроид апликација.

Котлин 1.4 је објављен у августу 2020. године, са неким малим променама у подршци Apple платформe.

Котлин 1.5 је објављен у мају 2021. године.

Котлин 1.6 је објављен у новембру 2021. године.

Котлин 1.7 је објављен у јуну 2022. године, укључујући алфа верзију новог компајлера Котлин К2.[25]

Котлин 1.8 је објављен у децембру 2022. године, 1.8.0 је објављен 11. јануара 2023. године.

Котлин 1.9 је објављен у јулу 2023. године, 1.9.0 је објављен 6. јула 2023. године.

Дизајн[уреди | уреди извор]

Лидер развоја Андреј Бреслав рекао је да је Котлин дизајниран да буде објектно-оријентисан језик индустријске снаге и „бољи језик“ од Јаве, али да и даље буде у потпуности интероперабилан са Јава кодом, омогућавајући компанијама да изврше постепен прелазак са Јаве на Котлин.

Тачке и зарезе су опционе као извршилац исказа; у већини случајева довољан је нови ред да би компајлер закључио да је изјава завршена.

Код Котлин језика, декларације променљивих и листе параметара имају тип података иза имена променљиве (и са сепаратором двотачке), слично као Ада[16], Бејзик[17], Паскал[18], Тајпскрипт[19] и Раст[20]. Ово, према чланку Романа Елизарова, тренутног вође пројекта, резултира усаглашавањем имена променљивих и пријатније је за очи, посебно када постоји неколико декларација променљивих у низу, а један или више типова је превише сложен, или треба да буде експлицитно декларисан да би људски читаоци разумели.

Променљиве у Котлину могу бити само за читање, декларисане кључном речју вал, или универзалне променљиве, декларисане кључном речју вар.

Чланови класе су подразумевано јавни, а саме класе су подразумевано коначне, што значи да је креирање изведене класе онемогућено, осим ако основна класа није декларисана кључном речју опен.

Синтакса[уреди | уреди извор]

Процедурални стил програмирања[уреди | уреди извор]

Котлин ублажава Јавино ограничење дозвољавања статичких метода и променљивих да постоје само унутар тела класе. Статички објекти и функције могу се дефинисати на највишем нивоу пакета без потребе за редундантним нивоом класе. За компатибилност са Јавом, Котлин обезбеђује ЈВМ Нејм (енгл. JVMName) анотацију која наводи име класе које се користи када се пакет прегледа из Јава пројекта. На пример, @file:JvmName("JavaClassName")

Главна функција[уреди | уреди извор]

Као и у С[21] (транскр. Це), С++[22] (транскр. Це++), С#[23] (транскр. Це шарп), Јави и Го[24]-у, улазна тачка у Котлин програм је функција под називом "мејн", којој може бити прослеђен низ који садржи било које аргументе командне линије. Ово је опционо од Котлина 1.3. Подржана је интерполација стрингова у стилу Перл[25] и ПХП[26]-а . Закључивање типа је такође подржано.

Писање кода у главној функцији
Писање кода у главној функцији

Котлин прави разлику између типова података који могу да имају нулту вредност и оних који не могу. Сви објекти који могу имати нулту вредност морају бити декларисани са "?" постфиксoм после назива типа. Операције над објектима са нултом вредношћу захтевају посебну пажњу програмера: провера нуле мора да се изврши пре употребе вредности, било експлицитно, или уз помоћ Котлинових оператора.

Апликације[уреди | уреди извор]

Када је Котлин најављен као званични Андроид развојни језик на Гугл конференцији у мају 2017. године, постао је трећи језик који је у потпуности подржан за Андроид, после Јаве и С++ језика. Од 2020. године, Котлин је најчешће коришћени језик на Андроиду, а Гугл процењује да је 70% од 1.000 најбољих апликација у Плеј продавници[27] написано на Котлину. Сам Гугл има 60 апликација написаних у Котлину, укључујући Мапе и Драјв. Многе Андроид апликације су у процесу миграције на Котлин и с тога користе и Котлин и Јаву. Котлин на Андроид-у се сматра корисним због његове безбедности нул-показивача, као и због његових карактеристика које чине краћи, читљивији код.

Поред своје истакнуте употребе на Андроиду, Котлин све више добија на развоју на страни сервера. Спринг Фрејмворк је званично додао подршку за Котлин са верзијом 5, 4. јануара 2017. године. Да би додатно подржао Котлин, Спринг[28] је превео сву своју документацију на Котлин и додао уграђену подршку за многе карактеристике специфичне за Котлин, као што су корутине. Поред Спринг-a, Џетбрејнс је произвео први оквир за Котлин под називом Ктор за прављење веб апликација.

Године 2020-те, Џетбрејнс је у анкети програмера који користе Котлин открио да 56% користи Котлин за мобилне апликације, док га 47% користи за веб бекенд. Нешто више од трећине свих Котлин програмера је рекло да мигрирају на Котлин са другог језика.

Референце[уреди | уреди извор]

  1. ^ Програмски језик високог нивоа (на језику: српски), 2024-01-16, Приступљено 2024-05-18 
  2. ^ Java (програмски језик) (на језику: српски), 2024-05-15, Приступљено 2024-05-19 
  3. ^ Андроид развој софтвера (на језику: српски), 2024-05-11, Приступљено 2024-05-19 
  4. ^ Java виртуелна машина (на језику: српски), 2024-01-13, Приступљено 2024-05-19 
  5. ^ JavaScript (на језику: српски), 2024-05-02, Приступљено 2024-05-19 
  6. ^ Фронт-енд веб развој (на језику: српски), 2024-01-16, Приступљено 2024-05-19 
  7. ^ React (на језику: српски), 2024-05-07, Приступљено 2024-05-19 
  8. ^ JetBrains (kompanija) (на језику: српски), 2024-05-07, Приступљено 2024-05-19 
  9. ^ Google (веб-претраживач) (на језику: српски), 2024-04-09, Приступљено 2024-05-19 
  10. ^ Компилатор (на језику: српски), 2020-01-12, Приступљено 2024-05-19 
  11. ^ Dvodimenzionalni prostor (на језику: српски), 2024-04-13, Приступљено 2024-05-19 
  12. ^ Scala (програмски језик) (на језику: српски), 2024-04-23, Приступљено 2024-05-19 
  13. ^ Apache (server) (на језику: српски), 2022-06-10, Приступљено 2024-05-19 
  14. ^ „Kotlin Native | Kotlin”. Kotlin Help (на језику: енглески). Приступљено 2024-05-19. 
  15. ^ Бета-функција (на језику: српски), 2024-01-14, Приступљено 2024-05-20 
  16. ^ Ada (програмски језик) (на језику: српски), 2024-05-19, Приступљено 2024-05-20 
  17. ^ BASIC (на језику: српски), 2024-04-07, Приступљено 2024-05-20 
  18. ^ Pascal (програмски језик) (на језику: српски), 2024-05-07, Приступљено 2024-05-20 
  19. ^ TypeScript (на језику: српски), 2024-01-13, Приступљено 2024-05-20 
  20. ^ Rust (програмски језик) (на језику: српски), 2024-02-06, Приступљено 2024-05-20 
  21. ^ C (програмски језик) (на језику: српски), 2024-04-16, Приступљено 2024-05-20 
  22. ^ C++ (на језику: српски), 2024-05-07, Приступљено 2024-05-20 
  23. ^ C Sharp (на језику: српски), 2024-05-06, Приступљено 2024-05-20 
  24. ^ Go (програмски језик) (на језику: српски), 2023-08-11, Приступљено 2024-05-20 
  25. ^ Perl (програмски језик) (на језику: српски), 2023-10-06, Приступљено 2024-05-20 
  26. ^ PHP (на језику: српски), 2024-04-23, Приступљено 2024-05-20 
  27. ^ Google Play (на језику: српски), 2024-01-13, Приступљено 2024-05-20 
  28. ^ Spring Framework (на језику: српски), 2024-04-11, Приступљено 2024-05-20