У якому році з'явилася мова програмування kotlin. За що Kotlin так полюбили у Google і кому потрібні дві тисячі мов програмування

У якому році з'явилася мова програмування kotlin. За що Kotlin так полюбили у Google і кому потрібні дві тисячі мов програмування

Офіційною мовою для розробки на Android.

Чому Kotlin назвали на честь острова у Фінській затоці, як і коли мова стала популярною серед розробників мобільних додатків, чому їм зручно користуватися і навіщо вона спочатку знадобилася? Маркетинг-менеджер Kotlin Роман Бєлов розповів «Паперу»Як у Петербурзі створювали мову, визнану Google.

Фото з архіву Романа Бєлова

Як і коли з'явилася мова програмування Kotlin?

Ми почали розробляти Kotlin у 2010 році. На той час компанії JetBrains було вже десять років і основний продукт компанії - JetBrains IntelliJ IDEA, повністю написаний на Java, - був дуже великого розміру. Стало зрозуміло, що багато в чому Java нас не влаштовує. Було кілька альтернативних мов програмування, але виявилося, що жодна з них не відповідає тим вимогам, які ми висуваємо до мови, якою хотіли б перейти.

Була й друга причина. Коли в одному місці збирається дуже багато людей з великим експертним досвідом у галузі мов програмування, часто виходить, що народжується нова мова. Так воно й вийшло. По-перше, була усвідомлена та серйозна потреба, а по-друге, ми могли її задовольнити.

Як і багато наших продуктів, ми створювали Kotlin виходячи зі своєї необхідності. Це взагалі закладений у розвитку компанії принцип: ми бачимо, що на ринку немає інструменту, який вирішував би якусь проблему, і тоді створюємо його. Наші перші користувачі – це завжди ми самі. Тому зазвичай у нас виходять дуже практичні та прагматичні інструменти.

Чому Kotlin називається саме так?

У той момент, коли вигадувалась назва, на JVM (Java Virtual Machine - прим. «Папери») Існували ще мови, названі на честь островів: Java, Ceylon. І ми подумали: який у нас є острів поряд? Котлін. І ця назва прижилася. Тут немає якоїсь традиції чи правила, але так сталося, якоїсь глибшої думки за цим немає.

У чому особливості мови?

Напевно, найвдаліше слово, яке підходить до мови Kotlin – це прагматичність. Мови бувають різні: деякі виходять із академічного середовища, інші створені для конкретних платформ. Ми спочатку були націлені практичною мовою для максимально широкої аудиторії. Він мав бути демократичним, тобто без хитромудрих речей. Бувають ситуації, коли програміст знає всі тонкощі мови і завдяки цьому пише хитрий код - і в цей код ніхто з джуніор-програмістів не може лізти. Нам потрібна мова, яка однаково гарна як для програмістів-початківців, так і для просунутих.

Усередині компанії у нас також повна демократія: кожен програміст сам вирішує, якою мовою писати, на Java або на Kotlin, і далеко не всі переходять на Kotlin. Для мене як для маркетинг-менеджера мови JetBrains – це маленький світ. Коли у нашій великій компанії всі перейдуть на Kotlin, тоді, мабуть, і в усьому світі програмісти перейдуть на нього. Але, дійсно, відсоток використання Kotlin у компанії незмінно зростає.

Чим же Kotlin такий гарний? Насамперед розробники люблять Kotlin за його стислість і виразність. Це властиво всім новим мовам. Раніше людей це не дуже бентежило, потім розмір програм став більшим – люди зрозуміли, що пишуть дуже багато абсолютно безглуздих шматків коду тільки тому, що від них це вимагає синтаксис мови програмування.

Друга причина в тому, що він повністю сумісний з Java і дозволяє поступово мігрувати з Java-програми на Kotlin-додаток. Наприклад, програма Basecamp протягом півроку повністю мігрувала з Java на Kotlin.

Третій пункт – Kotlin безпечний: у семантику мови закладено принципи, які запобігають цілій низці дуже поширених помилок, які зазвичай трапляються у момент виконання програми. Це дозволяє писати безпечніший код, що в кінцевому підсумку допомагає заощадити гроші та знизити витрати на тестування.

Як Kotlin помітили розробники програм?

