Навіщо Apple і Google свої мови програмування

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


WWDC 2014 дійсно запам'яталася розробникам. Представлена нею мова програмування Swift зрівняла користувачів і програмістів у масштабі wow-ефекту, адже з часів чогось настільки цікавого для останніх у Купертіно не викочували вже давно. Ключовою перевагою, якою Apple підкупила програмних справ майстрів, виявилася швидкість. Причому не тільки написання самої програми, але і її подальшої роботи.


Слів на вітер команда Тіма Кука не кидала, і незабаром популярний ресурс Topcoder, що роздає учасникам різні платні завдання з програмування, склав цікаву статистику. Виявилося, що близько 4 тисяч зареєстрованих користувачів висловили зацікавленість у новій мові, а до кінця року керівництво очікує збільшення чисельності інших як мінімум в п'ять разів, і мова йде про спільноту всього лише одного сайту. Swift опинився до душі розробникам, і про це красномовно свідчать і інші дані, згідно з якими новинка лідирує за показником задоволеності. Часом трапляються і зовсім цікаві речі. Так, восени минулого року один підприємливий ентузіаст зумів заробити 66 тисяч доларів всього за місяць, протягом якого він займався навчанням колег по цеху роботі зі Swift. Все це наочно демонструє неабиякий інтерес, який проявляють фахівці до нового рішення від Apple, покликаного ще більше посилити зв'язок між вхідними в «яблучну» екосистему елементами.

Зрозуміло, ідея власної мови програмування не нова і вже була реалізована кількома великими гравцями ринку. Наприклад, ще на початку 90-х років XX століття корпорація Microsoft випустила свій знаменитий Visual Basic, щоб упорядкувати розвиток самого Basic, що є по суті одним з перших популярних засобів розробки з графічним інтерфейсом користувача. Не залишилася осторонь і Google - у 2009 році пошуковий гігант представив фірмовий продукт під назвою Go. Але що означає випуск нових мов, які деколи відчутно відрізняються від інструментів, звичних програмістам? Абсолютно вірно, «переучування» останніх. Враховуючи, що багато фахівців ставляться до улюбленої мови як важливого і незамінного елементу свого життя, це трудомістке завдання явно повинно мати під собою серйозне комерційне обґрунтування. Просто кажучи, затія повинна як мінімум окупити вкладені в її реалізацію кошти, а краще - принести максимум прибутку своїм авторам. Однак ситуація, яка склалася в цій області на даний момент, дещо суперечить логічним умовиводам. Чому? Давайте розбиратися.

Обидві мови, незважаючи на збільшену прірву між стратегіями Google і Apple, мають чимало спільного між собою. Ціна моменту тут - вирішення проблем, пов'язаних з поступовим застаріванням наявного інструментарію. Наприклад, Swift багато в чому подібний до Objective-C, далеко не нової мови, що є ключовим елементом операційної системи iOS. Незважаючи на те, що цей «ветеран» вже розміняв четвертий десяток, рівень його поширеності дуже високий, чим і не забула скористатися Apple, представивши Swift як спробу модернізувати Objective-C. Підхід виявився виграшним - розробники швидко освоїли нововведення, яке часом настільки схоже на свого предка, що обидві мови можуть успішно застосовуватися в одному додатку.

Google Go, як і його «яблучний» побратим, націлився на спрощення розробки складного ПЗ. Вимоги, які пред'являли до програмістів ентузіасти з «корпорації добра», вже не могли бути повністю задоволені за допомогою класичних для сегмента C++ і Python, і керівництво компанії це явно не влаштовувало. Як кажуть в самій Google, ідея Go виникла з невдоволення існуючими засобами, і ця теза навіть увійшла в опис продукту. Ключовою перевагою мови є відносна простота освоєння при значному потенціалі вирішення накопичених проблем. Орієнтуючись на різні види «хмарних» обчислень, Google швидко усвідомила застарівання наявних на руках інструментів з точки зору своєї діяльності і зробила Go відкритим, завдяки чому спільнота програмістів змогла безперестанку покращувати мову і додавати в неї нові можливості. На нещодавно WWDC 2015 схожий крок зробили і в Apple.

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


Не секрет, що в нинішній електронній індустрії асортимент і якість додатків займають чільне становище серед усіх інших факторів успіху того чи іншого продукту. Різноманітність стабільного ПЗ грає на руку Apple, у разі якої репутація розробників є важливою складовою іміджу власної продукції, і компанія вже пожинає перші плоди своїх нових починань. Однак незважаючи на успіх на початковому етапі, Swift належить пройти довгий шлях до «швейцарського ножа» сучасного програміста: в ньому як і раніше відсутня низка важливих функцій, вимоги, що пред'являються мовою до комп'ютера, досить високі, а деякі ентузіасти досі сумніваються в реальності його переваг. Втім, навіть з урахуванням всього перерахованого вище, більшість розробників оптимістично налаштовані щодо майбутнього Swift і того потенціалу, яким володіє цей інструмент.


У свою чергу Go поки що не отримав достатньо широкого поширення в споживчому сегменті, і причина тут криється в особливостях позиціонування. Справа в тому, що Google описує проект як власний інструмент вирішення власних же проблем, яких, на думку пошукового гіганта, накопичилося достатньо. Однак у це поняття переважно входять питання більш складного програмування, ніж індустрія користувацького ПЗ. Зрозуміло, можна використовувати Go для тих же мобільних додатків, але ця сфера явно не є його ковзаном.


За великим рахунком різниця між призначеннями Swift і Go принципова: якщо продукт Apple в основному задіюється в написанні програм для гаджетів кінцевого споживача - на зразок iPhone або iPad, - то розробка пошукового гіганта націлена на сервери, які обробляють дані цих програм. Такий стан справ очевидно узгоджується з різними філософіями двох компаній, коли «яблучники» зосередилися на самих пристроях, а «добряки» - на «хмарних» обчисленнях. Безумовно, Go був позитивно сприйнятий спільнотою, але загалом і загалом пропозиція Google поки що не «вистрілила». Ден Туркенкопф, топ-менеджер компанії Apprenda, що займається створенням хмарно-орієнтованих додатків для бізнесу, налаштований досить стримано:

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


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

COM_SPPAGEBUILDER_NO_ITEMS_FOUND