Первого января 2024-го года на 90-м году жизни скончался Никлаус Вирт (Niklaus Wirt). Он ушёл из жизни в собственном доме, в окружении родных. Прожил долгую и, наверное, счастливую жизнь.
Никлаус Вирт — специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук Швейцарской высшей технической школы Цюриха (ETHZ), лауреат премии Тьюринга, автор книг по алгоритмам и структурам данных, ведущий разработчик языков программирования Euler, PL360, Algol W, Modula, Modula-2, Oberon, Oberon-2 и Oberon-07. Пионер информатики и популяризатор парадигмы структурного программирования.
Но большинству (причастных) он известен как создатель языка Pascal.
Вирт родился 15 февраля 1934 года в швейцарском городке Винтертуре в семье школьного учителя. С ранних лет он увлекался авиамоделированием и ракетостроением и даже пытался изготавливать в подвале школы ракетное топливо.
В 1954 году поступил на факультет электроники Швейцарского федерального технологического института (ETH) в Цюрихе, где за четыре года получил степень бакалавра по электротехнике. Продолжил обучение в университете Лаваля (Квебек, Канада), в 1960 году получил степень магистра. Затем был приглашён в Калифорнийский университет в Беркли (США), где в 1963 году под руководством профессора Гарри Хаски защитил диссертацию, темой которой стал язык программирования Euler — расширение Алгола средствами языка Лисп.
Диссертация Вирта была замечена сообществом разработчиков языков программирования, и в том же 1963 году он был приглашён в Комитет по стандартизации Algol (IFIP, Международной федерации информатики), который разрабатывал новый стандарт языка Algol, впоследствии ставший Algol-68. Параллельно, с 1963 по 1967 годы, Вирт работал ассистентом в Стэнфордском университете (США). Вместе с Джимом Уэльсом разработал и реализовал язык PL/360, предназначенный для программирования на платформе IBM/360.
Вирт также работал профессором информатики в Швейцарской высшей технической школа в Цюрихе, откуда вышел на пенсию в 1999 году.
Никлаус Вирт в своём доме. Легендарный информатик был вдохновлён Копфом и фон Форшергейстом
За время преподавательской работы Вирт дважды брал годичные творческие отпуска, чтобы поработать в лаборатории Xerox PARC, известной созданием компьютерной мыши, оконного интерфейса и прочими разработками, ныне получившими повсеместное распространение.
19 июня 2007 года Никлаусу Вирту была присуждена учёная степень Почётного доктора Российской академии наук. Инициатором представления был российский учёный в области информатики Игорь Шагаев, профессор Лондонского Университета Метрополитен, которого с Никлаусом Виртом связывает совместная работа в 2005–2008 годах над европейским проектом ONBASS.
Самое известное творение Никлауса Вирта — язык программирования Pascal, разработанный им в 1970 году.
Помимо языка Pascal Никлаус Вирт был главным создателем языков программирования Euler (в 1965 году), PL360 для серии мейнфреймов IBM/360 (в 1966 году), ALGOL W (в 1968 году), Modula (в 1975 году), Modula-2 (в 1978 году), Oberon (в 1987 году, в содружестве с Юргом Гуткнехтом; нем. Jürg Gutknecht), Oberon-2 (в 1991 году) и Oberon-07 (в 2007 году), а также операционной системы Oberon.
Языки программирования Вирта обычно отличала ясность, простота и эффективность, благодаря чему в своё время они получили широчайшее распространение и оказали сильное влияние на развитие структурного программирования как явления и на дальнейшую разработку языков программирования.
Pascal в своё время был самым распространённым коммерческим языком программирования. Он лёг в основу знаменитого компилятора Turbo Pascal компании Borland, на базе которого были созданы Object Pascal и Delphi.
«Закон Вирта» — шуточное высказывание Никлауса Вирта (1995 год) в духе законов Паркинсона: «программы становятся медленнее куда шустрее, чем компьютеры становятся быстрее.
Комментарии
Утрата! Скорбим!
Один из немногих Великих.
Так думаю.
Я, грешным делом, даже не подозревал что он до сих пор был жив!
ГлЫба!
Да я тоже!
Но вот промелькнала новость — я и отреагировал.
Великие уходят...
Ну раз уж Вы - скорбите, наверное был хороший человек.
Насчёт того, какой он был человек, я, конечно, не знаю.
Но достаточно зорошо понимаю, сколько он сделал для информационных наук.
Поэтому да, искренние соболезнования.
Давно это было, я работал в кочегарке, учился заочно, когда сдавал программирование на Паскале - преподаватель спросил - ну ведь передрал где то? А я реально сам сделал работу, вплоть до запятых. Теперь я колхозник, а мой сын - программист. Наверное я поступил правильно.
А я вчера закодировался и теперь тоже программист
ТакЪ!
Не, ты просто архив с паролем "qwerty".
В смысле — правильно?
Что колхозник? А почему нет? Крайне почётно. Хотя, думаю, весьма тяжко.
Да, тяжко, вот скоро картоху садить, прям не знаю, надо или нет, надо рабочих, человек 20-30, хотяб, да где их теперь найдёшь. Бешеные деньги.
Всячески поддерживаю переход на колхозную стезю! Без связи с корнями совсем свихнёмся как вид.
https://fuga.ru/articles/2001/09/programmer.htm
«ТаджыкСервис»?
Хотя эта публика сейчас изрядно охамела…
Я уже давно не обращаюсь к ним.
один из последних Отцов.
кто еще жив? Томпсон вроде? Керниган?
Керниган вполне себе.
Долгой ему жизни.
Кнут еще жив
Майерс еще жив.
Программировал на Паскале, спасибо Вирту, хороший язык.
А я и на Алголе.
P.S. Есть ощущение, чтр с Algol-68 здорово перемудрили. Он же «в народ» так и не пошёл.
Алгол и Кобол студентом просмотрел и совсем немного применил, в основном Фортран, после ВС СССР - Паскаль. На Паскале заработал на 3-х комнатную кооперативную квартиру в конце 80-х, в 90-м плюс на пусконаладке стоек управления на дековской архитектуре.
Я на Фортране и ассемблере основное делал. Потом чистый Си плюс тот же ассемблер.
А сейчас тайком открываю учебник по Хаскелу. Не было в моё время функциональных языков программирования. И тянет порой на что-то эдакое…
Prolog таки красивше всех.
Понимаю, о чём речь, но не сильно в теме.
Уже ушёл в другое в то время.
А сейчас иногда появляются, типа, задачки, для дизайна, да. Но не руками в Adobe Illustrator рисовать, а плагинчик самому написать.
Алгоритм осиливаемый, так что вот иногда руки чешутся именно вспомнить молодость и написать.
Сейчас такое время, что плагинчик уже и нейросеть написать может.
Это да…
Но мы олдскульны, считаем, это не по-пацански.
Насколько знаю, Вирт рассматривал свой Pascal, как вариант развития языка Algol.
Но оргкомитет по языку Algol-68 решил, что Pascal - это слишком просто :)
Паскаль - это его величайшая ошибка. Недооценил он своих студентов.
Вирт вел в университете Цюриха спец курс "проектирование компиляторов". По окончании курса студентам предстояло написать курсовую - свой собственный компилятор.
Чтобы гарантировать, что студенты хотя-бы часть кода напишут самостоятельно, а не просто передерут чужие исходники, Вирт разработал спецификацию нового языка.
Зная своих студентов, зная, что для них их кривые и убогие но зато сделанные своим руками поделки - это идеал совершенства, который надо использовать и распространять - он разработал максимально неприемлемую спецификацию языка. Т.е. взял спецификацию языка Си и старательно ее изувечил, не добавляя никакого нового функционала и старательно уродуя и сокращая старый.
Изменения синтаксиса (например begin/end вместо скобок) - это мелочи. Это чисто для того, чтобы увидеть, как студенты справятся с написанием синтаксического анализатора.
Основные изменения - в спецификации вызова функции.
Во первых порядок обработки аргументов функции и, соответственно, порядок их помещения в стек. В Си аргументы обрабатываются начиная с последнего, соответственно в вызываемой функции первый аргумент лежит наверху стека и с ним можно сразу работать без всяких ухищрений. В Паскале аргументы обрабатываются, начиная с первого, и наверху стека лежит последний аргумент. Чтобы добраться до первого надо знать количество аргументов.
Во вторых - очистка стека после вызова функции. В Си за это отвечает вызывающая функция, в Паскале - вызываемая, что опять таки требует от вызываемой функции знать количество аргументов
В результате в Паскале невозможна такая фишка Си, как функции с переменным числом аргументов. Например функция printf. Функцию printf Вирту пришлось заменить оператором write. Функцию оператором. Заодно средства ввода/вывода пришлось внести в спецификацию языка, что сделало его еще более ущербным (что Вирту и требовалось).
В итоге получился ущербный язык, который не имел никаких преимуществ над Си, и при этом функционально был беднее Си. Это позволяло надеяться, что ни один нормальный программист его использовать не будет, и этот язык так и останется только темой для написания курсовых и не больше.
Недооценил он своих студентов.
Одним из студентов был Филипп Кан, которому удалось реализовать студенческую максиму "я написал компилятор - значит это лучший компилятор в мире и его должны использовать все". Кан основал фирму Borland (Дельфи, Билдер - это оно), которая занималась разработкой компиляторов, точнее интегрированных сред разработки (редактор, компилятор, отладчик в одном флаконе).
Первым компилятором, был естественно Паскаль (будущий Дельфи). Но на Паскале подняться ему не удалось, для зарабатывания денег пришлось выпустить компилятор Си (будущий Билдер).
Но вот тут он провернул гениальный финт ушами - он искусственно задерживал выход очередной версии Си компилятора. В результате в любой момент времени последняя версия компилятора Паскаль была удобнее и функциональнее, чем последняя версия компилятора Си.
И это очень быстро оценили студенты, которым простота и удобство важнее, чем качество и функционал, тем более, что для простеньких студенческих поделок функционала Паскаля вполне хватало. И Паскаль стал языком для первичного ознакомления с программированием.
Ну а дальше - большинство студентов после окончания института не учатся больше ничему. Он знает Паскаль - он будет писать на Паскале. Говнокод пошел в мир.
Большущее спасибо!
Отличное дополнение.
Настолько убедительно, что я готов поверить.
Скажите мне, что это шутка!
Вовсе не шутка.
Ну, если по смыслу.
Нафиг такие пасквили
Так по сути оно примерно так и было, история-то известная.
Это просто пасквиль. Языки PASCAL и C появились примерно одновременно, PASCAL даже чуть раньше.
Фуффф... Отлегло. Спасибо!
Всего-то надо было посмотреть даты появления языков. Паскаль на два года раньше
Вообще-то нет.
Си изначально разрабатывался как основной универсальный язык. И обсуждался, разрабатывался и согласовывался он очень долго.
К тому моменту, когда Вирт начал заниматься Паскалем, у всех специалистов в этом вопросе (и у Вирта тоже) уже была предварительная спецификация языка Си.
К тому моменту, когда Вирт закончил заниматься Паскалем, язык Си все еще находился на этапе согласования и утверждения.
Кому-то может и мелочи, а для меня как пенопластом по стеклу. Визуальная мерзость.
как вы категорично не правы !
Вирт конструировал не только и не столько языки программирования но и компьютеры
вместе с паскалем шел и компьютер - лилит кажется назывался (надо гуглить)
насчет использования стека - есть буфер FIFO а есть LIFO.
почитайте про разницу
я еще в начале 90ых по книжкам собирал процессоры на макетке из логических элементов и секционных микросхем серий 589 и 1802
так что я в курсе про историю кампутеров до интеловской эпохи.
щас - да остался интел
а всякие барроуз уже история
так что паскалю вы не правы а вот про студентов Вирта - я коментов не дам
ППКС. Никогда не любил Паскаль за массу геморроя на ровном месте. Си - вот мой выбор Кану же спасибо за то, что продавал компиляторы без обременения разработчиков обязанностью отчисления процента от продажи программ разработчику компилятора.
Это откудова такие сведения?
Вообще синтаксические скобки begin/end были еще в Algol (1958), оттуда перекочевали в PL/I (1964).
Нотация синтаксической скобки имеет значение только на уровне лексического анализатора. Человеку буквы изначально читабельнее, чем символы.
На уровне синтаксического анализатора как раз никакой разницы между нотациями скобки уже нет. Там грамматика важна.
Ну и критика в те времена тоже была:
http://lib.ru/ANEKDOTY/non_pas.txt
Читал этот текст.
Ну просто супер!
Спасибо, что напомнили. ;-)
Таки шо ви говорите! А вообще-то признанный язык для обучения студентоты программированию. Красивый, структурированный...
Ну и FreePascal/Delphi - как развитие...
Да? Да ладно...
Изувечил Си? Изувечить Си невозможно! Си с рождения феноменальный урод!
Но освоевшему Си (и всякие С++, С# и т.д.) - даже и ничего... Когда живёшь долго рядом с уродом, перестаешь замечать, что он урод.
Порог вхождения в C/C++ значительно выше, чем в Pascal.
А синтаксис С++ писали геи. Ибо никто кроме извращенцев не мог придумать такой адское вырвиглазное поделие...
И какого такого качества не хватало в Delphi, чтоб выстрелить себе в ногу и свихнуть мозги?
До ухода баз данных в Web-приложения Delphi был адски удобен для написания именно баз данных.
Кроме того, на Delphi написано немало олдскульных программ.
Delphi был удобен практически для всего. Приходилось на нём мат. моделированием заниматься, начиная с 4 версии с динамическими массивами никаких ограничений не ощущалось. В 2000 делал на нём визуализацию телеметрической информации, тоже нормально получилось.
А ещё лет 5-7 назад на нём веб-сервисы писал, было гораздо удобнее, чем на C#
Сдается мне, что вы -- ein Dreck
В Pascal, если действительно очень нужно передавать в процедуры списки переменной длины с разнородным содержимым, можно, например, реализовать на основе динамических списков. Или с помощью вариантных записей:
С помощью классов (тип Object) ещё можно реализовать.
Но в процедуру список будет передаваться в виде одного параметра, конечно.
B поздних реализациях Pascal и Delphi уже всё есть.
Так что претензии ваши от неумения вашего.
Ну сейчас то уже не модно...
Если задуматься, сейчас студентам должны питон преподавать наверное...
Скриптовый, неплохо увязан с вебом и матприложениями, в т.ч. нейросетями, есть визуализация. Неплохая инфраструктура.
Матлаб скорее инструмент...
Глупости пишете. Паскаль является языком, ориентированным на операторы, а Си -- на выражения, что позволяет програмировать в функциональном стиле, в отличие от Паскаля. Второе глобальное отличие Си от Паскаля и всех остальных "паскалеподобных языков, реализующих парадигму структурного программирования" состоит в синтаксических особенностях объявлений -- в Си с точки зрения синтаксиса абсолютно все объявляется точно так, как будет использоваться, а в Паскале синтаксис объявлений и использования вообще никак не связаны друг с другом. Это позволяет легко и понятно создавать в программах на Си любые, насколько угодно сложные типы, что практически невозможно сделать в Паскале. Поэтому многое в паскаль программах сделано через жопу. И еще одно -- в стандарте языка Си четко написано, что массивов, как таковых, в Си не существует, а оператор "квадратные скобки" -- это просто синтаксический сахар поверх арифметики указателей. Это обеспечивает потрясающую гибкость работы с массивами (двумерный массив -- это массив одномерных массивов, и далее рекурсивно). Единственным недостатком этого является расположение двумерного массива по строкам, в отличие от, например, фортрана. И это немного снижает эффективность программ, работающих с матрицами и векторами из-за несмежного расположения контрвариантных компонент векторов, тензоров и прочих матричных объектов.
Страницы