У JetBrains ми не займаємося Android-розробкою і спочатку ніхто не думав, що Kotlin буде мовою, яка так вдало підійде для цілей Android-розробників. Але в якийсь момент виявилося, що Android застряг на Java 6 і дуже багато нових фіч Java на Android недоступні. Тоді сучасні розробники звернули увагу на Kotlin.

Ми зрозуміли, що Kotlin може бути дуже корисним для Android, і стали допрацьовувати фічі, які допомагають Android-розробникам, враховували їхні потреби розробки дизайну мови.

Рік тому у нас відбулася досить велика подія: система складання Gradle, за допомогою якої збираються всі програми для Android, оголосила про перехід на Kotlin.

В якомусь сенсі історія з Kotlin на Android - абсолютно казкова та хрестоматійна: ми просто робили мову програмування, і вона дуже подобалася розробникам. Це історія про рух знизу нагору, а не навпаки. Розробники давно просили Google підтримати Kotlin. І Google до них прислухався.

З анонсом від Google формально для нас нічого не змінюється: ми продовжуємо розробляти мову та націлені на різні платформи. Природно, ми передчуваємо особливу увагу до мови з боку Android-розробників: вона буде, зокрема, виражена в повідомленнях про помилки, запити на підтримку тієї чи іншої функціональності, і, природно, ми все це оброблятимемо. Але в цілому, звичайно, продовжимо рухатися наміченим шляхом.

Хто і для чого використовує мову Kotlin?

У компанії ми почали застосовувати Kotlin року з 2012 року, але офіційний реліз мови був 17 лютого 2016 року. До цього часу конструкції мови активно змінювалися та підтримувати код на Kotlin було досить проблематично. Треба розуміти, що розвиток мов програмування потребує великої уваги зворотної сумісності. І коли ми заявили про реліз, взяли на себе зобов'язання щодо зворотної сумісності: тому, що новий код буде сумісний на бінарному рівні зі старим. І ми ці зобов'язання виконуємо.

Зараз мову Kotlin у своїх додатках використовують такі російські компанії, як Avito та «Рокет Банк». За минулий рік Kotlin випробували 160 тисяч програмістів. До сьогодні Kotlin показував експоненційне зростання за кількістю програмістів, і, думаю, оголошення Google допоможе нам продовжити це зростання.

2017 піднявся новий хайп навколо ЯП (Мова програмування)Котлін, і на цьому тлі я хочу розповісти вам також і про інші нововведення у розробці програм для смартфонів на базі операційної системи Android. Але це мій особистий блог, а не якийсь там академічний ресурс, і тому спочатку я дозволю собі деякі ліричні відступи убік, обернувши свій погляд у минуле.

Історичний екскурс

Перше моє знайомство з програмуванням смартфонів, які працюють під керуванням операційної системи Android, відбулося на початку 2012 рокутобто рівно 6 років тому. У ті далекі часи Google ще не створив свою чудову IDE (Integrated Development Environment, Інтегроване Середовище Розробки) Android Studio, і я в IDE Eclipse зі встановленим плагіном ADT (Android Development Tools, Інструменти розробника Android). Приводом до знайомства стала купівля мого першого смартфона HTC Desire HD менш ніж за рік до цього, на початку літа 2011 року.

Рідною мовою програмування для Android вважалася Java. Це була нова для мене мова, тому у мене виникла потрійна складність: нова IDE, нова ЯП та нова ОС (Операційна система), І це все одночасно. Тим не менш, я сяк-так навчився писати програми під Android, і навіть написав один комерційний продукт, за що із задоволенням отримав заохочення в €1000.

Тим не менш, програмування під Android було вкрай незручним, про що я навіть періодично. Тут і недосконалість IDE, і нерозвиненість стандартних бібліотек у напрямку Android, і їх, і глюкавість всього цього окремо.

Ще через рік, на початку 2013 рокуя навіть почав вести спеціальний блог, який називається «Андроїд, фінти вухами» з характерним епіграфом « Їжачки плакали, кололися, але продовжували гризти кактус...», в якому періодично викладав розв'язання тих чи інших проблем, з якими я стикався, а також публікував додаткову довідкову інформацію, як би собі для пам'яті.

У 2014-му роціз'явилася перша стабільна версія IDE від Гугла (правда, заснована на IDE IntelliJ IDEA, написаної в юридично Чеській компанії JetBrains, заснованої в Празі трьома російськими програмістами).

