19 апреля 2016 в 06:25

День рождения Ершова

«Элитарность программистов представляется мне очевидной и в этом представлении является интереснейшим вызовом человечеству в целом.»
— Андрей Петрович Ершов



«Суть проблемы в том, чтобы признать, что программирование требует от человека несколько особого взгляда на мир, его потребности и эволюцию, особой моральной подготовленности к своему долгу. Программист — это солдат технической революции и как таковой должен обладать революционным мышлением.»
— А. П. Ершов

Дональд Кнут вспоминал: «Это началось еще когда я был студентом последнего курса. Тогда только появилась книга Андрея «Программирование для БЭСМ», и мы, группа студентов, смогли убедить преподавателя русского языка включить её в курс в качестве одного из двух сборников текстов для изучения научной лексики».

Ершов потом водил дружбу с Кнутом и Сеймуром Пейпертом, разработал Русский алгоритмический язык, который народ за глаза называл «Ершол». В 1985 создал серию обучающих телепередач для обучения программированию школьников (советский MOOC), через год свозил группу школьников-программистов в Америку, а еще через год принял в Новосибе ответную делегацию американских школьников-программистов. (Кстати, если вы знаете участников этих событий — отпишитесь в комментах или в личку.)

Сегодня, вместе с компанией Edison, предлагаем всем отметить день рождения Андрея Петровича. Заслуги и вклад Ершова в советское (и мировое) программирование описаны в Википедии, мне же захотелось заглянуть чуть глубже и поискать фоточки первоисточники. Пару часов покопался в архиве. Нашел кое-что интересное. Под катом — много картинок и две фундаментальные науч-поп статьи Ершова про важность программирования.

А это Ершов и МакКарти если что:
image



image
А.П. Ершов и Д. Кнут (США) — организаторы Международного симпозиума «Алгоритм в современной математике и ее приложениях».

image
1953, А. П. Ершов. За пультом БЭСМ-2. Москва.

image
1985, А. П. Ершов. Телевизионные уроки программирования для школьников.

image
1987, А. П. Ершов с Джоном МакКарти в Летней Школе юных программистов. Новосибирск.

Телеуроки
image
«Учиться делать учебные передачи по информатике для телевидения оказалось делом новым для всех. «Правда, ощущение неизведанности способствовало быстрому сплочению нашего небольшого творческого коллектива… Дополнительной проблемой оказалась противоречивость требований к организации, постановке и съемке 30-минутных уроков. Трудно сказать, в какой мере эти противоречия удалось примирить друг с другом, но после длительных споров и обсуждений сложился некоторый продуктивный подход...»

image
1985 г. Телевизионная запись урока основ информатики для учащихся средней школы.

image
1985 г. Телевизионные уроки программирования для школьников.


«BusinessWeek» с интервью А.П. Ершова. 11.11.1985 (источник)

image
Октябрь, 1986 г. Рестон, США. А. П. Ершов с советскими и американскими школьниками.


07.11.1986. Пикник в парке города Сан-Франциско.

image
Экскурсия по Вашингтону

image
«Сердца и компьютеры» в «Учительской газете» с рассказом А.П. Ершова о путешествии в США. 11.12.1986





image
1987 г. Ответный визит американских школьников. Академгородок.

image
Cентябрь, 1987 г. Ответный визит американских школьников. Академгородок, парк. Церемония посадки кедров.


1987 А. П. Ершов и Дж. МакКарти в турцентре «Сибиряк» во время ЛШЮП-87.

Программирование — вторая грамотность




«Решив так назвать свое выступление, я сознаю, что это — метафора, которая многим покажется рискованной. По одну сторону нашего уравнения — экзотическая, хотя уже и весьма массовая профессия, требующая способности и длинного обучения, а по другую — общее достояние, фундаментальнейшее свойство современного человека.

Тем не менее, я постараюсь продемонстрировать поучительность и плодотворность этой метафоры. Не желая ни убивать читателя длинными силлогизмами, ни поражать его фокусами, объясню заранее схему раскрытия основного положения.

Во-первых, нам будет легче сравнивать программирование с грамотностью, если мы вспомним, что грамотность — это историческая категория, имеющая свое предначало, возникновение и развитие. СССР — страна практически сплошной грамотности: уже 10 лет назад грамотные в ней составляли 99,7 % общего числа населения в возрасте от 9 лет и старше. 100 лет назад этот процент был чуть выше 20 %. Еще сейчас на Земле насчитывается порядка 800 млн. неграмотных.

Во-вторых, как в основе грамотности, так и в основе программирования лежит техническое изобретение: печатный станок и ЭВМ соответственно. Если развитие и распространение книгопечатания привело к всеобщей грамотности, то развитие и распространение ЭВМ приведет ко всеобщему умению программировать.»
(Читать полностью тут.)

«О человеческом и эстетическом факторах в программировании»


Из журнала «Кибернетика», № 5 за 1972 год.

«Во время пребывания в 1970 г. в Соединенных Штатах на автора произвели очень большое впечатление новые идеи профессоров Массачусетского технологического института Марвина Минского и Сеймура Пейперта об обучении детей. Они выбросили в корзину ходячее представление о том, что дети учатся бессознательно методом подражания. Они доказывают, что человек чему-то научается только в том случае, если у него в голове складывается блок-схема действия, выделены подпрограммы и проложены информационные связи. Профессор Пейперт навсегда обратил автора в свою веру на примере жонглирования двумя мячами, когда, апеллируя к его способностям программиста, он за десять минут научил его тому, чего бы он сам не сделал и за несколько часов.
[...]
Поколения людей меняются значительно медленнее, чем поколения машин. Автор хотел бы спросить у своих коллег-руководителей, знают ли они, как сделать, чтобы программист в возрасте свыше 50 лет был бы не меньше полезен, нежели 30-летний. Через 30 лет таких программистов в мире будет миллион. Пожалуй, честно будет сказать, что сейчас у нас еще нет надлежащего подхода к тому, как ассимилировать ветеранов в современных условиях изменчивости и нестабильности, сделав тем самым профессию программиста пожизненной и дающей человеку комфортабельное ощущение общественной и профессиональной полезности.»

