Вступ до нової мови програмування Apple: Swift

Цього року на конференції WWDC більшу частину уваги приділили iOS 8 та OS X Yosemite, через що важлива новина – представлення мови програмування Swift – залишилася дещо недооціненою. Для звичайних користувачів це може здатися не суттєвим, але для розробників це відкриває нові можливості. Деякі мови програмування мають певні переваги: одні працюють швидше, інші є більш ефективними, ще інші відрізняються простотою та зрозумілістю. Apple приєдналася до Google (з Go) та Microsoft (.Net Framework), створивши свою власну мову програмування. Swift, за словами Apple, поєднує в собі найкращі риси інших мов, зберігаючи при цьому спадковість від Objective C. Компанія стверджує, що створила одну з найшвидших і надійних мов програмування високого рівня. Розгляньмо це докладніше.

Навіщо потрібні мови програмування?

Існує багато способів надати пристроям можливість виконувати певні дії. Будь-який пристрій, від сучасних гаджетів до звичайних комп’ютерів, може виконувати завдання через машинний код, мову асемблера або мови високого рівня, які спрощують процес розробки. Сьогодні розробники прагнуть створювати мови, максимально наближені до звичайної людської мови. Хоча назва Swift може більше привабити програмістів, ніж широку аудиторію, ми постараємося пояснити основні ідеї технології, яка визначатиме майбутнє продуктів Apple.

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

Чому саме Swift?

Головне питання, яке виникає, це “Чому?”. Мова C, розроблена у 70-х роках, була значним кроком вперед, а у 80-х з’явилася Objective C. Apple довгий час використовувала саме цю платформу для розробки. Здавалося б, якщо щось працює добре протягом 30 років, навіщо щось змінювати? Але саме в цьому і є проблема. Apple користувалася Objective C протягом багатьох років, і прийшов час для чогось швидшого, потужнішого та легшого. Так з’явився Swift.

Згідно з офіційної електронної книги про Swift (яка є у вільному доступі на iTunes), “Swift — це нова мова програмування для iOS та OS X, яка поєднує в собі кращі риси C та Objective-C, але не має обмежень сумісності з C. Swift використовує безпечні моделі програмування та сучасні функції, роблячи програмування більш простим, гнучким і приємним. Чистий підхід Swift у поєднанні з фреймворками Cocoa та Cocoa Touch відкриває нові перспективи для розробки програмного забезпечення”.

Чому Swift такий важливий?

Попри те, що Apple наголошує на інноваційності Swift, важливу роль відіграє концепція “скриптових” мов. У традиційному підході компіляції та виконання коду результат роботи можна побачити лише після його компіляції. Компіляція показує, як працює код. Якщо є помилки, це може призвести до нестабільної роботи або збою. Розробники виправляють помилки та починають процес спочатку. Цей процес є складним і трудомістким. Скриптові мови, навпаки, виконують код рядок за рядком, дозволяючи бачити результат під час написання та виявляти помилки на ранній стадії. Це робить процес розробки швидшим та простішим.

Раніше можливості скриптових мов були обмеженими. Наприклад, Python дуже швидкий, але застосовується в основному для простих завдань з обмеженою функціональністю. Він чудово підходить для певних цілей, але не для складних проектів, як розробка ігор.

Objective-C підходить для створення ігор (або C++ на Windows). Swift, у свою чергу, поєднує найкращі риси багатьох мов, зокрема Objective-C, Rust, Haskell, Ruby, Python, C#, CLU та інших (за словами розробника та експерта Swift Кріса Латтнера). Swift має на меті зберегти найкраще і позбутися недоліків попередніх мов. Тестування показує, що він працює швидше, ніж Python, і значно швидше за Objective-C, що робить його перспективним.

Які ще можливості має Swift?

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

Є ще глибші зміни. У мовах високого рівня необхідно було оголошувати класи та бібліотеки для доступу до їхніх функцій, навіть для базових операцій. Наприклад, у C++ для елементарних операцій вводу/виводу потрібно та . У Swift це не потрібно. Swift сам керує підключенням необхідних бібліотек для кожного типу даних та функції вводу/виводу. Тому, для того щоб вивести на екран “Hello world” замість:

#include<stdio.h>
int main(void)
{
  printf("Hello Worldn");
  return0;
}

достатньо написати:

println("Hello, world")

Це весь необхідний код. Також ви помітите, що код не використовує “;” як роздільник інструкцій.

Які є недоліки?

Поява Swift не означає миттєву смерть Objective-C. Програми все ще можна створювати на Objective-C, і розробники не почуватимуться повністю покинутими, оскільки є деяка схожість між цими середовищами. Очевидно, що Apple, витративши 4 роки на розробку нової мови, зосередиться на просуванні та підтримці Swift у майбутньому. Можливо, колись вони виключать Objective-C з переліку мов Apple, але цей день ще не настав. Хоча, якщо є нова мова, яку легко вивчити і яка працює набагато швидше, навіщо використовувати Objective-C?

Є певні побоювання, особливо стосовно змін в індустрії. Кар’єри багатьох людей пов’язані з розробкою додатків для iPhone, і вони та їхні студенти тепер можуть вважати себе застарілими. Цей перехід спричинить значні зміни в галузі. Також з’явиться нова хвиля розробників Swift (вже є Flappy Birds, створена на Swift), що є і позитивним, і негативним. Добре, що в галузь прийде свіжа кров, але погано, що нові розробники можуть випустити багато неякісних програм через відсутність досвіду.

Незабаром ми поговоримо про Metal framework від Apple, обговоривши його переваги та недоліки, особливо в іграх iOS.

Висновок

Якщо вас цікавить, чому на WWDC не було анонсовано нового обладнання, слід згадати, що саме програмне забезпечення надає можливості апаратному забезпеченню. Тому, анонс Swift є справді великою новиною. Ми отримали новий інструмент розробки, який вплине на майбутнє всього апаратного забезпечення. Щоб почати роботу зі Swift, вам знадобиться бета-версія Xcode 6 та обліковий запис розробника.

Завантажити Swift тут