Взагалі все почалося з російської компанії StarSoft, яка розпочала свою діяльність відразу після серпневого путчу 1991 року на базі лабораторії програмного забезпечення при Незалежній Гуманітарній Академії в Санкт-Петербурзі, і складалася тоді з трьох осіб. У 1993 році розпочалася робота над проектом Together (засіб проектування ПЗ), ідея якого була запропонована німцем , що приїхав з Німеччини . У 1995 році компанія була перейменована на STAR SPb і офіційно зареєструвалася як російське представництво STAR Group. У 1999 році зі STAR SPb виділилася "російсько-німецька" компанія TogetherSoft, що складалася з фахівців, які працювали над продуктом Together. Серед співзасновників, як завжди, виявилися американці, які вирішили, що хороших програмістів потрібно терміново вивозити з Пітера до Європи, і в тому ж 1999 році топова команда TogetherSoft (близько 50 осіб)поїхала до Праги. Серед них були і три майбутні засновники компанії JetBrains. І ось, в 2000 році ними була заснована компанія JetBrains, і зареєстрована там же, де вони на той момент жили, в Празі.

Флагманським продуктом JetBrains є IntelliJ IDEA - IDE для багатьох мов програмування. Її те і взяв за основу Google для своєї IDE Android Studio. До речі, співзасновник Гугла теж із Росії. Ледве копнеш — і скрізь стирчить російське коріння... Він народився в Москві і жив там до 5 років, а потім його сім'я 1979 року емігрувала до Америки, як тоді це було прийнято у євреїв. Через антисемітизм, зокрема, наявність квот для євреїв для вступу до ВНЗ та університетів. Спочатку євреї, як народ, відокремлюються, всіляко підкреслюють свою богообраність і не приховують свій не завжди прийнятний менталітет у регіонах з іншою домінуючою релігією та іншим менталітетом, а потім дивуються результату. Втім, це вже інша тема. Незважаючи на його, м'яко кажучи, скептичне ставлення до своєї колишньої батьківщини (а що ще можна очікувати від людини, вихованої радянськими емігрантами)я цілком поділяю його погляди, зокрема, на Інтернет. Та й багато критичних висловлювань на адресу Росії цілком собі справедливі, хоч і неприємні, чуючи з вуст іноземця. Втім, я знову відволікся...

Отже, коли з'явилася Android Studio, і я відразу перейшов на неї, як на потенційно перспективнішу для розробки під Андроїд IDE. Потрібно сказати, що спочатку були помітні як її плюси, так і мінуси в порівнянні з Eclipse. Тим не менш, плюсів було набагато більше, і я міцно підсів на неї.

Як любитель, я програмую нерегулярно, і останній 2017 рік у частині Android пропустив взагалі. І ось зараз я вирішив оновити IDE та подивитися, що там взагалі з'явилося нового за пропущений час. І виявилося, що з'явилося щось дофіга суттєвого! Нижче я перерахую деякі особливо помітні нововведення, які оцінюю дуже позитивно.

Нова мова програмування Котлін

Донедавна Android Studio підтримувала програмування тільки мовою Java (Джава, раніше частіше говорили Ява. Мова названа на честь марки кави, яка, у свою чергу, названа на честь острова в Індонезії)і C++ для нативного коду. Мова Java - не сказати, щоб дуже старий, але з огляду на молоду спрямованість його застосування (Мультиплатформність), досить літній. Він був розроблений відомою компанією Sun Microsystems у 1995 році. Спочатку мова називалася Oak («Дуб»), та розроблявся для програмування побутових електронних пристроїв. Потім він був перейменований на Java і став використовуватися для написання клієнтських програм та серверного програмного забезпечення. Пізніше з'явилися інші його застосування.

Зауважу, що Java працює в парі з компілятром, який не видає повноцінний код для його виконання в операційній системі. Вихідні тексти, написані цією мовою, компілюються в спеціальний байт-код, який виконується на спеціальній віртуальній машині, додатково встановленої в системі, і перекладає цей код у зрозумілі операційній системі та процесору команди. Таким чином, програми, написані цією мовою, можуть виконуватися будь-яким пристроєм, у якому встановлена ​​така віртуальна машина. А віртуальні машини Java написані вже для різних архітектур. Цим і досягається мультиплатформність програм. Мінусом такого підходу є збільшений час їх виконання за рахунок додаткового прошарку у вигляді віртуальної машини між кодом та процесором. Також програми на Java часто працюють повільніше через недосконалість багатьох Java-бібліотек, наприклад бібліотек графічного інтерфейсу. Але це плата за мультиплатформенность.