Полный текст статьи
Памяти Г. И. Кожухина

Кому-нибудь может показаться странным намерение опубликовать в научном журнале статью по столь субъективному вопросу. История науки, однако, показывает, что в определенные периоды эстетические, организационные и вообще внешние по отношению к техническому содержанию научной дисциплины факторы вносили иногда решающий вклад в формирование и развитие данной дисциплины. Сейчас, когда программирование как наука и как профессия вступает в период своего самоопределения, анализ человеческих факторов в программировании представляется автору актуальным.

Дело в том, что, несмотря на то, а может быть, и благодаря тому, что программирование признается сейчас ключевым моментом в расширении и углублении сферы применения ЭВМ, для программистов наступают трудные времена. Объем и сложность программ возрастают непропорционально по отношению к зарплате. Романтический ореол непостижимости этой профессии, если он когда-либо и существовал, начинает меркнуть. На Западе софтверхаусы тают как вчерашний снег, а программисты начинают пополнять армию безработных. Оспаривается даже само стремление рассматривать программистов как профессионалов особого рода. Главное же — это то, что вольная армия программистов постепенно попадает в «плен» к администраторам и руководителям, которые стремятся сделать труд программиста планируемым, измеряемым, однородным и обезличенным.

У читателя не должно создаться впечатления, что автор считает эту тенденцию неправильной. Недостаточная эффективность труда программистов является, может быть, главной причиной существующего разрыва между потребностями и возможностями успешного применения ЭВМ.

С этих позиций следует согласиться, что как профессия программирование еще не достигло своей зрелости. На Западе характерным свидетельством этому в течение последних лет была волна мелкого бизнеса, связанного с так называемыми софтвер-домами. Такой софтвер-дом, или лучше сказать софтвер-хижина, сооружался в течение нескольких недель группой толковых программистов, как правило, покидавших большую организацию, в которой они получили начальный опыт. В большинстве случаев мотивом для такой инициативы была жажда наживы, полудетское желание избавиться от излишней опеки, конечно, в сочетании с некоторой интересной и полезной идеей в области разработки софтвера. Однако в дальнейшем жизнеспособными оказались лишь такие коллективы, в которых этот партизанский дух быстро заменялся режимом экономии, иерархией отношений, жесткой дисциплиной — словом, всем тем, что в свое время вытолкнуло их из родительского дома. В качестве шутки можно заметить, что вся эта история напоминает сказку о трех поросятах: братья-программисты в конце концов собрались в крепком софтвер-хаусе, но лишь после того, как первые два были унесены волчьим ветром беспощадной коммерции.

Следует отметить, что, хотя и в других проявлениях, но аналогичные явления наблюдались и у нас, когда несколько лет назад бездумный оптимизм и наивная вера во всемогущество машины в некоторых проектах заменяли собой трезвый расчет, крепкую организацию и качественное составление программ. Таким образом, подчинение программирования промышленным методам работы — это неизбежный факт. Автор считает, однако, что эта тенденция должна быть сбалансирована встречной инициативой, состоящей в том, что программист должен найти некоторую систему внутренних ценностей в своем деле, обладание которой позволит ему легче ассимилировать индустриальные методы работы, где надо — преодолевать их.

Автор убежден в том, что эта система ценностей в программировании объективно существует, однако осознана не до конца, известна не всем и поэтому требует распространения и защиты. Эта система имеет много компонент, пожалуй, самая важная из них — это профессиональный статут программиста (надо заметить, что о программистах автор здесь говорит в широком смысле, причисляя к ним и системных аналитиков), но в данный момент больше хочется сказать об эстетической или об эмоциональной стороне программирования, причем не только о том, что вознаграждает программиста, когда он выходит со своим продуктом к потребителю, но и о том, что составляет его нравственную опору, когда он остается наедине с программой или машиной.

Программирование становится массовой профессией. Однако надо иметь в виду, что сейчас это, пожалуй, самая трудная из всех массовых профессий, причем, к сожалению, эта трудность не признана в должной мере.

Трудность заключается в том, что именно программисты непосредственно упираются в пределы человеческого познания в виде алгоритмически неразрешимых проблем и глубоких тайн работы головного мозга.

Трудность состоит в том, что собственный стек программиста должен быть не в 5-6 позиций глубины, как это обнаружили психологи у среднего человека, а той же глубины, что и стек в его очередной задаче, подлежащей программированию, плюс еще две-три позиции.
Трудность также и в том, что программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единицы. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста. А кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и многое другое.

В работе эта трудность может быть преодолена только путем большого эмоционального напряжения, требующего от программиста особого самосознания и внутренней позитивной установки. Понимание этой установки необходимо для тех, кто управляет программистами, и в особенности для тех, кто их воспитывает и обучает. В качестве примера можно перечислить некоторое количество организационных альтернатив или просто трудных вопросов, правильно разрешать которые можно только с полным учетом обсуждаемых факторов:
  • Возможна и нужна ли организация разработки софтвера по принципу конвейерной линии?
  • Кого и почему труднее найти для реализации софтверного проекта — руководителя или исполнителя?
  • Как сочетать элитарность системного программирования с его массовостью?
  • Как воспитывать программиста, через мировоззрение (университет) или путем профессиональных навыков (технический институт)?
  • Что такое индивидуальные способности в программировании, специфичны ли они и нужны ли?
  • Можно и нужно ли отделять проектирование большой программы от ее изготовления?

Эти вопросы являются частью общей проблемы, поэтому сделаем лишь частные комментарии при попытке связать их постановку с анализом человеческого фактора в программировании.

О конвейере

