Це переклад доповіді з голландської TED Talks, прочитаної Гвідо Ван Россумом, «» великодушним довічним диктатором «» мови програмування Python. Багато автобіографії і трохи про значення мов програмування і основну ідею Python.
Дозвольте представитися - я нерд, гік. І я постійно зволікаю. Я закінчив університет у 26, мені було 45, коли я одружився, зараз мені 60, і у мене чотирнадцятирічний син. Може, мені просто важко даються рішення: я прожив у США більше 20 років, але все ще маю дозвіл на проживання.
Я не Стів Джобс чи Марк Цукерберг. Але у віці 35 років я створив мову програмування, яку знайшов своїх послідовників. Те, що сталося після цього, неймовірно. Але про це пізніше.
У 10 років батьки подарували мені освітній набір електроніки, випущений Philips, і він був крутий. По початку я просто слідував інструкціям, і все працювало. Пізніше я почав пробувати створювати власні ланцюги: в наборі було цілих три транзистори!
Я взяв одну з моїх моделей, миготливу лампочку, в школу. Але в моєму п'ятому класі всім було все одно, ніхто не усвідомив важливості цієї конструкції. Я думаю, тоді я вперше зрозумів, що я гік: до цього я просто був розумним тихонею.
У старшій школі я все більше ставав нердом - я тусувався з кількома дітьми, які також цікавилися електронікою, і на уроках фізики ми сиділи ззаду і обговорювали штрих Шеффера, поки всі інші розбиралися з законом Ома.
На щастя, наш вчитель фізики помітив нас, і зайняв створенням цифрового таймера, який він використовував для пояснення законів гравітації решті класу. Це був чудовий проект, який показав, що наші вміння корисні. Інші діти все ще вважали нас дивними: у сімдесятих багато хто був бунтарями або курителями «» дудки «»; решта вже готувалися до успішної кар'єри лікарів, або адвокатів, або менеджерів. Але вони мене не чіпали, я не чіпав їх теж, і в підсумку випустився одним з кращих учнів.
Після старшої школи я вступив до Амстердамського університету: він був близько від дому, і для підлітка, який виріс у Нідерландах у сімдесятих, Амстердам був єдиним крутим містом (так, студентські протести 1968-го злегка мене зачепили). На превеликий подив мого шкільного вчителя фізики я вибрав математику, але, озираючись назад, я не думаю, що була якась різниця.
У підвалі наукового корпусу був мейнфрейм, і я полюбив його з першого погляду. Карткові перфоратори! Прострочені принтери! Пакетна обробка! Я швидко навчився програмувати мовами на кшталт Алгола, Фортрана і Паскаля. Зараз ці назви майже забуті, але вони мали великий вплив тоді. Незабаром я знову сидів у кінці аудиторії, ігноруючи лекції і виправляючи свої комп'ютерні програми. А чому?
У підвалі, навколо мейнфрейму, творилося щось неймовірне. Там була згуртована група студентів і співробітників зі схожими інтересами, яка обмінювалася трюками і секретами. Ми ділилися процедурами і програмами. Ми об'єднувалися в альянси проти обслуговуючого персоналу мейнфрейму, особливо в іграх у кішки-мишки за вільний дисковий простір (вільне місце на диску було дійсно священним тоді).
Але головний урок, який я засвоїв, був про обмін знаннями: хоча більшість трюків, які я вивчив тоді, померли разом з ерою великих комп'ютерів, ідея про ПЗ, яким необхідно ділитися, жива як ніколи. Зараз ми називаємо це «open source», і це цілий рух. Відзначте це!
Група розробників ОС мейнфрейму набирала кількох студентів. Вони розмістили вакансію, я відгукнувся, і отримав роботу. Це була подія, що змінила життя! Раптово у мене з'явився повний доступ до мейнфрейму (без воєн за вільне місце або термінали) і доступ до вихідників його операційної системи, а так само купа колег, які пояснили мені, як все це працює.
У мене була робота мрії: програмувати цілий день, зі справжніми замовниками - іншими програмістами і користувачами машини. Моя наука застопорилася, і я майже кинув коледж, але мене витягнули мій менеджер і професор, який не відмовився від мене. Вони підштовхнули мене до завершення декількох курсів, і зрештою, з великим запізненням, я став випускником.
Я негайно перейшов на нову роботу мрії, яка була закрита для мене без диплома. Я ніколи не втрачав інтерес до мов програмування, і з метою вивчення вступив у команду, яка розробляла нову мову програмування - таке не щодня побачиш. Дизайнери сподівалися, що їхню мову захопить світ і замінить Basic.
Були вісімдесяті, і Бейсік був вибором для нового покоління програмістів-аматорів, які писали під мікрокомп'ютери на кшталт Apple II і Commodore 64. Наша команда вважала Бейсік шкідником, якого слід позбутися. Наша нова мова, ABC, мала «викорінити Basic» - така у нас була девіз.
Але на жаль, з маркетингом (або термінами) у нас все було не дуже добре, і після чотирьох років ABC був занедбаний. Відтоді я вбив багато годин, намагаючись зрозуміти чому проект провалився, хоча і був у потрібному місці в потрібний час. За винятком того, що мова була злегка надлишковою, я прийшов до висновку, що ABC помер просто тому, що тоді не було інтернету. Не було зворотного зв "язку між творцями мови та її користувачами. Дизайн ABC спочатку був дорогий з одностороннім рухом.
Через п'ять років, коли я копався в останках ABC в пошуках ідей для моєї власної мови програмування, я вирішив усунути брак зворотного зв'язку. Моїм девізом став «випускай рано, випускай часто» (як у чиказьких демократів - «голосуй рано, голосуй часто»). І інтернет, маленький і повільний в 1990, дозволив це зробити.
Якщо подивитися на 30 років тому, то інтернет і Open Source (a.k.a Free Software) дійсно багато чого поміняли. Ну і звичайно ж закон Мура, згідно з яким комп'ютери ставали все швидше з року в рік. У сукупності все це змінило взаємодію між творцями і користувачами комп'ютерного ПЗ. Я вважаю, що ці події (і те, як я їх використовував) привнесли більше в успіх «моєї» мови програмування, ніж мій досвід і навички програмування.
Також не зашкодило те, що я назвав свою мову Python - трохи мимовільного маркетингового генія з мого боку. Я назвав його так на честь комедійного шоу Monty Python's Flying Circus, і в 1990-му це не спричинило ніяких наслідків. Сьогодні, я впевнений, купа фірм з дослідження брендів були б щасливі виписати великий штраф за те, які складні асоціації така назва може викликати в підсвідомості клієнта. Але я був просто легковажним.
Я обіцяв не завантажувати вас технічною промовою на тему достоїнств різних мов програмування. Але я хочу сказати кілька речей про те, що мови програмування значать для людей, які їх використовують - для програмістів. Якщо попросити програміста пояснити простій людині що таке мова програмування, він відповість, що це спосіб змусити комп'ютер робити те, що тобі потрібно. Але якщо це все, чому програмісти так яро обговорюють мови між собою?
В реальності, мови програмування визначають те, як програмісти висловлюють свої ідеї і обмінюються ними. Причина: комп'ютер обробить все, що завгодно, а ось програмісти працюють з іншими програмістами, і погано передана ідея може стати причиною дорогого провалу. Фактично, ідеї виражені в мові програмування часто досягають кінцевих користувачів програми.
Подумайте про неймовірний успіх компаній на кшталт Google або Facebook. У їхньому корені лежать ідеї - ідеї щодо того, що комп'ютери можуть зробити для людей. Щоб бути ефективною, ідея повинна бути виражена в комп'ютерній програмі з використанням мови програмування. І мова, яка дозволить найкраще висловити ідею, дасть команді ключову перевагу, тому що дає членам команди - людям! - ясність ідеї. Ідеї в надрах Google і Facebook настільки різні, наскільки можливо, і насправді обрані цими компаніями мови програмування знаходяться на протилежних кінцях спектру дизайну мов програмування.
True story: перша версія Google була написана на Python. Причина: Python був правильною мовою для вираження оригінальних ідей Ларрі Пейджа і Сергія Бріна про індексацію веба і організацію результатів пошуку. І вони змогли реалізувати свої ідеї на комп'ютері!
Отже, в 1990-му, задовго до Google і Facebook, я створив власну мову програмування, і назвав її Python. Але в чому його ідея? Чому він настільки успішний? Чим він відрізняється від інших мов програмування? (Чому ви всі на мене так дивитеся?:-)
У мене багато відповідей, деякі технічні, деякі з мого багаторічного досвіду і навичок, деякі просто на кшталт «був у потрібний час в потрібному місці». Але я вірю що головна ідея - це те, що мова розроблялася в інтернеті, спочатку відкрито, спільнотою волонтерів (але не любителів!), які пристрасно прив'язані до неї.
І це якраз те, про що раніше була мова в частині про підвал наукового корпусу.
Сюрприз: як і у будь-якої хорошої мотиваційної промови, мета цієї доповіді - це радість!
Я найбільше щасливий коли відчуваю себе частиною спільноти. Мені пощастило, що я можу відчувати це і в щоденній роботі (я провідний інженер в Dropbox). І якщо я не можу відчувати це почуття, я перестану відчувати себе живим. Це почуття заразне, і тому члени нашої спільноти є в усьому світі.
Спільнота користувачів Python - це мільйони людей, які свідомо використовують його, і їм це подобається. Багато хто активно бере участь в організації конференцій - PyCon - в таких віддалених місцях як Намібія, Ірак і навіть Огайо!
Моя улюблена історія: рік тому я провів 20 хвилин на відеоконференції з класом, повним викладачів і співробітників Babylon University в Іраку, відповідаючи на їхні запитання по Python. Завдяки зусиллям сміливої жінки, яка погранізувала такий захід навіть в охопленій війною країні, студенти у Вавилонському унівеситеті в даний час вивчають введення в програмування з використанням Python. У своїх найсміливіших мріях я ніколи не очікував, що буду впливати на життя настільки далекі і такі, що сильно відрізняються від моєї.
І на цій ноті я вас покидаю: мова програмування, створена спільнотою, сприяє щастю своїх користувачів. Наступного року я, можливо, поїду на кубинський PyCon!