І ось, зовсім недавно, наприкінці 2017 року, вийшла Android Studio 3.0, яка поряд із мовою Java та С++ почала підтримувати мову Kotlin (Котлін), Який, як і Java, призначений для створення того ж самого байт-коду для тієї ж віртуальної машини, але має інший синтаксис, що дозволяє писати набагато компактніші вихідні коди. Разом про те, файли з вихідними обидві мови можна без обмежень змішувати щодо одного проекті, що дозволяє поступово перекласти весь проект на Котлін.

Мова дуже свіжий. Він почав розроблятися в 2010 році, був представлений громадськості в 2011 році, програмувати на ньому під Android стало можливим з 2012 року, а офіційний реліз був випущений зовсім недавно, в 2016 році. До речі, за традицією (як і Java)мова названа на честь острова. На цей раз це російський острів Котлін у Фінській затоці, на якому розташоване місто Кронштадт. А розроблена мова пітерськими програмістами все в тій же компанії JetBrains! Про як, справжня російська мова програмування! [Патріотам розмахувати прапорами, а автор цього посту вже ходить кругами по кімнаті, грізно помахуючи держаком...]

Я вже спробував писати цією мовою під Android, і можу з упевненістю заявити, що мова цілком собі придатна. Раніше я губився в Java-коді, тому що в Android треба прописувати все і вся, і виходили дуже довгі простирадла вихідників. У результаті вихідники розросталися до непристойних розмірів, і їх доводилося дрібно дробити на класи, розпихаючи їх у різні файли, і тоді я вже губився у файлах. У Kotlin використовується філософія «все, що можна згенерувати автоматично, треба генерувати автоматично». З одного боку, код стає менш прозорим. (мінус, але, хіба що, тільки для новачків)але більш простий і компактний (великий плюс для всіх).

Компактність коду досягається не лише за рахунок скорочених конструкцій синтаксису, а й за рахунок штатних бібліотек, спосіб застосування яких спеціально заточений на компактність та ергономічність використання. Прикладом цього можуть бути співпрограми (або, як калька з англійської, корутини). Програми - це дуже зрозумілий компактний спосіб оформлення коду, який повинен виконуватися асинхронно основному потоку. Жодних додаткових класів з методами окремо прописувати не треба, все робиться прямо в основному коді, і це чудово! Крім того, співпрограми реалізовані на рівні самої бібліотеки і не створюють великовагових системних потоків. Їх навіть називають легковажними потоками. Тому обмежень на їх одночасно запущену кількість практично не існує. Співпрограми незрівнянні!

Архітектурні компоненти для Android від Google

Також дуже компактним виявилося створення та використання бази даних SQLite за допомогою бібліотеки Room, яка є обгорткою над відомим класом SQLiteOpenHelper. Для використання Room досить описати два невеликі класи, що описують таблицю і базу даних і один маленький інтерфейс, що описує функції взаємодії з цією базою даних. Це все в Котліні навіть не потрібно розсовувати в різні файли. На основі цієї мізерної інформації Room відтворить усі дії, які раніше доводилося розписувати у величезних файлах, автоматично та всередині себе. Чудеса!

У реальних програмах слід відстежувати зміни даних у базі та автоматично оновлювати інформацію у візуальних компонентах. Тому компонент Room найчастіше використовується не сам по собі, а разом із компонентом LiveData з бібліотеки android.arch.lifecycle. Цей компонент також використовується просто. Дані, які потрібно відстежувати, передаються з бази в змінну не безпосередньо, а у вигляді класу LiveData, що прийняв усередині Room ці дані у вигляді параметра. Після цього в основному коді одним рядком Котлін задається спостереження за ними і функція оновлення візуального компонента, яка запускається при зміні даних. Все просто!