В каком-то смысле конвейер является дьявольским изобретением. Поднимая продуктивность на небывалый уровень, он в то же время в максимальной степени превращает человека в придаток машины. Конвейерный метод в программировании может либо убить интеллектуальную компоненту в труде программиста, либо вызывать неврозы из-за противоречия между монотонностью и трудностью работы. Представьте себе человека, обязанного 8 часов в день, 5 дней в неделю, 50 недель в году решать одни кроссворды, и вы поймете, что такое программист, специализирующийся, например, на написании редактирующих программ. Одним словом, раскрепление людей по элементарным операциям в многомодульной системе — далеко не простая задача.

О руководителях и исполнителях

Не торопитесь ставить руководителя на первое место, объясняя, что, по определению, руководителя найти или создать труднее. Давайте подумаем, почему сплошь да рядом руководитель проекта предпочитает начинать с молодыми специалистами, кончившими университет два–три года назад, нежели с людьми, чей стаж работы превышает пять лет? Не потому ли, что мы предпочитаем использовать чистый лист и пластичность молодого человека, нежели преодолевать пассивное сопротивление более зрелого и менее ясного для нас 33-летнего главы семейства. Но это, в частности, означает, что мы не умеем гармонично развивать профессиональные достоинства исполнителя так, чтобы они не падали с возрастом и были бы полезны не только для руководителя, но и для него самого и его будущих начальников.
Элитарность программистов представляется автору очевидной и в этом виде является серьезным вызовом человечеству в целом, причем можно надеяться, что вызов будет принят и преодолен. Эта мысль будет расшифрована несколько позднее.

Мировоззрение и профессионализм

Проблема, конечно, не только в том, чтобы объективно оценить требуемое соотношение кандидатов наук и дипломированных инженеров-программистов, хотя вокруг этого возникает изрядное количество всем известных кадровых проблем. Суть проблемы в том, чтобы признать, что программирование требует от человека несколько особого взгляда на мир, его потребности и эволюцию, особой моральной подготовленности к своему долгу. Программист — это солдат научно-технической революции и как таковой должен обладать революционным мышлением.
Теперь подходим к тому, чтобы сформулировать центральный тезис статьи. Он состоит в утверждении, что программирование обладает богатой, глубокой и своеобразной эстетикой, которая лежит в основе внутреннего отношения программиста к своей профессии, являясь источником интеллектуальной силы, ярких переживаний и глубокого удовлетворения. Корни этой эстетики лежат в творческой природе программирования, его трудности и общественной значимости.

Здесь, прежде чем продолжить основную мысль, автор хотел бы подчеркнуть важность внутреннего отношения человека к своему делу. Сейчас идет много споров о том, является ли программирование специфической профессией. Это не отвлеченный спор, а дискуссия, результат которой имеет прямые организационные, юридические и образовательные последствия. Главным залогом успешного исхода этой дискуссии должны быть прежде всего самосознание и способность к взаимопониманию тех, кто относит себя к программистам. Известная пословица «рыбак рыбака видит издалека» должна найти свою интерпретацию в программистской среде.

Выделить эстетическую сущность любого вида профессиональной деятельности очень не просто. Она по своей сути реализуется в субъективных категориях и глубоко сплетается с этическим кодексом профессии, с ее техническим содержанием и юридическим статутом. Поэтому перечисление эстетических компонент программирования в этой статье также будет носить субъективный и очень предварительный характер.
Сначала сделаем некоторые замечания, отражающие внутреннюю природу программирования.

Творческая и конструктивная природа программирования не требует особых доказательств. Автор хотел бы высказать, быть может, более спорную мысль, что в своей творческой природе программирование идет намного дальше большинства других профессий, приближаясь к математике и писательскому делу. В большинстве других профессий мы лишь «приручаем» при помощи сил природы те или иные физические или биологические явления, не обязательно постигая их сущность. В программировании же мы в некотором смысле идем до конца. Один из тезисов современной теории познания: «мы знаем что-то, если можем это запрограммировать» — очень выпукло характеризует этот максимализм нашей профессии.

Другим очень важным эстетическим принципом программирования является его высочайшая требовательность к законченности продукта. Конечно, это характерно для многих инженерных профессий. Однако программирование и здесь идет дальше. Хотя в мультимиллионных программных конгломератах это свойство почти исчезает, однако на уровне индивидуальной работы всегда существует поразительный контраст между почти сделанной и полностью сделанной работой. Эта стопроцентность программирования — источник его трудности и в то же время глубочайшего удовлетворения работающей программой.

Машина, снабженная программой, ведет себя разумно. В этот кульминационный момент программист сознает, что его программа, получая самостоятельную жизнь, материально воплощает его интеллектуальные усилия, становящиеся отныне общим достоянием. Это торжество интеллекта, наверное, самая сильная и самая специфическая сторона программирования.

В отношении к машине у добросовестного программиста есть еще одна особенность. В некотором смысле он относится к ней, как хороший жокей к своей лошади. Зная и хорошо понимая возможности машины, он никогда не позволит себе компенсировать леность ума беззаботной тратой ресурсов ЭВМ. Это чисто эстетическое отношение к делу является самым эффективным предохранителем против бездумной «пессимизации» софтвера, которая иногда сводит на нет эффективность использования машины.

Другую часть эстетической сущности программирования составляют такие его компоненты, которые связаны с социальной, или общественной, функцией программирования. Всякий раз, когда мы рассматриваем социальное явление большого масштаба (а появление и использование ЭВМ, безусловно, являются таковыми), мы должны поискать некоторые широкие исторические аналогии, которые могут дать какую-то опору для экстраполяции и предвидения. О том, что ЭВМ принесли с собой научно-техническую революцию и связанную с ней индустриализацию умственного труда, уже говорилось. В этом месте хотелось бы провести еще одну аналогию, которая имеет более прямое отношение к профессии программиста. Разработка и распространение софтвера во многом напоминают то, что произошло в результате появления книгопечатания. Как книги накапливают внешний образ мира в глазах их авторов и позволяют воспроизвести процесс его познания, так и программы и банки данных накапливают информационную и операционную модели мира и позволяют не только воспроизводить, но и предсказывать его эволюцию, давая тем самым небывалую власть над природой.

