
Мало хто знає, що теорію сучасного цифрового світу сформулювала жінка ще в середині ХІХ століття. Цу була донька Байрона — леді Лавлейс. За півтора століття цифрову еру наближали багато людей, проте більшість так і залишилася в тіні.
«Інноватори» – книга про різні етапи цифрової революції, про ґіків, хакерів і мрійників, які кардинально змінили світ і підхід до бізнесу. Вона про диваків, яким нині людство завдячує електронним комфортом: Алана Тюрінга, Біла Ґейтса, Стіва Возняка, Стіва Джобса, Ларі Пейджа та інших. З неї ви дізнаєтеся про глибокі інновації і роль творчої співпраці в історії людства.
«Інноватори» — нова книжка Волтера Айзексона, автора бестселерів «Стів Джобс» (екранізована 2015 року) та «Альберт Ейнштейн». Визнана найкращою книжкою за версією New York Times, Financial Times, Washington Post.
Примітки Леді Лавлейс
У пошуку підтримки своєї аналітичної машини Беббідж прийняв запрошення виступити перед Конгресом італійських науковців у Турині. Його виступ конспектував молодий військовий інженер, капітан Луїджі Менабреа, майбутній прем’єр-міністр Італії. З допомогою Беббіджа у жовтні 1842 року він опублікував детальний опис аналітичної машини французькою мовою.
Один із Адиних друзів запропонував їй перекласти твір Менабреа для Scientific Memoirs — періодичного видання, присвяченого науковим дослідженням.
Це була чудова нагода прислужитися Беббіджу та проявити свої таланти. Закінчивши роботу, вона повідомила Беббіджа, який, попри задоволення, дещо здивувався. «Я запитав, чому вона сама не написала авторську статтю з теми, з якою була настільки глибоко знайома», — розповідав Беббідж. Ада відповіла, що це не спало їй на думку. В ті часи жінки зазвичай не публікували наукових статей.
Беббідж запропонував їй доповнити мемуари Менабреа деякими примітками, на що вона відгукнулася з ентузіазмом. Ада почала роботу над розділом, який назвала «Примітки перекладача», і який зрештою сягнув обсягу 19 136 слів, що більш ніж удвічі перевищувало обсяг статті Менабреа. Її «Примітки», підписані «А. А. Л.», що означало Августа Ада Лавлейс, стали відомішими за саму статтю, і їм судилося зробити її культовою фігурою в історії комп’ютерної техніки.
У процесі роботи над примітками у своєму заміському маєтку в Сурреї влітку 1843 року Ада з Беббіджем обмінялися десятками листів, а восени, після її повернення до лондонського будинку, вони багато разів зустрічалися. Навколо питання, яка частка розумової роботи належить саме їй, а не йому, виросла допоміжна академічна спеціальність та гендерно загострена дискусія. У своїх мемуарах Беббідж відзначає її великі заслуги: «Ми обговорювали варіанти можливих ілюстрацій: декілька запропонував я, але вибір був повністю за нею. Так само як і алгебричне вирішення різних проблем, окрім, звичайно, пов’язаної із числами Бернуллі, яку я запропонував вирішити, аби позбавити леді Лавлейс головного болю. Вона повернула її мені на правку, оскільки виявила допущену мною в процесі розв’язання страшну помилку».
У своїх «Примітках» Ада досліджувала чотири концепції, які століття потому, коли комп’ютер нарешті народився, спричинили історичний резонанс. Першою була концепція універсальної машини, яка б не лише була здатна виконувати наперед задану задачу, а й могла б бути запрограмована та перепрограмована на виконання нескінченного та змінюваного масиву задач. Ця концепція складала ядро її «Примітки А», що підкреслювала відмінності між початковою різницевою машиною Беббіджа та запропонованою ним новою аналітичною машиною. «Різницева машина була побудована для табулювання інтеграла конкретної функції, ∆⁷ uₓ = 0, — починала вона, пояснюючи, що її метою було обчислення мореплавних таблиць. — На противагу їй, аналітична машина налаштовується не просто на табулювання результатів однієї конкретної функції і жодної іншої, а на розробку та табулювання абсолютно будь-якої функції».
Це було досягнуто, писала вона далі, шляхом «впровадження у ній принципу, винайденого Жаккаром для керування за допомогою перфорованих карт створенням найскладніших візерунків у процесі виготовлення виробів із парчі». Ада розуміла важливість цього навіть краще за Беббіджа. Це означало, що машина могла бути схожа на тип комп’ютерів, який ми зараз сприймаємо як належне: такою, яка не просто виконує конкретну арифметичну задачу, а може бути універсальною машиною. Вона пояснювала:
Щойно виникла ідея використання перфокарт, межі арифметики залишилися позаду. Аналітична машина не стоїть на одному рівні з простими «обчислювальними машинами». Вона посідає абсолютно самобутню позицію. Навчивши механізм поєднувати узагальнені символи у послідовності необмеженого розмаїття та довжини, ми встановлюємо об’єднуючу ланку між операціями матерії та абстрактними розумовими процесами.
Ці речення дещо заплутані, але вони варті уважного перечитування. У них описана сутність сучасних комп’ютерів. І Ада оживила цю концепцію поетичною виразністю. «Аналітична машина плете алгебричні візерунки так само, як верстат Жаккара плете квіти та листя», — писала вона. Коли Беббідж прочитав «Примітку А», він був у захваті і не вніс жодної правки. «Молю, не змінюй її», — прохав він.
Друга гідна уваги Адина концепція випливала з цього опису універсальної машини. Вона зрозуміла, що її операції не мають обмежуватися математикою та числами. Спираючись на розширення алгебри у формальну логіку де Моргана, вона зазначала, що машина, подібна до аналітичної машини, здатна зберігати, маніпулювати, обробляти та виконувати дії відповідно до будь-чого, що можна виразити символами: слів, логіки, музики і взагалі всього, для передачі чого можна використати символи.
Для пояснення цієї ідеї вона дала чітке визначення поняття «комп’ютерна операція»: «Бажано було б пояснити, чому під словом „операція“ ми розуміємо будь-який процес, який змінює взаємовідношення двох або більше речей, яке б це взаємовідношення не було». Ада зазначала, що комп’ютерна операція може змінити відношення не лише між числами, але й між будь-якими логічно пов’язаними символами. «Вона може впливати на інші речі крім чисел; аби це були об’єкти, фундаментальні взаємовідношення між якими можна виразити відношеннями абстрактної науки операцій». Теоретично аналітична машина могла б виконувати операції навіть над нотними записами: «Припустимо, наприклад, що фундаментальні відношення звуків певної висоти у науці гармонії та творення музики підлягають такому вираженню та адаптаціям; тоді наша машина зможе писати гарно продумані та наукові музичні твори довільного ступеня складності». Це був вінець Адиної концепції «поетичної науки»: гарно продуманий та науковий музичний твір, написаний машиною! Її батько здригнувся б.
Цей здогад стане ключовою концепцією цифрової епохи: будь-який фрагмент контенту, даних чи інформації — музика, текст, малюнки, числа, символи, звуки, відео — може бути виражений у цифровій формі та використаний машинами. Навіть Беббідж не зміг побачити цього; він зосередився на числах. Але Ада зрозуміла, що цифри на шестернях можуть символізувати не лише математичні кількості. Отже, вона здійснила концептуальний стрибок від машин, що були лише обчислювачами, до машин, які ми з вами зараз називаємо комп’ютерами.
Дорон Суейд, комп’ютерний історик, який спеціалізується на вивченні машин Беббіджа, проголосив це одним із історичних Адиних спадків. «Якщо переглядати та просіювати історію в пошуках такого переходу, то явно його зробила Ада у тій статті 1843 року», — писав він.
Третім Адиним внеском, в останній «Примітці G», був детальний покроковий розбір внутрішнього механізму того, що ми нині називаємо комп’ютерною програмою або алгоритмом. Як приклад вона використала програму обчислення чисел Бернуллі — невимовно складної нескінченної послідовності, яка у різних іпостасях відіграє важливу роль у теорії чисел.
Для демонстрації того, як аналітична машина може генерувати числа Бернуллі, Ада описала послідовність операцій, а потім намалювала діаграму, що показувала, як кожна з них має бути занесена в машину. Також вона допомогла розробити концепції підпрограми (послідовності інструкцій, яка виконує певну задачу на кшталт обчислення косинуса чи складних відсотків і може бути за потреби включена до складу більших програм) та рекурсивного циклу (послідовності інструкцій, яка повторює саму себе).
Вони стали можливими завдяки перфокартковому механізму. Ада пояснювала, що генерація кожного числа потребувала сімдесят п’ять карток, після чого процес ставав ітеративним, оскільки отримане число подавалося на вхід процесу генерації наступного. «Очевидно, що ті самі сімдесят п’ять різноманітних карток можна використати повторно для обчислення кожного наступного числа», — писала вона. Вона передбачила бібліотеку часто використовуваних підпрограм — те, що століття потому буде створено її інтелектуальними спадкоємцями, серед яких будуть і жінки на кшталт Ґрейс Гоппер з Гарварду та Кей Макналті й Джин Дженнінгз із Пенсильванського університету. Також завдяки тому, що машина Беббіджа дозволяла залежно від обчислених проміжних результатів перестрибувати туди-сюди по послідовності карток із інструкціями, вона заклала основи того, що ми нині називаємо умовним розгалуженням — переходом на іншу послідовність інструкцій за певних умов.
Беббідж допоміг Аді з обчисленням чисел Бернуллі, проте листи доводять її глибоку заглибленість у деталі. «Я затято рвуся та докопуюся до самої суті усіх методів визначення чисел Бернуллі, — писала вона в липні, лише за кілька тижнів до того, як її переклад та нотатки мали надійти до типографії. — Страшно подумати, але я так загрузла в цьому вражаючому болоті та клопотах із цими числами, що за сьогодні я з цим точно не впораюся… Я в чарівному стані потьмарення».
Впоравшись із цим, Ада зробила доповнення від себе: таблицю та діаграму, що показували, як саме алгоритм вводитиметься у комп’ютер, крок за кроком, включаючи два рекурсивні цикли. Це був нумерований список кодованих інструкцій, які включали в себе цільові регістри, операції та коментар — те, що здасться дуже знайомим будь-якому сучасному С++-програмісту. «Я невпинно та дуже успішно працювала весь день, — писала вона Беббіджу. — Упевнена, вам дуже сподобаються таблиця та діаграма. Вони складені дуже ретельно». З усіх листів чітко видно, що вона складала таблицю самостійно; єдиним помічником був її чоловік, який не розумів математики, але зголосився методично обвести чорнилами те, що вона намалювала олівцем. «Лорд Л. саме люб’язно прокреслює усе чорнилами для мене, — писала вона Беббіджу. — Я була змушена робити усе олівцем».
Саме за цю діаграму, що супроводжувала складні процеси генерування чисел Бернуллі, Адині фанати нагородили її званням «першого комп’ютерного програміста у світі». Його не так просто відстояти. На той час Беббідж уже розробив, принаймні теоретично, понад двадцять пояснень процесів, які зрештою мала виконувати його машина. Але жодне з них не було опубліковане і не містило чіткого опису способу впорядкування операцій. Отже, є підстави стверджувати, що алгоритм та детальний опис програми для генерування чисел Бернуллі був найпершою опублікованою комп’ютерною програмою. І ініціали у підписі в кінці належали Аді Лавлейс.
У своїх «Примітках» вона ввела ще одну важливу концепцію, яка змушує згадати оповідь про Франкенштейна, написану Мері Шеллі після того уїк-енду з лордом Байроном. Вона порушила те, що досі лишається найзахопливішою метафізичною темою, яка стосується комп’ютерів, а саме тему штучного інтелекту: чи можуть машини мислити?
Ада була переконана, що не можуть. Вона стверджувала, що машина на кшталт створеної Беббіджем може виконувати операції згідно з інструкціями, але не зможе виробити власні ідеї чи наміри. «Аналітична машина аж ніяк не претендує на створення чогось, — писала вона у „Примітках“». — Вона може робити усе, що ми знаємо, як наказати їй зробити. Вона може діяти згідно з аналізом, але не здатна передбачити жодних аналітичних відношень чи істин».
Століття потому піонер комп’ютерної техніки Алан Тюрінг охрестить це твердження «запереченням леді Лавлейс».