Ще один корисний компонент з бібліотеки android.arch.lifecycle, який вирішує головний біль із збереженням даних активності при поворотах екрана - ViewModel. Раніше доводилося писати всякі хитромудрі милиці для того, щоб дані не губилися, а обчислення не переривалися. Тепер для цього є офіційний компонент! Якщо раніше ми відокремлювали інтерфейс від коду (розмітка та активність), то тепер настав час отеляти код, який повинен працювати тільки в період життєвого циклу активності (наприклад, забезпечення функціонування інтерфейсу з користувачем), від коду, який має працювати поза прив'язкою до конкретного життєвого циклу активності (наприклад, отримання, обробка та передача даних). При цьому результат роботи другої частини коду ми можемо автоматично прочитати перетвореної після повороту екрана активності.

Для реалізації цієї схеми з ViewModel теж потрібно мінімум дій. Пишеться окремий клас із кодом, який не повинен перериватися (Т.зв. модель виду, чому «модель» - не знаю; може, перекладаю неправильно), а в основному коді одним рядком викликається провайдер моделей, який цей клас передається як параметр. Провайдер або повертає існуючий об'єкт класу моделі (Після повороту екрана)або створює такий об'єкт за переданим класом, якщо такого ще немає, і теж повертає його (при першому запуску активності). Активність завжди може звертатися до функцій та змінних цього об'єкта.

Всі три компоненти об'єднані під офіційною назвою Android Architecture Components (Архітектурні Компоненти для Android). Правда, туди ще входить компонент LifeCycle, що теж знаходиться в бібліотеці android.arch.lifecycle , але він використовується в щільній зв'язці з LiveData, і я б його взагалі не виділяв. Поява таких високорівневих компонентів є довгоочікуваним кроком Google у правильному напрямку. Я давно вже лаявся на те, як багато різних класів потрібно розширити самому і поєднати їх усі один з одним, щоб змусити працювати щось більше, ніж примітивні приклади з підручників для початківців. І ось нарешті серед бібліотек почали з'являтися правильні компоненти. Сподіваюся, що ця тенденція продовжиться.

Візуальний редактор інтерфейсу

На цьому нововведені нововведення в програмуванні смартфонів не закінчуються. З самого народження в Android Studio було дуже важко зі стабільністю та передбачуваністю роботи візуального редактора інтерфейсу, хоча він і був стабільнішим, ніж у Eclipse. Навіть безпосередньо редагуючи xml-розмітку інтерфейсу, дуже складно було налаштувати всі ці Layout і інші візуальні компоненти так, щоб вони відображалися в потрібних місцях і в потрібному вигляді.

На щастя, в Android Studio, починаючи з версії 2.2, замість гіморної побудови інтерфейсу через макети лінійного розташування елементів (LinearLayout)пропонується використати новий макет примусового розташування (ConstraintLayout). Крім того, візуальний редактор, нарешті, доведений до ладу. Все це разом дало позитивний ефект. Тепер правильно розмістити елементи не так складно, і поводяться вони цілком передбачувано. Тепер можна навіть не чіпати xml-розмітку, а всі дії виконувати у візуальному редакторі.

Останнє оновлення: 02.12.2017

Kotlin представляє статично типизовану мову програмування від компанії JetBrains. Kotlin можна використовувати для створення мобільних та веб-додатків.

Kotlin працює поверх віртуальної машини Java (JVM) і під час компіляції компілюється в байткод. Тобто, як і у випадку з Java, ми можемо запускати програму на Kotlin скрізь, де встановлена ​​JVM. Хоча також можна компілювати код JavaScript і запускати в браузері. І, крім того, можна компілювати код Kotlin у нативні бінарні файли, які працюватимуть без жодної віртуальної машини. Таким чином, коло платформ, для яких можна створювати програми на Kotlin, надзвичайно широке – Windows, Linux, Mac OS, iOS, Android.

Перша версія мови вийшла 15 лютого 2016 року. Хоча сама розробка мови велася з 2010 року. Поточною версією мови є версія 1.2, яка вийшла 28 листопада 2017 року.

Kotlin зазнав впливу багатьох мов: Java, Scala, Groovy, C#, JavaScript, Swift і дозволяє писати програми як в об'єктно-орієнтованому, так і функціональному стилі. Він має ясний та зрозумілий синтаксис і досить легкий для навчання.

Найпопулярнішим напрямком, де застосовується Kotlin, є насамперед розробка під ОС Android. Причому настільки популярним, що компанія Google на конференції Google I/O 2017 проголосила Kotlin однією з офіційних мов для розробки під Android (поряд з Java та C++), а інструменти по роботі з цією мовою були включені в функціонал середовища розробки Android Strudio. із версії 3.0.

Завантажити компілятор безпосередньо для мови Kotlin можна за адресою .

За вказаною вище адресою можна знайти архів. Завантажимо та розпакуємо з архіву папку kotlinc. У розпакованому архіві в папці bin ми можемо знайти утиліту kotlinc , за допомогою якої буде здійснюватися компіляція:

Тепер визначимо на жорсткому диску каталог файлів з вихідним кодом. Наприклад, у моєму випадку каталог перебуватиме на шляху c:/kotlin . У цьому каталозі створимо текстовий файл і перейменуємо його на app.kt. Розширення kt - це розширення файлів на мові Kotlin.

Fun main(args: Array )( println("Hello Kotlin") )

В даному випадку ми визначаємо функцію main, яка і представлятиме дії, які виконує програма. Для визначення функції застосовується ключове слово fun.

Ця функція приймає параметр args, який представляє масив рядків.

Всередині функції main виконується інша функція - println() , яка виводить повідомлення на консоль.

Відкриємо командний рядок. Спочатку, за допомогою команди cd, перейдемо до папки, де знаходиться файл app.kt. Потім для компіляції програми введемо таку команду:

C:\kotlin\bin\kotlinc app.kt -include-runtime -d app.jar

В даному випадку ми передаємо компілятор c:\kotlin\bin\kotlinc для компіляції файл app.kt. (Щоб не писати повний шлях до компілятора, шлях до нього можна додати змінну PATH в змінних середовища). Далі за допомогою параметра -include-runtime вказується, що створюваний файл включатиме середовище Kotlin. А -d вказує, як буде називатися створюваний файл програми, тобто в даному випадку це буде app.jar .

Після виконання цієї команди буде створено файл app.jar. Тепер запустимо його на виконання. Для цього введемо команду

Java -jar app.jar

В даному випадку вважається, що шлях до JDK, встановленому на комп'ютері, прописаний у змінній PATH у змінних середовищах. Інакше замість "java" доведеться писати повний шлях до утиліти java.

У результаті під час запуску файлу ми побачимо на консолі рядок " Hello Kotlin " .

Fun main(args: Array ) ( val numbers = arrayListOf(15, -5, 11, -39) val nonNegativeNumbers = numbers.filter ( it >= 0 ) println(nonNegativeNumbers) ) // Висновок: 15, 11

Функції вищого порядку - це функції, які приймають інші функції як аргументи та повертають функції. Розглянемо наступний приклад:

Fun alphaNum(func: () -> Unit) ()

У ньому func – це ім'я аргументу, а () –> Unit – це тип функції. Ми говоримо, що func буде функцією, яка не приймає аргументів і нічого не повертає.

Лямбда-вирази, чи анонімні функції - це функції, які оголошуються, а передаються як виразів. Ось приклад:

Val sum: (Int, Int) -> Int = (x, y -> x + y)

Ми оголошуємо змінну sum , яка бере два числа, складає їх і набуває значення суми, приведеної до цілого. Для виклику досить простого sum(2,2).

Порівняння швидкості Java та Kotlin

Перше складання Kotlin-коду займає приблизно на 15–20% більше часу, ніж аналогічний процес на Java. Однак інкрементне складання Kotlin навіть трохи швидше, ніж у Java. Таким чином, мови приблизно рівні швидкості компіляції.

Майбутнє Kotlin

Kotlin – це наступний етап розвитку Java, з якою він повністю сумісний. Це робить його відмінним інструментом для мобільних та ентерпрайз-додатків. Оскільки Kotlin тепер є офіційною мовою Android, можна не боятися, що, вивчивши його, ви залишитеся без роботи.

У вивченні цієї мови вам допоможе серія статей, що описує процес створення простого мобільного додатка Keddit – клієнта для популярного ресурсу Reddit. Усі її частини для вашої зручності ми перерахували у списку нижче.

Вам потрібні такі бібліотеки:

  • Retrofit 2.0;
  • RxJava;
  • Picasso;
  • RecyclerView;
  • Розширення Kotlin для Android;
  • Dagger 2