Быть сейчас хорошим программистом — это такая же привилегия, как быть грамотным человеком в XIV веке. Эта привилегия дает право программисту ожидать аналогичного признания и уважения со стороны общества. К сожалению, эти ожидания не всегда оправдываются. Следует, однако, заметить, что осуществление такого признания требует работы с обеих сторон. В частности, для программиста необходимо следование одному этическому принципу, который носит общий характер для всякого профессионала, но имеет специальную интерпретацию для программиста. Несколько упрощенно имеют место три варианта: работа ради работы, работа ради денег, работа ради цели.
В системе координат программиста первые два мотива стоят на первом плане, хотя в абсолютной системе координат имеет значение лишь третье. В связи с этим надо всегда помнить, что программист сможет достичь полной гармонии с обществом только в том случае, если лояльность той цели, в достижении которой его программа является лишь частью, станет его внутренней установкой.

Говоря об общественной функции программирования, нельзя не заметить, что на пути к реализации этой функции лежит одна нерешенная техническая проблема — обеспечение аккумулятивного эффекта программирования. Это очень сложная, но абсолютно необходимая для решения проблема. Спектр мнений о ней бесконечен. Одни говорят, что сейчас работают только считанные проценты составленных программ, другие считают, что ОС/360 — это уже практически бессмертный комплекс программ. Возвращаясь к теме статьи, хочется сказать, что предоставление программисту перспективы длительного и стабильного использования продукта его труда окажет решающее воздействие на его профессиональное самосознание.

Автор хотел бы теперь с позиций только что сделанных утверждений завершить обсуждение ранее перечисленных альтернатив и трудных проблем.

Об индивидуальных способностях в программировании

Нам необходим образ идеального программиста. Конечно, это будет мифическая личность. Но кто сказал, что нам не нужны мифы и сказки о программистах? Каждый из нас должен хоть раз в жизни видеть или хотя бы слышать о чудо-программисте, из программы которого нельзя убрать ни одной команды или который пишет тысячу команд в день, или обнаруживает ошибку при исходном шансе один к миллиону и т. д. Человеку свойственно искать ориентиры и примеры. Именно с этих позиций, по-видимому, следует решать спор о пресловутых «примадоннах» в командах программистов. Объявлять их нежелательными — это, по крайней мере, близорукость или зависть к их исключительным качествам. Автору посчастливилось в жизни встретить несколько таких примадонн от программирования, которые при всей их индивидуальности и даже экстравагантности вносили неоценимый вклад в работу группы, в особенности в трудных ситуациях. Так что надо признавать и полностью учитывать весьма широкий диапазон индивидуальных способностей к программированию.

О разделении проектирования и изготовления софтвера

Налицо двойственное отношение к этому вопросу. Руководители, ответственные за долговременные проекты, и многие другие ищут пути к формализации этапов разработки и передаче проекта из одних рук в другие. С другой стороны, само дело отчаянно сопротивляется такому разделению. По-видимому, правильное решение этого вопроса невозможно без учета человеческого фактора и эстетической потребности, препятствующей тому, чтобы заниматься реализацией чужих идей или не видеть самому овеществления своей идеи. Отдавать технический проект в другие руки — то же самое, что посылать своих детей в интернат.

В заключение вернемся к тезису об элитарности программирования и о его будущем. Наша апологетика, на первый взгляд, подчеркивала исключительный, особый характер программирования и его предельные требования к человеческим возможностям. Эта требовательность и образует тот самый вызов человеку, о котором говорилось выше. Во время пребывания в 1970 г. в Соединенных Штатах на автора произвели очень большое впечатление новые идеи профессоров Массачусетского технологического института Марвина Минского и Сеймура Пейперта об обучении детей. Они выбросили в корзину ходячее представление о том, что дети учатся бессознательно методом подражания. Они доказывают, что человек чему-то научается только в том случае, если у него в голове складывается блок-схема действия, выделены подпрограммы и проложены информационные связи. Профессор Пейперт навсегда обратил автора в свою веру на примере жонглирования двумя мячами, когда, апеллируя к его способностям программиста, он за десять минут научил его тому, чего бы он сам не сделал и за несколько часов.
Таким образом, человек неизмеримо усилит интеллект, если сделает частью своей натуры способность планировать свои действия, вырабатывать общие правила и способ их применения к конкретной ситуации, организовывать эти правила в осознанную и выразимую структуру,— одним словом, сделается программистом.

Когда-то возможность читать и писать считалась уделом избранных. Сейчас, в эпоху грамотности, на что потребовалось 1000 лет, мы выделяем новую избранную категорию людей, которые становятся посредниками между человечеством и информационной моделью мира, упрятанной в машины. Сделав искусство программирования общим достоянием, мы лишимся своей элитарной исключительности перед лицом повзрослевшего человечества. Это ли не высший эстетический идеал для нашей профессии?

Для того, чтобы осуществить такой скачок, человечеству понадобится много меньше чем 1000 лет, однако сейчас мы еще очень далеки от этого. Нас окружают более прозаические проблемы, требующие немедленных действий. Однако внутренний мир каждого человека, в том числе и скромного эм-эн-эса или инженера, читающего толстое руководство по программированию или ищущего нужную клавишу за терминалом, хранит в себе неисчерпаемую глубину мыслей, желаний и переживаний. Автор глубоко убежден, что дело, которым занимается программист, требует и от его коллег, и тем более от его руководителей существенно большего понимания мотивов к выполнению его профессионального долга и перспектив его жизненного пути.

Мы назвали ряд актуальных проблем, связанных с человеческим фактором в программировании. Пожалуй, самая главная не была названа. Поколения людей меняются значительно медленнее, чем поколения машин. Автор хотел бы спросить у своих коллег-руководителей, знают ли они, как сделать, чтобы программист в возрасте свыше 50 лет был бы не меньше полезен, нежели 30-летний. Через 30 лет таких программистов в мире будет миллион. Пожалуй, честно будет сказать, что сейчас у нас еще нет надлежащего подхода к тому, как ассимилировать ветеранов в современных условиях изменчивости и нестабильности, сделав тем самым профессию программиста пожизненной и дающей человеку комфортабельное ощущение общественной и профессиональной полезности.

[источник]



P. S.


image
Рабочая запись. Схема формы и способа существования материи, ее всеобщие атрибуты.

P.P.S


Задачка:
image



«Чем глубже мы заглянем в историю, тем лучше увидим будущее.»
– Уинстон Черчилль

Вместе с компанией Edison продолжаем весенний марафон публикаций.

Я постараюсь докопаться до первоисточников IT-технологий, разобраться, как мыслили и какие концепции были в головах у первопроходцев, о чем они мечтали, каким видели мир будущего. Для чего задумывались «компьютер», «сеть», «гипертекст», «усилители интеллекта», «система коллективного решения задач», какой смысл они вкладывали в эти понятия, какими инструментами хотели добиться результата.

Надеюсь, что эти материалы послужат вдохновением для тех, кто задается вопросом, как перейти «от Нуля к Единице» (создать что-то, чего раньше и в помине не было). Хочется, чтобы IT и «программирование» перестали быть просто «кодингом ради бабла», и напомнить, что они задумывались как рычаг, чтобы изменить методы ведения войны образование, способ совместной деятельности, мышления и коммуникации, как попытка решить мировые проблемы и ответить на вызовы, вставшие перед человечеством. Как-то так.

0 марта. Сеймур Пейперт
1 марта. Xerox Alto
2 марта «Позвоните Джейк». История NIC и RFC
3 марта Грэйс «бабуля COBOL» Хоппер
4 марта Маргарет Гамильтон: «Пацаны, я вас на Луну отправлю»
5 марта Хеди Ламарр. И в кино обнаженной сняться и во врага торпедой пульнуть
7 марта Великолепная шестерка: девушки, которые термоядерный взрыв рассчитывали
8 марта «Видеоигры, я ваш отец!»
9 марта С днём рождения, Джеф Раскин
14 марта Джозеф «Lick» Ликлайдер: «Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»
15 марта Вэнивар Буш: «Как мы можем мыслить» (As We May Think)
16 марта С днем рождения, Ричард Столлман
21 марта Дуглас Энгельбарт: «The Mother of All Demos». Часть 1
7 апреля Роберт Меткалф: папа EtherNet, отличный инженер и фиговый предсказатель (но за слова ответил)
Автор: @MagisterLudi
Edison
рейтинг 75,82
Изобретаем успех: софт и стартапы

