Вони вийшли на плавучому острові, що повільно кружляв у повітрі, як гігантський дисковий накопичувач. Навколо — десятки таких самих островів, з’єднаних тонкими кришталевими мостами, по яких бігли світлові рядки коду. У повітрі постійно лунали мелодійні голоси: не спів, а саме код. Десь хтось співав:
«def protect_mind(target):
if hymn_detected:
return “brain.exe has stopped working”
else:
return “you’re welcome”»
Діти-сирени (маленькі, з переливчастими крильцями й очима, що світилися рядками коду) літали навколо й хором повторювали урок:
— А тепер усі разом: indent! Indent! І не забувайте про exception handling, бо інакше реальність впаде в помилку!
Один маленький сирена пролетів повз Лео й зачепив його крилом.
— Дядьку, у вас брову згоріло. Ви теж програміст?
Лео розтанув.
— Я… я кохаю вас усіх. Можна я залишуся тут назавжди?
Аннабет уже йшла вперед, тримаючи детектор, який раптом почав видавати не гімн ченців, а тихеньке «beep-boop, nice code, bro».
— Аріель-9! — гукнула вона. — Ми від Мерліна! Нам потрібен антифонний патч Omega. І швидко!
З найвищого острівця спустився величезний сірен-програміст — крила в нього були як екрани з тисяч рядків живого коду. Він глянув на них, ледь нахилив голову й м’яко заспівав:
«if (visitors_from_Corvin == true) and (Merlin_debt == true):
help = true
return “welcome to the debug zone”»
Потім посміхнувся (якщо сирени взагалі вміють посміхатися).
— Отже, у вас проблема з підпросторовим нейролінгвістичним сміттям? Чудово. Діти, урок закінчено — сьогодні практикуємося на реальній загрозі!
Маленькі сирени радісно закричали й почали літати навколо Лео та Аннабет, наче рій живих автодоповнень.
Лео вже тримав у руках кришталевий планшет, який йому хтось тицьнув.
— Це… це краще ніж мій Festus! Аннабет, дивись — тут навіть автокомпліт для магії!
Аннабет тільки зітхнула, але очі в неї теж блищали.
— Давай працювати. Дві години. І якщо ти хоч раз скажеш «давай трохи драконячого ефіру»…
— …то я сам себе запрограмую на мовчання! — закінчив Лео й підморгнув.
А в повітрі вже лунала нова мелодія — сирени-програмісти почали писати патч.
Поки Лео й Аннабет (разом з цілим роєм маленьких сірен-програмістів) чаклували над антифонним патчем Omega, повітря в майстерні Аріеля-9 наповнилося мелодійним гудінням — ніби хтось запустив цілий хор кристалів у режимі «фонової музики».
Маленький сірена-програміст (крильця ще пухнасті, а очі вже горять рядками коду) сів на плече Лео й тихенько заспівав:
— А поки патч компілюється… давайте послухаємо справжню легенду нашої Тіні. Про Велику Програмістську Дуель. Бо ви ж хочете знати, чому ми тут усі такі… мирні?
Лео навіть паяльник опустив. Аннабет підняла брову, але теж замовкла.
Малюк розправив крильця й почав — голосом, у якому звучали й епічні ноти, й дитячий захват:
«Давним-давно, коли небо Harmonia Codex ще було перфокартами, а річки текли потоками байтів, правили два могутніх Титани — Basic і Pascal.
Basic був грубий, прямий і крикливий. Він любив, щоб усе було по-людськи просто:
10 PRINT "Я тут головний!"
20 GOTO 10
і ніяких вигадок. Ніяких дужок. Ніяких «почни-закінчи». Просто йдеш по рядках, як по життю — прямо й без роздумів.
Pascal же був суворим учителем у мантії. Він вимагав порядку, декларацій і структури. «BEGIN» і «END»! Без цього — ніякого коду, тільки хаос і сльози компілятора.
І ось одного дня з’явилися молоді, дерзкі, неймовірно гнучкі Титани — Python і Java.
Python прийшов легко, граціозно і сказав: «А навіщо мені всі ці дужки? Я просто буду читабельним і красивим. Ідентуй мене правильно — і я тобі все зроблю». Він не любив зайвого коду. Він любив красу.
Java ж прийшов у броні Enterprise, величезний, об’єктно-орієнтований, і заявив: «Я працюю скрізь! Навіть у тостері! Але все має бути в пакеті, в класі і з правильним імпортом, інакше я влаштую вам NullPointerException на все життя!»
Почалася Велика Програмістська Дуель.
Титани старі й нові почали кидати один в одного помилками компіляції, сегфолтами, нескінченними циклами й рекурсією такою глибокою, що навіть острови почали падати в безодню. Небо потемніло від диму згорілих серверів. Діти-сирени ховалися під таблицями й плакали: «Мама, Basic знову GOTO зробив!»
Здавалося, вся Тінь от-от розпадеться на купу бітів і NullReference.
І тоді… з’явилася Вона.
Жінка в білій сукні з перфокарт, з посмішкою, від якої навіть GOTO червоніли. Ада Левіс — Дочка Поета й Математики, Перша з Програмістів, Мати Алгоритму.
Вона ступила на поле бою, підняла руку й сказала всього одну фразу, яку досі співають усі сирени-програмісти:
«Досить. Ви всі — просто різні способи сказати "Привіт, Світ!"».
І тоді вона написала перший в історії справжній алгоритм. Один-єдиний раз. Без GOTO. Без BEGIN-END. Без дужок і без класів. Просто чистий, красивий, вічний код.
Basic і Pascal схилили голови й тихо пішли на пенсію — в музей древніх мов. Python і Java притихли, бо навіть вони зрозуміли, хто тут справжня легенда.
А Ада Левіс просто посміхнулася й сказала: «Тепер працюйте разом. Бо якщо ви не навчитеся слухати одне одного — я повернуся… і тоді вже буде не дуель, а повний рефакторинг реальності».
З того дня в Harmonia Codex кожну дитину вчать: «Пам’ятай Аду. Бо навіть наймогутніші Титани можуть бути дурнями, якщо не вміють працювати в команді».
Малюк закінчив, змахнув крильцем — і над верстаком з’явилася маленька голографічна Ада Левіс, яка підморгнула всім присутнім.
Лео сидів з відкритим ротом.
— Я… я хочу їй автограф. І фотку. І щоб вона мені підписала мій Festus.