Усі вихідні дані доступні на GitHub . Серія складається з наступних частин.

У 2010 році група розробників російського відділення JetBrains взялася за розробку мови, яка була б зручніша і типобезпечніша, ніж Java, але не така складна, як Scala. Назва цієї мови було дано на честь острова Котлін, розташованого у Фінській затоці (за аналогією з Java, яка також названа на честь острова).

Якщо ви подивитеся на будь-який сучасний огляд найперспективніших мов програмування, у тому числі, ви неодмінно знайдете там Kotlin. У чому суть цієї мови, чому вона так усім подобається, які в неї перспективи – про це далі.

Синтаксис

Ідея зробити мову, однаково зручна, як для новачків, так і для досвідчених розробників безпосередньо висловилася в його синтаксисі. Як і будь-який сучасний аналог, Kotlin – гранично лаконічний, компактний та зрозумілий. Величезна кількість коду, яку доводилося раніше писати на Java, тепер можна просто проігнорувати. Простий приклад: використання точки з комою для поділу операторів не є обов'язковою умовою – компілятор тепер все розуміє самостійно, якщо просто перейти на новий рядок. При оголошенні змінних у часто не обов'язково вказувати тип - він визначиться автоматично.

При цьому треба сказати, що Kotlin у плані запису трохи повернувся до стилю Pascal – тут теж наочність панує над чіткістю конструкцій. Трохи докладніше про це можна почитати у цій невеликій статті. У ній розглянуті лише базові принципи побудови мов Java та Kotlin, тому зрозуміла вона буде абсолютно всім.

Втім, невеликий шматочок коду все ж таки залишимо:

fun main(args: Array ) {
val scope = "світ"
println("Hello, $scope!")
}

Гранично простий запис, який має бути зрозумілим будь-кому, хто хоча б рік у школі чи університеті навчав програмування.

Важливо згадати, що Kotlin повністю сумісний із Java. Саме тому спочатку його розглядали як простий синтаксичний цукор, використовуючи для комплексних завдань, де просто хотілося заощадити час і сили.

Переваги

Загалом всі переваги в порівнянні з Java вже були названі, тому просто зберемо їх в одному місці:

    Об'єм коду. Невикористання непотрібних архаїчних шматків коду прискорює процес розробки та підвищує читальність;

    Безпека. Закладені в синтаксис мови правила створення коду дозволяють уникати дрібних помилок, що важко відстежуються, які виникають лише в момент виконання програми;

    Сумісність у Java. Це зручно і з погляду навчання нової мови, і з погляду поступового перекладу ваших програмних продуктів з Java на Kotlin. Наприклад, саме так сталося із додатком Basecamp.

Недоліки

Як у мови, яка була розроблена на основі Java, у Kotlin у порівнянні з ним є дві очевидні недоліки: швидкість і опрацьованість. У першому випадку все зрозуміло: працюючи на JVM важко обійти швидкодію Java. Друга проблема трохи надумана для такої молодої мови, адже в офіційному обороті вона існує трохи більше року. Так, тут значно менше інструментів і бібліотек, ніж на Java. Але, по-перше, поки це не критично, а по-друге, у світі Java кількість далеко не скрізь перейшла якість.

Kotlin поки зі своїми головними завданнями справляється, а повна сумісність з Java допомагає заплющити очі на зазначені прогалини.

Перспективи

Незважаючи на те, що розробка Kotlin почалася в 2010 році, перша офіційна версія побачила світ лише в лютому 2016 року. /O було оголошено про офіційну підтримку Kotlin у системі розробки Android-додатків.

Враховуючи високу популярність IntelliJ IDEA серед розробників та стратегічну ставку компанії на Kotlin, можна з упевненістю стверджувати, що через 3-4 роки ми побачимо його серед повноправних конкурентів Java та Swift у галузі мобільної розробки. Крім того, якщо творці мови не розчаруються у своєму продукті, напевно Kotlin вирушить серйозно захоплювати й інші горизонти: веб, ІІ, інтернет речей, великі дані, десктопні програми.

Якщо вас всерйоз зацікавила ця мова, то обов'язково загляньте на її офіційний сайт (російська версія) і випробувайте всі переваги на особистому досвіді. Поспішайте, поки це не стало мейнстрімом.

 

 

Це цікаво: