перейти к публикации
21 комментарий к публикации

Никлаус Вирт: простота спасет мир

Гость
12 октября 2005, 11:08
Вирт опаздал лет на 30. Когда он создал свой гребанный Паскаль с тупым \"негнущимся\" синтаксисом, появился мощный, лаконичный и ПРОСТОЙ язык - C, который до сих пор почти не изменился. Оберон - просто попытка реабилитировать Паскаль, Модулу и прочие языки Вирта сделав закос под синтаксис C. Насчет проблем, описанных в статье. Да, они есть. Но причем тут Оберон??? Это проблемы программистов, проектирующих логику и интерфейс программ, менеджеров, маркетологов и правлений софтверных компаний, и язык тут совершенно не причем. Главный инструмент программиста - ГОЛОВА. Если он не умеет пользоваться ей, то никакой язык не поможет. Язык - лишь средство выражения идей человека. Ничего удобнее языков C/C++ вот уже 30 лет не придумали. Не вижу никаких мотивов, чтоб променять их на какой-то левый Оберон.
Гость
12 октября 2005, 11:10
Трудно сыграть оперу \"Иван Сусанин\" на ложках.
Гость
12 октября 2005, 11:16
Это точно, я недавно вернул на быстрый комп первые версии некоторых ходовых программ. Все последующие были только более громоздкие и тормозные, с кучей навязчивых услуг.
Гость
12 октября 2005, 11:21
Если в ложках хорошие синтезаторы, то почему бы и нет? Просто нажми на кнопку вовремя.
Гость
12 октября 2005, 11:28
\"Простые, давно решенные проблемы из версии к версии либо не решаются вовсе, либо получают безумно сложные решения со значительным увеличением объема программ.\" Вот это то как раз и верно, только не для С++, а для рекламируемого Оберона - в нём даже простенький список придётся писать руками, каждый раз изобретая велосипед. Страуструп, создатель С++, так выразился о критике Виртом его языка: \"Professor Wirth isn\'t known for being generous with praise for languages he hasn\'t designed himself\" Складывается впечатление, что Вирт С++ последний раз видел лет 10 назад.
Гость
12 октября 2005, 12:06
Жуть. Особенно, когда потом из Паскаля сделали Дельфи. И что хорошего из этого получилось? Почему про C# забыли?Простой язык, но от MS;)
Гость
12 октября 2005, 13:09
\"Оберон должен стать основой для обучения программированию\" Вот основная мысль Вирта. При чем здесь нужно обсуждать преимущества С/C++ ? Молодых легче обучить науке программирования с помощью Оберона, чем громоздкого С. Молодые тратят время и молодой задор на изучение языка, а не на освоение программирования как фундаментальной науки... Вирт говорит о том, что программисты превратились в ремеслеников, бездумных кодеров, потому что не обладают фундаментальными научными знаниями в области программирования. Я так думаю...
Гость
12 октября 2005, 13:16
универсальные инструменты - сложны и грмоздки, а простым инструментом только простые и узкие задачи решаются.. и гениальность программиста - это способность сложное на простое разложить.. и подобрать инструмент :), и конечно для каждой головы инструмент свой - ! и чем больше набор - тем лучше! так что - не надо ругать энтузиаста-пенсионера.. и отстаивать ЧУЖЫЕ архитектуры программирования, не создав своей ;)
Гость
12 октября 2005, 13:39
оберон, паскаль, си (даже крестатый и диезный) - это все одного поля ягоды. все что придумывается, в том числе и виртом - это переизобретение лиспа.
Гость
12 октября 2005, 15:38
>>Почему про C# забыли?Простой язык, но от MS;) Потому что С# не существует без громоздкой, медленной и непереносимой платформой .NET. Ты бы еще про Visual Basic.NET вспомнил!
Гость
12 октября 2005, 17:15
Вирт молодец. Понятия не имею что такое оберон, но за развитие концепции структурного программирования и продвижения в массы ему надо ставить памятник. А народ на дельфях пишет не меньше, чем на сях, а Дельфи - тот же Паскаль. Все зависит от задач, нет смысла выпиливать лобзиком, если есть токарный станок.
Гость
12 октября 2005, 18:10
Ребята, вы Оберон то видели хоть =) по-моему нет =)
Гость
12 октября 2005, 18:10
Victor, а ты хоть знаешь в каком году изобретен Паскаль? В 1964! Кстати, С - это тоже 1968. Так что это не Вирт от нас отстает на 30 лет, а мы от него на 40. VVV - аналогично, ЛИСПа тоже не было. Был Алгол и, кажется, Фортран. Автокод был (ассемблер по-нынешнему).
Гость
12 октября 2005, 18:27
Язык вообще - дело десятое. Главное, чтобы был результат. И получался бы он за приемлемое время. Как с точки зрения прохождения задачи, так и с точки зрения времени кодинга. Вот с этой точки зрения и надо выбирать язык. Несмотря на длинные конструкции, разработка на Паскале займет раза в три меньше времени (в основном за счет отладки), т.к. если постановка правильная, написать неработающую программу просто невозможно. С Паскалем проще работать командой, и, особенно, вносить изменения в чужую программу, так как он легче читается. Другое дело, что для низколетящего программирования Паскаль просто не годится. Модула показался (или показалась?) кривоват, лишившись простоты Паскаля, он все-таки не приобрел универсальности С++. Оберон, судя по размерам описания, стройнее. Но мне не попадалось работающей оболочки для него.
Гость
12 октября 2005, 18:35
Выбор языка - это, конечно, религия, но все-таки какой крупный проект написан на Обероне? И как долго он поддерживается к настоящему времени?
Гость
12 октября 2005, 19:07
Уважаю человека за то что он символ. Его книгу по алгоритмам надо читать всем на первом курсе, до изучения С++ и тому подобного. Но к данному выступлению отношусь скептически. Вирт продолжает жить в своей эпохе, и трести воздух обероном рановато...
Гость
12 октября 2005, 19:16
Я поддерживаю tot (12.10 13:09). Программированию нужно спрва учиться. C++ для этого слабо подходит. Паскаль - ничего. Но парадигмы программирования бывают разные и языков нужно несколько изучать. А на счёт замечания vvv(12.10 13:39 ), что функциональный лисп и императивные языки - это одно и тоже, - бред. Вирт учёный, а не кодер. Занимается проблемами обучения программированию, если кто не знал. Кстати. Есть задачи, которые существенно проще решаются на одних языках, и сложнее на других. Отличие - в разы. С++, С# - не панацея. Я тут не говорю об использовании технологий, имею в виду реализацию алгоритмов.
Гость
12 октября 2005, 21:00
Да глупость это про первоначальное обучение на паскале, а потом переход на с++. Я на эти грабли сам наступал. Студент вначале привыкает к паскалю, а потом, когда переходит на с++, продолжает писать так-же как на паскале. Намного легче учится сразу писать на с++.
Гость
12 октября 2005, 23:48
>> привыкает к паскалю, а потом, когда переходит на с++, ... Намного легче учится сразу писать на с++. ну если так судить, то надо сразу писать на С#, тогда совсем думать не надо ни об алгоритме ни о размере программы, только потом получаются программы которые поддерживать просто не возможно. Я считаю, не важно на чем учиться программировать, главное постепенно усваивать разные все более сложные методики, с начала просто алгоритмы, потом декомпозиция/композиция алгоритмов далее структурное программирование, классы и так далее. да для программиста C/C++ удобнее, но Pascal действительно удобнее для обучения, а еще раньше вообще лучше Лого использовать, так как простым языком все писать можно.
Гость
13 октября 2005, 10:47
Размер окошка здесь явно не поощряет развёрнутые комментарии. Хотя \"первый на&\" точно поместится :) \"\"\"Вирт опаздал лет на 30. Когда он создал свой гребанный Паскаль с тупым \"негнущимся\" синтаксисом, появился мощный, лаконичный и ПРОСТОЙ язык - C, который до сих пор почти не изменился.\"\"\" накколько я помню, C был создан в начале 70х, Pascal тоже в 70е - 30 лет никак не получается Многим, кто вынужден на С писать очень хотелось бы его поменять, но это очень сложно, так как ломает обратную совместимость. На С крайне сложно написать большую программу с высокими требованиями по надёжноси. Почитайте, о чём говорят аторы OpenBSD. Они просто помешаны на верификации и аудите кода. Без этого ничего бы у них не получилось бы так как язык С им в этом НИКАК НЕ ПОМОГАЕТ. И когда вы займётесь проектами в сотни тысяч строк, вы это ещё на своей шкуре почувствуете. Уверяю, это совсем не тоже самое что и писать небольшие программы. Синтаксис и должен быть простым и не гнущимся. Он должен позволять излагать мысли вместо того что бы позволять сказать одну и туже очень простую вещь десятками различных способов. См. алфавит как пример хорошего дизайна (часто у вас возникает желание изобрести новую букву?). И Perl как пример плохого (впрочем, дизайном Perl-a целенаправленно никто и не занимался). Я не утверждаю, что Oberon хорош, но моё впечатление от него скорее положительное (если C over-featured то Oberon скорее under-featured :). C - изобилует многими фичами, от которых стоило бы избавиться - они заметно усложняют чтение кода и НЕ добавляют новых возможностей. Многие из этих возможностей связаны с микрооптимизацией (см например \"a = b = c\" или \"++a\"), что когда-то имело смысл когда и компиляторы были глупыми и машины - слабенькими. А другие были добавлены просто необдуманно. С - lingua franca - программистов практически все его знают. Это как английский язык - язык международного общения. Но это не значит, что ничего лучше не может быть. А проблемы, о которвх говорится в статье - это действительно не проблемы языка, а человеческие проблемы. И, кстати, open source уже сегодня является хорошей прививкой от них.
Гость
13 октября 2005, 14:18
Petr: а не нужно вспоминать С. Язык С++ - совершенно иной язык нежели С, с иной философией, просто до которой ещё многие не дошли, остановившись, подобно Вирту, на \"a = b vs. a == b\" и прочих проблемах 70-х годов. C действительно невыразителен. С++ - выразителен, но почему-то многие люди относят его к разновидности С. Скорее, это проблема плохого знания современного положения дел, чем проблема С++. Ну а насчёт \"прививки\" в виде open source: а кто и как, собственно, даёт гарантию хорошего качества кода продуктов open source? Каким образом программа, которую пишут как хобби непонятно какие люди, будет лучше чем программа, над которой работала группа организованных профессиональных разработчиков? (именно разработчиков, не кодеров - тогда как в open source по-прежнему главным лейтмотивом остаётся фраза \"show me the source\", как будто голый исходник без всякой сопутствующей документации автоматически даст полное понимание об архитектуре программы). Не гарантирует open source ничего. Кроме того, что его можно потенциально скомпилировать самому и исправить какие-то тривиальные ошибки. Чтоб копать глубже - надо было этот продукт разрабатывать с самого начала, чтобы разбираться в его архитектуре - т.к. никакой проектной документации во многих продуктах open source зачастую не ведётся. Над всем довлеет \"магический\" the source.