Комментарии (48)

  • +16
    Читал, грустил…
    «то развитие и распространение ЭВМ приведет ко всеобщему умению программировать.» — так бы и было если не большое НО.
    Прости нас Юр… Андрей, мы всё просрали…
    • +7
      Прости нас Андрей, мы всё просрали


      Почему, собственно?

      «Всеобщее умение программировать» вовсе не обязательно означает «умение алгоритмически мыслить и кодить на языках программирования».

      И вообще, программирование не самоцель. Если управление различными компьютерами (куда относятся и куча встраиваемых деайсов), включая описание новых задач («программирование»), возможно через простые интерфейсы или даже на естественных языках, зачем нам вообще «всеобщее умение программировать» в том смысле, о котором вы (вероятно) сожалеете?

      Так что мы не только ничего не слили, но и развились намного дальше большинства прежних представлений об использовании ЭВМ. И окончания этого развития пока не ожидается :-)
    • +1
      >всеобщее распостанение бумаги приведет к всеобщему умению начертить чертеж реактивного двигателя
      Зачем обычному человеку умение програмировать? Неумение спроектировать часть автомобиля не мешает на нем ездить.
    • +1
      Не совсем так, сейчас программистов гораздо больше чем тогда. Думаю в данном контексте «всеобщее» подразумевает более узкий смысл. А не то что кухарка способна управлять государством :)
      • 0
        Как правильно подметил hdfan2, я думаю «всеобщее» в данном смысле указывает на доступность обучения программированию. Всеобщее среди желающих/способных. Ершов ведь пытался популяризировать, сделать доступной методику обучения программированию (как, например, видео уроки), что в то время было фантастикой.

        Поэтому, на мой взгляд, мы в какой-то степени реализовали его мечту. Сейчас научится программировать может имеет возможность каждый.
    • 0
      Капитализм — общество потребления.
      Ура, наконец мы все просрали, и у нас теперь вдоволь жевачки и джинсов.
    • +6
      О, просраливсеполимерщики подтянулись. Везде только плохое видят. Сейчас прекрасное время: хочешь — изучай программирование, не хочешь — просто пользуйся уже готовым. Вы просто не застали те, советские ещё времена, и не представляете, как тогда было тяжело интересующимся программированием. Достать хоть какой-то комп — нереально, даже получить к нему доступ на час в неделю — тот ещё квест. А сейчас? Одной средней зарплаты вполне хватит, чтобы уже начать что-то изучать, что-то писать. Так что не надо рассказывать, как сейчас всё плохо. Да, сейчас всё иначе, и программирование уже не наука и не магия (если не считать написание ОС и драйверов для железа), а скорее ремесло. Но зато оно куда как доступней, чем раньше. Кто хочет — тот делает, а кто не хочет, тот ноет. Извиняюсь, если излишне резко получилось.
    • +2
      А за что прощать? За то что человек был идеалистом и плохо представлял себе как работают головы у большинства людей? Предвижу массу минусов к этому комментарию, но прошу задуматься коллег: а чем бы вы занимались и какие были бы у вас зарплаты, если бы все вокруг умели программировать?
      • 0
        Все умеют писать, но не каждый писатель. Все умеют готовить еду, но не каждый работает поваром (а хорошие, кстати, зарабатывают приличные деньги).

        Вы пропустили цитату:
        По одну сторону нашего уравнения — экзотическая, хотя уже и весьма массовая профессия, требующая способности и длинного обучения, а по другую — общее достояние, фундаментальнейшее свойство современного человека.


        «Всеобщее умение программировать» воспринято слишком буквально.
      • 0
        Ну, это простая задачка. Как известно, все вокруг умеют учить, лечить и играть в футбол. Но на уровне зарплат соответствующих специалистов это не сказывается ни как ни в ту ни в другую сторону.
        • 0
          Извините, вы подменяете понятие «иметь мнение о том как надо правильно» и «уметь». Уметь в данном случае -это значит быть профессионалом, т.е. получать за свою деятельность деньги. Дворовым командам по футболу стали платить зарплату? Бабушкам, знающим все о ревматизме, кто-то заносит денег за консультации? Плюс к тому, программирование очень сильно отличается от многих других видов деятельности за счет возможности очень дешевого распространения результатов труда. Повара, врачи и футболисты так не могут) Наиболее близко к программированию с текущих условиях -это написание музыки. Ибо тоже требует получения специфических знаний и навыков, ну и таланта как без этого. Но если бы все вокруг умели писать музыку, то доходы звукозаписывающих компаний ушли бы в минуса. С программированием было бы похоже.
          • 0
            Ничуть. Ершов ничего не говорил о том, чтобы всех поголовно сделать именно профессиональными программистами. Все в школе изучают химию, но как это сказывется на зарплатах химиков? А ни как. Меня в школе научили умению работать на токарном станке. Как это сказывается на зарплатах профессиональных токарей? А ни как.
            Если про «учить и лечить» скорее призказка, то с футболом аналогия абсолютная. Футболисты очень даже умеют очень дёшево распространять результаты своего труда. Трансляции (и очень дорогие!) это обеспечивают куда лучше, чем магазины приложений.
          • 0
            «Повара, врачи и футболисты так не могут) „

            Да ладно.

            Так я скажу, что рецептов вкуснейших блюд, да еще и с видеообзорами, да еще и с передачами на первом — полно. Но не все повара, и есть даже взрослые особи, неспособны яичницу спалить.

            Народных рецептов, диагности, книг и материалов, да вообще все, плюс даже реальные консультации врачей онлайн и бесплатно — полно. Но хороших врачей — мало.

            Футбол — советчиков вся страна, а главная сборная играет в основном в копилку анекдотов.

            Тоже самое и про программистов — полным полно и документации и исходников и готового результата трудов, но пользуются этими результатами — единицы, а не все население. А любые более-менее серьезные сервисы — весьма недешево обходятся.
            • 0
              Вы понимаете разницу между результатом труда повара (яичницей) и результатом труда шоу-мена (передача или ролик на ютубе о том как приготовить яичницу)? Но вот едим мы в большинстве своем то что готовим дома сами, а не ходим рестораны (разве что в столовую на обед, и то из экономии времени и лени, а не от неумения готовить).
              Применительно к топик-старту, если бы люди действительно массово умели программировать, то программные продукты в массе своей представляли бы собой некий аналог Unix, с возможностью самостоятельно конфигурировать продукт, компилировать и пересобирать под свои задачи. А этого не происходит, потому что для того чтобы научиться это делать нужно потратить очень много времени и усилий, а скопировать результат труда программиста (за деньги или по-пиратски не суть) -можно нажатием кнопки.
              • 0
                То есть ваш пример — сравнить результат 5минутной яичницы и результат труда ролика, в котором будут задействованы сценаристы, спец по монтажу, какие-то пиарщики?

                Давайте сравним обзор сендвича из макдональдса от очередной 15-летней девочки, и результат шеф-повара, организовавшего ужин для обычного детского санатория (выбор продуктов, срока годности, качества, доставку, готовку на 300-400 человек, организацию персонала на кухне, чтобы все это приготовить и подать и избежать проблем с санэпидстанцией)?

                Люди массово умеют программировать стиральную машинку, многие самостоятельно настраивают wifi роутер, очень многие умеют программировать формулы в экселе.

                Вы говорите, что за деньги можно однй кнопкой получить результаты труда программиста. В кафе вы именно это и делаете — за деньги, даже не нажимая кнопку получаете результаты труда целой команды поваров.

                По-пиратски — так надо, чтобы сперва кто-то взломал, а потом уже можно одной кнопкой.

                Умение программировать массово, и умение программировать массово на высоком профессиональном уровне — разные вещи.

                P.S. Вообще мы немного в разные стороны тянем, так что спорить нет смысла.
    • +4
      Всеобщее умение програмировать это:
      программисты начинают пополнять армию безработных. Оспаривается даже само стремление рассматривать программистов как профессионалов особого рода © Ершов

      мечтаете о таком? Жалеете, что не так?
      Наверное, Вы — менеджер, мечтающий платить програмистам как набранным с улицы продавцам шаурмы.
      А Ершов судит об этом с точки зрения человека живущего при социализме, которому нет нужды думать о завтрашнем дне! И к тому же он судит с позиции советского ВУЗовского преподавателя, которому в радость видеть полные залы студентов, а найдут ли эти студенты потом работу и т.п., — его АБСОЛЮТНО НЕ ВОЛНУЕТ. Не было в советское время такой проблемы, чтобы выпускник ВУЗа оказался никому не нужен и не нашёл работы. А ситуация, когда программировать умеют абсолютно все, в реалиях капитализма приведёт именно к такой проблеме.
      • 0
        Как я уже отвечал выше, «всеобщее умение программировать» — воспринято «в лоб». Научить всех программированию и заставить программировать — утопия. И кстати, такое мог придумать только программист)

        Что касается безработицы — сейчас острая нехватка кадров, крупные компании беспрерывно ищут компетентных специалистов. Но, вероятно, когда-нибудь кризис с нехваткой кадров, закончится, но это тоже не плохо, это будет повышать требования к квалификации программистов. Тем более, мы уже сейчас можем замечать замедление роста производительности ЭВМ. То есть, развитие «железа» уже не такими широкими шагами шагает. А вместе с тем аудитория пользователей ЭВМ только увеличивается. Я к тому, что программирование, как профессия, вероятно столкнется с новыми трудностями что в итоге отразится на повышенные требования к квалификации.

        Проще говоря, выводов два:
        1. Хороший программист всегда найдёт работу.
        2. Научить всех программированию — утопия.
        • +1
          Во времена Ершова, программирование практически приравнивалось к использованию.
          Потому, что использование компьютера для решения каких-либо задач, в основном требовало сперва написание программы, которая эти задачи решает.
          Иногда — очень простой программы. Например, создать табличку с школьным расписанием в экселе, красиво оформить и напечатать 10 экземпляров — во времена Ершова вполне сошло бы за программирование.

          Сейчас — все и компьютерами и смартфонами и бытовыми приборами, которые как-то нужно «программировать».
  • +5
    «знают ли они, как сделать, чтобы программист в возрасте свыше 50 лет был бы не меньше полезен, нежели 30-летний.»

    Непонятна эта фраза, у 50-летнего программиста на 20 лет больше опыта. Даже при условии сегодняшнего мирового прогресса Технологий, человек в 50 лет действительно может не знать самых новых и крутых либ (может, и не надо кстати, некоторые типа node.js).

    Но +20 лет опыта это +20 лет опыта. Это опыт создания сложных систем, со всевозможными проблемами багами и прочим.

    Нам наверное пора отучаться думать что «лучшему программисту 30 лет» и пытаться удерживать в программировании чем дольше тем лучше, чтобы инженерный опыт накапливался. Такие дела.

    • +3
      Опыт имеет много негативных сторон, больше, чем вам кажется. Он устаревает, скатывается в конкретику, давит грузом, обманывает. Управление собственным опытом — это сегодня основополагающее умение для тех, «кому за 30», и, надо сказать, далеко не все могут (хотят?) его освоить.
      • 0
        Ещё, возможно, 50-летними дяденьками труднее управлять, чем 30-ми и тем более 20-летними. Хотя могу, конечно, ошибаться.
  • +9
    Являюсь преподавателем на ЛШЮП, так что кого-то из участников событий встречи американских школьников должен знать, нужно поспрашивать. Вам это для дела какого-то?

    Ну и на правах рекламы =) Если вы не в курсе о чем речь, Андрей Петрович в свои годы организовал Летнюю Школу Юных Программистов, и она продолжает свое существование по сегодняшний день (в этом году будет 41 школа). Суть школы в том, что мы забираем ваших детей на 2 недели куда-нибудь в лес (школы у нас проходят не в городе, а на базе какого-нибудь лагеря), и там усиленно учим их программировать. Упор мы делаем не на олимпиадное программирование (как у некоторых), а на реализацию каких-то проектов (их примеры вы можете посмотреть на сайте). Дети распределяются между проектами и кодят их.

    ps. мы всегда ищем спонсоров
    • 0
      У вас есть программа обучения для детей инвалидов и/или особенных детей?
      • 0
        такого у нас, к сожалению, нет.
  • 0
    Большое спасибо за подобный исторический экскурс в фотографиях и фактах. Родилась идея плаката для дома. =)
  • +1
    Вообще-то «Ершаль» мы его называли за явное сродство с Паскалем.
  • –1
    Я всегда считал, что современный уровень развития open source обусловлен в основном тем, что программисты старой школы вышли на пенсию. И им просто не удалось найти себе более интересное занятие, чем программирование. Раньше я думал, что это произошло неожиданно для всех. Но, оказывается, Ершов уже тогда предвидел, что через тридцать лет будет миллион программистов, которые ничем не будут заняты.
    • 0
      Open source — не значит, что этим занимаются миллионы программистов старой школы, которые ничем не заняты. Мало того, open source даже не значит «бесплатно».
      • 0
        Я знаю, что значит «open source». Речь не о том, что программисты старой школы, вышедшие на пенсию, его создали. Но именно они являются причиной столь бурного роста в последние годы.
        • 0
          Аргументы?
          • 0
            Совпадение двух феноменов по времени. Само по себе это ничего не значит, но очень хорошо согласуется с моим личным опытом. Я активно контрибьютил в open source, пока был студентом, и был не слишком занят. В дальнейшем кое-какую активность в этом направлении я проявлял в те периоды времени, когда нигде не работал. И я планирую активно заниматься этим, когда выйду на пенсию. Ну, и здравый смысл подсказывает мне, что мой опыт не уникален, а скорее является типовым.
  • +2
    Очень понравился в свое время заголовок выступления А.П. Ершова на одной из конференций (самый конец семидесятых или начало восьмидесятых). «Персональный компьютер — первое млекопитающее в эпоху динозавров».
  • –1
    Наши люди не могут без душевного поиска. Вот и Андрей Петрович искал моральную подоплеку в программировании, а не просто слепо верил в прогресс ради прогресса.
    • 0
      Прогресс ради прогресса — это тоже моральная подоплёка. Те, кто двигают прогресс ради прогресса, верят в то, что прогресс — это добро, а отсутствие прогресса там, где он уже назрел, — это зло.
      • 0
        Если люди верят в то, что прогресс — это добро, то прогресс получается ради добра, а не прогресса. Прогресс ради прогресса — это новшества, не имеющие никаких социально полезных функций, либо имеющие, но сомнительные. Как пример — прогресс в сфере развлечений.
        Естественно, это только мое субъективное мнение.
        • 0
          Так не бывает. Люди мотивируются либо материально, либо духовно. Других источников мотивации у людей нет. Управление людьми всегда сводится либо к материальному поощрению тех, кто лучше поддаётся управлению, либо к внушению им мысли о том, что они находятся на стороне добра и делают правое дело. Ваш пример со сферой развлечений можно свести как к первому, так и ко второму. Материальная мотивация может быть основана на том, что продукты в области развлечений пользуются большим платёжеспособным спросом. Но можно замотивировать людей и через то, что скука — это бич современного человечества… это самое страшное зло из тех, с которыми человечеству приходилось когда-либо сталкиваться… те, кто посвящает себя борьбе со скукой, — это воины добра. Согласитесь, не самый плохой способ самореализации — быть паладином XXI века?
          • 0
            Про «бич современного человечества»… Обломов, Печорин, Онегин -ничего не говорящие фамилии?
            • +1
              В те времена скука была проблемой аристократической элиты. Сейчас же её масштабы таковы, что страдает весьма заметная часть человечества. Конечно, это не самые лучшие представители. Но разве они не люди? Разве не заслуживают они доброго отношения? Если такого человека можно избавить на какое время от мучительной скуки тем, что он посмотрит очередную серию «Игры престолов», или мобильной игрой, где нужно все время бежать вперёд и собирать монетки, то почему бы не сделать такому человеку добро?
              • 0
                Заметная -это какая? Небольшая часть Золотого миллиарда? Ну, в абсолютном выражении эта часть выросла с 19-го века, а по-сути ничего не изменилось. Те кто хочет себя занять чем-то -занимает. Те кто хочет скучать -скучает. Скука -она от лени а не от невозможности себя чем-то занять или развлечь.
                • 0
                  Скорее большая часть золотого миллиарда. Сама по себе лень не может быть исходной причиной, поскольку она сама уже является следствием. Человек ленится, когда не знает точно, что конкретно ему нужно сделать, чтобы гарантированно стало «хорошо». Иногда проблема с «конкретно». Т.е. в общем и целом задумка ясна, но для предпринятия каких-то конкретных шагов понимания не хватает. Иногда проблема с «гарантированно». Т.е. и задумка ясна, и что конкретно надо делать — понятно, но нет уверенности в успехе.
                  • 0
                    https://youtu.be/oVLp69L5gcs
          • 0
            Насчет двух видов мотивации — тут с вами согласен. Но вот насчет избавления от скуки… Получается, мы предлагаем завуалированное безделье, сопровожденное часто моральной, умственной и физической деградацией, взамен безделью абсолютному. Избавление от скуки — это строительство спортивных сооружений, организация образовательных курсов и развивающего досуга.
            • 0
              Именно поэтому в мире существуют разные религии. Они не сводимы друг к другу, потому что их моральные нормы основаны на разных ценностях. Для вас базовой ценностью является развитие человека — физическое и умственное. Когда человек развивается вы оцениваете это как «хорошо», а когда он тупо убивает время — как «плохо». И поэтому вы стараетесь придумать, как совместить досуг с развитием. А у кого-то другого иные ценности. Он видит смысл досуга лишь в том, чтобы человек мог отдохнуть и не страдал от скуки. И поэтому когда кто-то с удовольствием играет в красивую мобильную игру, это уже воспринимается как «хорошо».
              • 0
                Согласен с вами, сколько людей, столько и мнений. Именно по этому я и уточнил, что мнение насчет прогресса в сфере развлечений — мое субъективное.
                Если будет желание — можем обсудить вопрос с религиями. Есть 2 вопроса — так ли они не сводимы и почему поэтому они существуют («Именно поэтому в мире существуют разные религии»)?
                • 0
                  Можем и обсудить, но только коротко, поскольку это явный оффтопик.

                  Для примера возьмём три варианта христианской религии: православие, католичество и протестантизм. Православие базируется на том, что самое главное — справедливость. «Хорошо» — это когда справедливо… т.е. каждый получает ровно то, чего заслуживает. Если кто-то получает больше или меньше, чем заслуживает, то это в той или иной мере несправедливо, а значит «плохо». Католичество базируется на том, что самое главное — это соблюдение закона. Когда кто-то соблюдает букву закона, он поступает «хорошо»… в противном случае — «плохо». Критерием является только закон. В протестантизме критерием «добра» служит богатство. Считается, что сами люди не могут оценивать друг друга с моральной точки зрения. Это может делать только бог. Когда кто-то живёт правильно, бог вознаграждает его тем, что помогает в бизнесе. Со временем действительно праведному человеку удаётся накопить богатство. И сам этот факт доказывает, что он в этой жизни был «хорошим».

                  Вот и попробуйте свести эти три религии друг к другу. Или хотя бы две из них…

                  Теперь второй вопрос. Разные религии существуют, потому что единой системы ценностей не существует. Это не значит, что её не может существовать. Если бы можно было перепроектировать человечество с нуля, насадив всем людям одну и ту же систему ценностей (она насаждается через воспитание детей… как внутри семьи, так и государством), то можно было бы придумать такую систему, которая бы устроила всех. Но по факту исторически так сложилось, что у разных людей разный культурный бэкграунд. А значит и разные ценности. Переделать людей можно, но это сложно. Попытка воздействия на базовые ценности вызывает у людей агрессию. Разумеется, это не очень удобно. Из-за разных ценностей людям сложно взаимодействовать. Но в сложившихся обстоятельствах нет никакого способа перейти к ситуации, когда всеми принимается одна единственная универсальная система ценностей. Эта проблема имеет много общего с проблемой кроссплатформенности. Конечно, было бы неплохо иметь одну хорошую платформу, которую все использовали бы. Но на деле приходится мириться с существованием нескольких платформ и разрабатывать кроссплатформенные приложения, которые были бы совместимы со всеми.
                  • 0
                    Полностью согласен со второй частью, по первой есть вопросы, ну да ладно уже, действительно, не будем так далеко уходить от темы статьи. Было приятно пообщаться
  • 0
    Вспомнил из классической книги Гради Буча «Объектно-ориентированный анализ и проектирование»:
    Человечество, по милости Божией, жаждет душевного покоя, эстетических достижений, безопасности семьи, справедливости и свободы, не удовлетворяясь повышением производительности труда. Но именно повышение производительности труда позволяет делиться избыточным, а не драться за недостающее; оно освобождает время для духовного, эстетического и семейного. Оно позволяет обществу направить часть своих средств на институты религии, правосудия и сохранения свобод.

    Арлан Миллс (Harlan Mills) DPMA и человеческая производительность (DPMA and Human Productivity)
    • 0
      Мировая война, случившаяся из-за дележа ресурсов и рынков сбыта смотрит на Г.Буча с недоумением.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка