Re[6]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 16:55
Оценка: -5 :))) :))) :))) :))) :))) :)
Здравствуйте, konsoletyper, Вы писали:

K>Интересно, это какие есть рациональные объяснения тому, что переменные должны обязательно объявляться в начале?


1. Область видимости локальной переменной определена, в этом блоке под неё будет зарезервирована память, где бы, внутри блока, вы её не определили. Т. е. компилятору всё равно, где вы её определите, вначале или по мере надобности — хуже от этого программа не станет.

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

Если же программист определяет переменные по мере возникновения необходимости в них, очень вероятно, что эту необходимость он не мог заранее предвидеть, следовательно не вполне владеет ситуацией, следовательно есть большая вероятность, что его код содержит ошибки, а он лишь занимается «расставлением подпорок» в духе: «Хм, ошибка... А введу-ка я здесь переменную!».
Re[2]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 12:46
Оценка: 1 (1) +1 -18
Здравствуйте, Left2, Вы писали:

Т. е. давайте доверимся компилятору и будем писать как попало? А точнее так, как каждому кажется удобнее?

P. S. Всегда прикалывали гении программирования, не способные внимательно прочесть пост и осмыслить вопрос темы. Если не заметили, я не просил оценить примеры из моего поста, я спрашивал о литературе, способной описать преимущества подходов. Самомнение, распираемое изнутри, мешает размышлять по делу? Ваши ценные взгляды на программирование были услышаны, возрадуемся.
Re[2]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 28.08.07 12:21
Оценка: 5 (1) +2 :))) :))) :))) :))) :)))
_>Спасибо всем, кто действительно хотел помочь! Желающие могут продолжить обсирать Паскаль и продвигать идеи всесильных компиляторов.

"философия программирования" — это когда инициатор топика "куплю трусы в розовый горошек" приходит через три года и видит, что в нём, без изменения темы, всё ещё обсуждают парамонадные катаморфизмы
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Посоветуйте литературу о культуре правильного структу
От: Кодёнок  
Дата: 28.08.07 13:26
Оценка: 12 (6) +9 :))
Здравствуйте, alex_ant, Вы писали:

_>Спасибо всем, кто действительно хотел помочь! Желающие могут продолжить обсирать Паскаль и продвигать идеи всесильных компиляторов.


Человеку, у которого не предусмотрено оказаться неправым, помочь нельзя.
Re[5]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 14:06
Оценка: 29 (4) +5 -2 :))
Здравствуйте, geniepro, Вы писали:

G>А по-моему, Вы получите моральное право ругать Вирта только когда получите премию Тьюринга...


Угу. И критиковать яичницу только после того, как снесли яйцо.

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

Для начала определимся, что мы говорим о критике научного работника в области IT и его трудов, а не о критике обывателя N за жестокое обращение с домашними и забывчивость, не позволяющую ему отключать за собой электрическое освещение, договорились?

Продолжим предположением о том, что многие люди, по всей видимости нуждаются в списках святых, чье мнение непререкаемо, и дает в нашем ненадежном мире опору для тех, кто получает преимущество в дискуссии над оппонентами, вскарапкиваясь на плечи титанов.
Это легкий путь, ведь сложная аргументация и доказательная база требовательна к квалификации, а ссылка на авторитет весьма демократична, ведь ни квалификации ни интеллекта вовсе не требует.
В наше время, как видно, эквивалентом канонизации становятся присуждение нобелевской премии, медали Филдса, премии Тьюринга и так далее.
Но наполняет ли премия Тьюринга абсолютом высочайшего градуса все слова лауреата касающиеся IT? Не в большей степени, чем вымпел за сбор металлолома наполняет абсолютом все слова лауреата о металлоломе.
К сожалению, жизнь большинства ученых напоминает параболу. Поднимаясь из тьмы неразвитости и юношеского максимализма, ученый замирает на мгновение в наивысшей точке траектории, чтобы вслед за тем обрушиться во тьму закостенелости и маразма. На нисходящей ветви своей траектории ученый может заниматься, в лучшем случае, бесконечным автоплагиатом a la Магнус Федорович Редькин, который превращает свое изобретение — портки-невидимки сначала в кюлоты-невидимки, затем в брюки-неведимки, а в настоящее время работает над джинсами-неведимками. В худшем же случае деятель науки будет ставить палки в колеса науке, которую перед этим двигал — и причиненный им вред будет пропорционален авторитету, приобретенному в его лучшие дни.

Впрочем, то, что критика нужна науке и то, что ссылка на авторитет — не аргумент — общеизвестно. Но как обстоят дела с уважением?

Действительно, многие воспринимают критику черезчур болезненно, но когда речь идет о научной и инженерной работе, нельзя не признать, что критика полезна для самой идеи. В тепличных условиях поддакивания идея утратит жизнеспособность, прекратит развитие. Ее недостатки не будут выявлены.
Более того, отсутствие критики для идеи — как раз и есть крайнее проявление неуважения к ее автору, ведь не критикуют, как правило, только безинтересную чепуху, на которую никому не хочется тратить свое время. А во всем соглашаются на словах только с сумашедшими.

Лично меня настораживает, что на техническом форуме появляются ветки в одной из которых призывают указывать переменные в начале блока, как завещал Св. Вирт, а в другой призывают отказаться от свойств, потому, что их предал анафеме Св. Рихтер. А вас?
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re: Посоветуйте литературу о культуре правильного структурир
От: alex_ant  
Дата: 28.08.07 10:33
Оценка: 7 (1) -10
Мда... ветка оправдала своё название, философствовать тут любят. Особенно умиляет, что большинство авторов, встречая знакомые слова, бессознательно переключаются в состояние «А что же думает по поводу этого слова моё драгоценное ИМХО? Ну-ка зафигачу-ка я этим ламерам свои божественные откровения...». Ну да ладно, не мне судить.

Спасибо всем, кто действительно хотел помочь! Желающие могут продолжить обсирать Паскаль и продвигать идеи всесильных компиляторов.
Re: Посоветуйте литературу о культуре правильного структурир
От: BulatZiganshin  
Дата: 27.08.07 13:14
Оценка: 2 (2) +8 -1
не зависящие от языка стандарты де-факто типа:
_>— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;
_>— не выходить из функции досрочно в 10-и разных местах, а делать это естественным образом в конце;
_>— не убивать программу в случае возникновения ошибки;
_>— выносить за пределы цикла выражения не зависящие от инкремента;
_>— в операторах сравнения сначала проверять наиболее вероятные условия и пр.

бу-га-га. случайное образование (твоё или твоих учителей) слило воедино праивла микрооптимизации программ и советы по улучшению читабельности
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 13:08
Оценка: -11
Здравствуйте, Left2, Вы писали:

L>Хамите, милейший?

Простите, вырвалось. Терпеть не могу, когда вместо того, чтобы ответить на чётко поставленный вопрос, начинают «блистать умом» на уровне пьяных посиделок.
Re: Посоветуйте литературу о культуре правильного структурир
От: Left2 Украина  
Дата: 27.08.07 12:09
Оценка: 4 (2) +4 -1
_>— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;
Объявлять локальные переменные надо там, где они понадобятся. Если, конечно, язык такое позволяет. Perl точно позволяет.

_>— не выходить из функции досрочно в 10-и разных местах, а делать это естественным образом в конце;

Зависит от. Если лучше читается код который выходит в 10 местах — то пусть выходит в 10 местах.

_>— не убивать программу в случае возникновения ошибки;

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

_>— выносить за пределы цикла выражения не зависящие от инкремента;

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

_>— в операторах сравнения сначала проверять наиболее вероятные условия и пр.

Не вижу никакого смысла в проверке наиболее вероятного условия в начале. Такой подход, ИМХО, оправдан только для ассемблера или для очень древних и убогих компиляторов. Перлу наверняка абсолютно всё равно в каком порядке идут условия. Тут тоже читаемость кода — основной критерий.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[4]: Посоветуйте литературу о культуре правильного структу
От: geniepro http://geniepro.livejournal.com/
Дата: 29.08.07 18:00
Оценка: +4 -2 :)
Здравствуйте, konsoletyper, Вы писали:

k> Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .


А по-моему, Вы получите моральное право ругать Вирта только когда получите премию Тьюринга...
Re[8]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 30.08.07 10:06
Оценка: 21 (2) +4
K>Я вот не понимаю, какой вклад Вирт внёс в Computer Science? И вообще, премию Тьюринга он получил за свои языки, из которых только один нашёл более-менее серьёзное применение (только не надо говорить мне про использование Оберона — Хаскелль и то чаще юзается и упоминается).

LOL! из всех современных императивных языков половина — си-подобные, половина — паскале-подобные

ты просто считаешь само собой разумеющимся уровень языкостроения, достигнутый в 80-е годы. так вот Вирт как раз один из тех гигантов, которые построили эту индустрию. его линия языков, начиная с algol-w, внесла многие идеи, о порисхождении которых ты просто никогда не задумывался

к примеру, передача аргументов по значению и ссылке, модульная структура программы с отделением спецификации от реализации, enums, case records, pointers
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Посоветуйте литературу о культуре правильного структу
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 27.08.07 17:04
Оценка: +6
_>Случайные правила, это лучше чем случайное отсутствие правил.

Культ карго?
... << RSDN@Home 1.2.0 alpha rev. 725>>
Re[2]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 28.08.07 11:33
Оценка: 10 (1) +4
Здравствуйте, alex_ant, Вы писали:

_>Мда... ветка оправдала своё название, философствовать тут любят. Особенно умиляет, что большинство авторов, встречая знакомые слова, бессознательно переключаются в состояние «А что же думает по поводу этого слова моё драгоценное ИМХО? Ну-ка зафигачу-ка я этим ламерам свои божественные откровения...». Ну да ладно, не мне судить.


Слушай, а ты чего хотел, это же "философия программирования"! Да и вообще, чего ты ждал от форумов в инете? И чем плохо, что человек пытается протолкнуть своё ИМХО? То бы он на ЖЖ выложил пост, и гордился бы им тихонько, а тут он может улышать аргументацию против своего ИМХО, что бывает полезно. Да и тебе не мешало бы прислушаться к чужим словам, даже если они — оффтопик. Может, они оффтопик только на первый взгляд?

_>Спасибо всем, кто действительно хотел помочь! Желающие могут продолжить обсирать Паскаль и продвигать идеи всесильных компиляторов.


Слушай, вообще-то, тебе тут все хотели помочь. Даже те, кто "обсирал" Паскаль и продвигал идеи всесильных компиляторов. Хотя для тебе это и неочевидно. Потому что ты ищешь "красоту и логику" не там. Если бы искал правильно, то и вопрос у тебя не возник бы.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re: Посоветуйте литературу о культуре правильного структурир
От: no4  
Дата: 27.08.07 11:45
Оценка: 3 (1) +4
Здравствуйте, alex_ant, Вы писали:

_>— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;


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

_>В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода? Желательно с комментариями и объяснениями. И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?


Code Complete Стива МакКонела читал (в переводе "Совершенный код")
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Посоветуйте литературу о культуре правильного структурир
От: Кодт Россия  
Дата: 27.08.07 16:02
Оценка: 1 (1) +4
Здравствуйте, alex_ant, Вы писали:

_>Недавно устроился Perl-программистом в одну контору, и понял, что культура написания программного кода тут очень сильно хромает. Каждый пишет программный код как может, отсутствуют какие-либо соглашения и внутренние стандарты. Учитывая что команда работает по методологии Scrum (стандарты и коллективное владение кодом), всё это не может не угнетать.


_>Причём я не имею ввиду такое понятие как правильное оформление кода (отступы и скобки), я имею ввиду такие не зависящие от языка стандарты де-факто типа:


Не соглашусь в пункте "не зависящие от языка стандарты де-факто". Буду краток: С++.

_>— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;


В С++, например, от расположения (и, как следствие, инициализации) переменных зависит семантика.

Ещё, как уже сказал Left2, сокращение дистанции между определением и использованием уменьшает риск использования переменных не по делу.

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

На самом деле, дилемма — где объявлять переменные, в начале или в гуще — означает совсем другое.
Для маленьких блоков это некритично. А вот для гигантских, в пару-тройку-десяток страниц...
Вот это — точно повод задуматься о рефакторинге.

_>— не выходить из функции досрочно в 10-и разных местах, а делать это естественным образом в конце;


Та же самая история.
Либо код конкретной функции содержит только логику ветвления — и тогда пусть он даже в десяток страниц, все return'ы отчётливо видны, и главное, понятно, при каких условиях достижимы.
Либо код содержит густые вычисления — тогда очень желательно, чтобы структура control flow была как можно более простой.

Если же вперемешку — вот тут всё и начинается.

_>— не убивать программу в случае возникновения ошибки;


А в вашей фирме есть какие-то общие взгляды на обработку ошибок разной природы?
Советую коллективно помедитировать над этим, в дальнейшем получите кучу бонусов.
Что-то можно и нужно логгировать, что-то — восстанавливать, и т.д. и т.п.
В каких случаях сокращённый control flow (вылет по исключению или внезапный return) полезен, а в каких — нужно ветвиться.

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

Посмотрите на уже известные решения — log4perl и прочее. Чтобы, во-первых, было с чего черпать вдохновение, а во-вторых, чтоб, когда договоритесь, не начать изобретать велосипед.

_>— выносить за пределы цикла выражения не зависящие от инкремента;

_>— в операторах сравнения сначала проверять наиболее вероятные условия и пр.

Правильно, но без фанатизма.
Если в угоду premature optimization пострадает читаемость кода — вряд ли скажут спасибо.
Нужно профилировать, профилировать, профилировать.

_>Попробовал немножко возмутиться, на что мне сказали: «Приведи нормальные доводы, почему писать так как ты предлагаешь это правильно». Большинство моих ценностей прививал мне мой университет и бывшие коллеги, потому я и не знаю на что сослаться, аргументы «так правильнее» и «так логичнее» не прокатят, нужно сослаться на какие-то источники. Наиболее частое объяснения хаоса царящего в их системе это «так писать короче». Кто знаком с Perl, знает, какие чудовищные выражения могут иметь в нём смысл. Но, как я понимаю, не всегда короче — значит лучше. Почти каждая функция в системе представляет собой последовательный прогон комманд с убийством скрипта, если что-то не так, видеть это уже нет мочи.


1) Если люди вменяемые, то попробуйте совместно выработать общие правила, а не насильно прививать то, что одному кажется наилучшим.
Насилие порождает насилие. Ты им — идеальное оформление и идеальную структуру, а они тебе — quick-n-dirty. На их стороне численный перевес, так что готовься к тому, что через месяц, после длительной истерики, сам начнёшь писать QnD.

2) Если "старую собаку не научишь новым трюкам", то придётся смириться.

И всё-таки, перл — это скриптовый язык. Он изначально заточен под QnD, и этим можно пользоваться. При условии, что QnD локально.

_>В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода? Желательно с комментариями и объяснениями. И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?


Если ты будешь писать изящный код на перле, а твои коллеги его будут читать и радоваться — то рано или поздно они пропитаются красотой и сами начнут.
Но и наоборот. Каждый человек способен научить каждого чему-то хорошему
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re: Посоветуйте литературу о культуре правильного структурир
От: anton_t Россия  
Дата: 28.08.07 04:55
Оценка: 1 (1) +4
Здравствуйте, alex_ant, Вы писали:

_>Недавно устроился Perl-программистом в одну контору, и понял, что культура написания программного кода тут очень сильно хромает. Каждый пишет программный код как может, отсутствуют какие-либо соглашения и внутренние стандарты. Учитывая что команда работает по методологии Scrum (стандарты и коллективное владение кодом), всё это не может не угнетать. Причём я не имею ввиду такое понятие как правильное оформление кода (отступы и скобки), я имею ввиду такие не зависящие от языка стандарты де-факто типа:

_>— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;
_>— не выходить из функции досрочно в 10-и разных местах, а делать это естественным образом в конце;
_>— не убивать программу в случае возникновения ошибки;
_>— выносить за пределы цикла выражения не зависящие от инкремента;
_>— в операторах сравнения сначала проверять наиболее вероятные условия и пр.

_>Попробовал немножко возмутиться, на что мне сказали: «Приведи нормальные доводы, почему писать так как ты предлагаешь это правильно». Большинство моих ценностей прививал мне мой университет и бывшие коллеги, потому я и не знаю на что сослаться, аргументы «так правильнее» и «так логичнее» не прокатят, нужно сослаться на какие-то источники. Наиболее частое объяснения хаоса царящего в их системе это «так писать короче». Кто знаком с Perl, знает, какие чудовищные выражения могут иметь в нём смысл. Но, как я понимаю, не всегда короче — значит лучше. Почти каждая функция в системе представляет собой последовательный прогон комманд с убийством скрипта, если что-то не так, видеть это уже нет мочи.


_>В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода? Желательно с комментариями и объяснениями. И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?


Вообще-то чем меньше расстояние между местами объявления и использования переменной, тем меньше шансов, что эта переменная будет участвовать в организации какого-нибудь бага, поэтому пункты 1 и 4 не верны в общем случае.
Re[4]: Посоветуйте литературу о культуре правильного структу
От: _FRED_ Черногория
Дата: 27.08.07 14:56
Оценка: +4 -1
Здравствуйте, Lloyd, Вы писали:

L>Но если нет преимуществ, то литературы об этих преимуществах нет уж и подавно.


да просто завались всяких … книжек (а, особенно, статей в сети), в которых не весть что советуют и которые читать крайне вредно для незамутнения рассудка и вот найдёт же какой-нибудь такую и станет на неё ссылаться повсюду и не сдвинешь его: "вон, посмотри, в инете народ советует!"
Help will always be given at Hogwarts to those who ask for it.
Re[7]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 20:16
Оценка: +4 -1
Здравствуйте, alex_ant, Вы писали:

_>1. Область видимости локальной переменной определена, в этом блоке под неё будет зарезервирована память, где бы, внутри блока, вы её не определили. Т. е. компилятору всё равно, где вы её определите, вначале или по мере надобности — хуже от этого программа не станет.


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

_>2. Привычка определять переменные заранее, заставляет программиста перед реализацией блока планировать то, что ему понадобиться и сразу же представлять группу оперируемых значений. Грубо говоря, это сравнимо с описанием интерфейса объекта до его реализации (сейчас не то чтобы описание интерфейса, написание теста на объект, рекомендуют делать до реализации методов объекта).


Это не сейчас, а в эпоху активного написания ПО на всяких Smalltalk (если не ошибаюсь, именно в Xerox зародились идеи об XP). Да и тесты можно писать только для юнитов, а бывает и так, что того, что принципиально возможно и имеет смысл тестировать, очень небольшая часть проекта.

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

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

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

Всё сказанное никак не затрагивает визуального аспекта, когда приходится водить глаза вверх-вниз, тем самым постоянно сбивая своё внимание.

_>Если же программист определяет переменные по мере возникновения необходимости в них, очень вероятно, что эту необходимость он не мог заранее предвидеть, следовательно не вполне владеет ситуацией, следовательно есть большая вероятность, что его код содержит ошибки, а он лишь занимается «расставлением подпорок» в духе: «Хм, ошибка... А введу-ка я здесь переменную!».


Блин, кто предвидит всё заранее (вообще всё), пусть первым бросит в меня камень (поставит минус, как вариант).
... << RSDN@Home 1.2.0 alpha rev. 710>>
Посоветуйте литературу о культуре правильного структурирован
От: alex_ant  
Дата: 27.08.07 11:17
Оценка: -3 :)
Недавно устроился Perl-программистом в одну контору, и понял, что культура написания программного кода тут очень сильно хромает. Каждый пишет программный код как может, отсутствуют какие-либо соглашения и внутренние стандарты. Учитывая что команда работает по методологии Scrum (стандарты и коллективное владение кодом), всё это не может не угнетать. Причём я не имею ввиду такое понятие как правильное оформление кода (отступы и скобки), я имею ввиду такие не зависящие от языка стандарты де-факто типа:
— объявлять локальные переменные вначале блока или функции, а не по мере того как «за ухом зачесалось»;
— не выходить из функции досрочно в 10-и разных местах, а делать это естественным образом в конце;
— не убивать программу в случае возникновения ошибки;
— выносить за пределы цикла выражения не зависящие от инкремента;
— в операторах сравнения сначала проверять наиболее вероятные условия и пр.

Попробовал немножко возмутиться, на что мне сказали: «Приведи нормальные доводы, почему писать так как ты предлагаешь это правильно». Большинство моих ценностей прививал мне мой университет и бывшие коллеги, потому я и не знаю на что сослаться, аргументы «так правильнее» и «так логичнее» не прокатят, нужно сослаться на какие-то источники. Наиболее частое объяснения хаоса царящего в их системе это «так писать короче». Кто знаком с Perl, знает, какие чудовищные выражения могут иметь в нём смысл. Но, как я понимаю, не всегда короче — значит лучше. Почти каждая функция в системе представляет собой последовательный прогон комманд с убийством скрипта, если что-то не так, видеть это уже нет мочи.

В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода? Желательно с комментариями и объяснениями. И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?

Буду признателен за помощь.
Re: Посоветуйте литературу о культуре правильного структурир
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 16:50
Оценка: -1 :)))
Здравствуйте, alex_ant, Вы писали:

_> И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?


Интересно, а где это можно найти красоту в Pascal? В необходимости аннотации типов? В "водопадной" структуре программ? В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен? В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"? В необходимости ручного освобождения памяти? В отсутствии поддержки динамического размера массивов? Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re: Посоветуйте литературу о культуре правильного структурир
От: Mamut Швеция http://dmitriid.com
Дата: 29.08.07 07:25
Оценка: 18 (3)
Здравствуйте, alex_ant, Вы писали:

_>Причём я не имею ввиду такое понятие как правильное оформление кода (отступы и скобки), я имею ввиду такие не зависящие от языка стандарты де-факто типа


На этом можно остановится. Потому что нет такого понятия, как "независящие от языка стандарты". Потому что языки — они очень и очень разные. И если в Паскале необходимо объявлять все переменные в начале функции.процедуры, то в С++/Java/C# переменные циклов(счетчики) рекомендуется объявлять в самом цикле. А в языках Haskell и Erlang даже само понятие переменная отсутствует (или, вернее, присутствует в совсем другом виде).

Поэтому надо чаще смотреть не на книжки, а на то, как программисты решают такие вопросы в крупных проектах. Часто составляется документ, содержащий определенный набор правил. Как, например, соглашение по оформлению кода RSDN, PHP PEAR Coding Guidelines и прочие.

Для Перла я бы взял какой-нибудь проект на нем и посмотрел, есть ли для него подобное соглашение. Если нет, просто бы покопался в коде.

Например:
Perl style guide
guidelines for coding in Perl for BBC website projects
mod_perl Coding Style Guide
In Defense of Coding Standards

и т.п.


dmitriid.comGitHubLinkedIn
Re[3]: Посоветуйте литературу о культуре правильного структу
От: Left2 Украина  
Дата: 27.08.07 12:57
Оценка: 4 (2) +1
_>P. S. Всегда прикалывали гении программирования, не способные внимательно прочесть пост и осмыслить вопрос темы. Если не заметили, я не просил оценить примеры из моего поста, я спрашивал о литературе, способной описать преимущества подходов. Самомнение, распираемое изнутри, мешает размышлять по делу? Ваши ценные взгляды на программирование были услышаны, возрадуемся.

Хамите, милейший?
Что ж, анонимность инетрнета позволяет. Желаю по мере взросления поумнеть.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[7]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 16:50
Оценка: 2 (2) +1
Здравствуйте, EvilChild, Вы писали:

EC>Так приведи список того, что у тебя вызывает такое неприятие в идеях Вирта,

EC>а то я, например, так и не понял чем он тебе не угодил.

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

Если витиеватость моего сообщения утомляет, могу кратко перечислить основные тезисы:

1) Я считаю, что культ личности в науке вреден как для науки, так и для личности.

Даже гений может заблуждаться. Даже выдающийся новатор может стать со временем реакционером.

2) Способность что-то создать и способность что-то оценить — разные способности и требуют разной квалификации.

Часто автор работы не в состоянии объективно оценить ее (не обязательно переоценивает, может и недооценить). И уж количество медалей в шкафу со способностью оценивать точно плохо коррелирует. Образование — еще туда-сюда.
Впрочем, те кто продвигает идею "не имеешь права критиковать пока сам не ..." зачастую придерживаются двойных стандартов, например тот, кто утверждает что нельзя критиковать труды Вирта, пока не получишь премию Тьюринга, считает, что может запросто критиковать труды Мартина Одерски, не имея степени Ph.D по CS, полученной в приличном вузе.

3) Критика — это не яд-в-ухо. Критика приносит пользу для идеи.

Мало кто любит критиков, но нужно отбросить эмоции и понять, что без критики каждый останется один на один со своими иллюзиями и заблуждениями.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[9]: Посоветуйте литературу о культуре правильного структу
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.08.07 08:33
Оценка: +3
Здравствуйте, AVC, Вы писали:

AVC>http://en.wikipedia.org/wiki/Extended_Backus–Naur_form


Я думаю, что хотя бы это достижение должно вразумить Pascal-ненавидящую молодежь. И еще надо бы добавить к достижениям Вирта книгу "Программы = Алгоритмы + Структуры данных" (1975-й год, как-никак).


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 19:11
Оценка: +1 :))
Здравствуйте, BulatZiganshin, Вы писали:

BZ>культ личности — это когда хвалят новые идеи из-за старых заслуг. вы такое где-нибудь видели?


Конечно видел. Флеймы на rsdn на эту тему по объему, наверное, превосходят safe v.s. unsafe и static v.s. dynamic вместе взятые.
Можете поискать по ключевым словам "Oberon" и "Сергей Губанов", но вообще я не рекомендую. Скучнейшее чтиво. Похоже на войну двадцати молотков с одним гвоздем.

BZ>я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже


Я тоже, тем не менее, я знаю людей которые видят все эти 20 лет непрерывное торжество его идей, причем в самом сердце мэйнстрима.

Я, кстати, согласен с вашим утверждением о вкладе Вирта в этом
Автор: BulatZiganshin
Дата: 30.08.07
сообщении. Но не согласен с утверждением о том, что половина современных императивных языков C, а половина — Pascal-е подобные. Поэтому не поставил ни плюс, ни минус.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[5]: Посоветуйте литературу о культуре правильного структу
От: Lloyd Россия  
Дата: 27.08.07 14:34
Оценка: +2
Здравствуйте, alex_ant, Вы писали:

_>Здравствуйте, Lloyd, Вы писали:


L>>Но если нет преимуществ, то литературы об этих преимуществах нет уж и подавно.

_>Мы наверное живём на разных планетах и читаем разные книжки.

Не исключено.
Re[5]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 16:39
Оценка: +2
Здравствуйте, alex_ant, Вы писали:

_>Я об этом и говорю! Правил нет, важно наличие хоть каких-то, потому что здесь общность важнее их качества. Но желательно, чтобы эти правила имели некое рациональное объяснение.


Интересно, это какие есть рациональные объяснения тому, что переменные должны обязательно объявляться в начале?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[5]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 29.08.07 19:36
Оценка: +2
Здравствуйте, geniepro, Вы писали:

k>> Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .


G>А по-моему, Вы получите моральное право ругать Вирта только когда получите премию Тьюринга...


Вот и пускай это остаётся на моей совести. А так что могу сказать. Ругать Билла Гейтса можно только заработав столько же миллиардов $. Ругать Сталина можно только подняв аграрное государство до уровня сверждержавы за 20 лет. Ругать Гитлера можно только загубив миллионы людей. И так далее...

Собственно, мы уже флеймили по этому поводу. Я лично не понимаю, чего такого выдающегося сделал Вирт. Вот Михаль Москаль тоже придумал несколько языков, один из них очень даже ничего, но о премии я ничего не слышал. А как насчёт Хейльсберга? Как у Вирта дела обстояли с ФП?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[9]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 09:32
Оценка: -2
Здравствуйте, AVC, Вы писали:

AVC>Что касается конкретно ЯП, то после ряда экспериментов (из которых, наверное, самый необычный — Euler) Вирт разработал целое семейство языков, из которых самые известные: Паскаль — Модула-2 — Оберон.


И что? Что в этих языках такого? Я щас тоже возьмусь, разработаю целое семейство ЯП, и премию Тьюринга потребую.

AVC>Оберон сейчас — целое семейство языков, из которых самые новые Zonnon и Composita.

AVC>Именно линия Паскаля привела к созданию т.н. безопасных языков (императивных). Java, C# и т.д. — были уже потом.

Безопасных — на основе managed runtime?

AVC>Если сюда добавить разработки учеников Вирта (slim binaries Франца, система активных объектов Гуткнехта и т.д.), получается совсем немало, IMHO, рассказывать долго.


Может, дадим ученикам Вирта по премии Тьюринга?


Блин, я не говорю же, что Вирт вообще дурак, идиот и ничтожество. Но мне кажется, что его достижения, мягко говоря, переоцениваются. Да и достижения человека не мешают ему порой пургу пороть (хороший пример — Каспаров). Что же, если Вирт премию Тьюринга получил, то теперь он — бог?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[6]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 30.08.07 18:23
Оценка: +2
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, geniepro, Вы писали:


G>>А по-моему, Вы получите моральное право ругать Вирта только когда получите премию Тьюринга...


K>Угу. И критиковать яичницу только после того, как снесли яйцо.


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

разделите это. его вклад — огромен и неоспорим. если вам не нравятся метки в паскале или циклы в обероне — пожалуйста, критикуйте их, а не человека. вот когда вам станут говорить, что эти метки — круто только потому, что их придумал Вирт, тогда вами изложенное будет иметь место
Люди, я люблю вас! Будьте бдительны!!!
Re[14]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.09.07 21:35
Оценка: +2
Здравствуйте, konsoletyper, Вы писали:

K>ФЯ — оно однозначно круче.


Хм. Что то мне подсказывает, что ни одна из современных парадигм не является "однозначно круче".

K> Я имею в виду не программирование без побочных эффектов, а такие штуковины, как кортежи, замыкания, вывод типов, паттерн-матчинг


Это не есть функциональное программирование. Все эти фичи есть или могут быть в императивных языках.

K>Михаль Москаль, которому что-то никто премию Тьюринга, сумел эти фичи запихнуть в императивный язык


Во-первых совсем не очевидно, что база Nemerle это императивный язык, во-вторых замыкания были еще в C# 2, а уж вывод типов в императивных языках я даже затрудняюсь вспомнить когда появился.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[2]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 14:29
Оценка: -1
Здравствуйте, BulatZiganshin, Вы писали:

BZ>бу-га-га. случайное образование (твоё или твоих учителей) слило воедино праивла микрооптимизации программ и советы по улучшению читабельности


Случайные правила, это лучше чем случайное отсутствие правил.
Re[3]: Посоветуйте литературу о культуре правильного структу
От: no4  
Дата: 27.08.07 15:03
Оценка: +1
Здравствуйте, alex_ant, Вы писали:

_>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>бу-га-га. случайное образование (твоё или твоих учителей) слило воедино праивла микрооптимизации программ и советы по улучшению читабельности


_>Случайные правила, это лучше чем случайное отсутствие правил.


Согласен. "Лучше безобразно, но единообразно", как любил говаривать подполковник Схаба

Мне кажется, что если есть готовые правила, то стоит подстраиваться под существующие. Если нет, то надо утвердить общие. Причем их общность более ценна, чем их качество.

Нет ли для перла уже готовых принятых сообществом правил? Например, для Java, Python, C# есть готовые от производителей

Вот еще разные правила Примеры правил кодирования
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Посоветуйте литературу о культуре правильного структу
От: Left2 Украина  
Дата: 27.08.07 19:06
Оценка: +1
K>Интересно, а где это можно найти красоту в Pascal? В необходимости аннотации типов? В "водопадной" структуре программ? В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен? В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"? В необходимости ручного освобождения памяти? В отсутствии поддержки динамического размера массивов? Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.

Жестоко ты с паскалем-то
Наверное всё же не стоит его сравнивать с промышленными языками программирования, а уж тем более — с современными языками Всё-таки ему 100 лет в обед, да и не предназначался он для промышленного программирования с самого рождения. Делали его как язык для обучения — вот и впитал он прогрессивные для тех лет идеи в синтаксис А то что студентов до сих пор учат паскалю — так то не паскаля и не Вирта вина

Кстати, а чем борландовский диалект паскаля хуже оригинала? ИМХО, ничего плохого они с языком не сделали, нормальная себе попытка вывести язык в мейнстрим не сильно меняя синтаксис.
Re[3]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 20:16
Оценка: :)
Здравствуйте, Left2, Вы писали:

L>Жестоко ты с паскалем-то


Как есть, в контексте разговора.

L>Наверное всё же не стоит его сравнивать с промышленными языками программирования, а уж тем более — с современными языками Всё-таки ему 100 лет в обед, да и не предназначался он для промышленного программирования с самого рождения. Делали его как язык для обучения — вот и впитал он прогрессивные для тех лет идеи в синтаксис А то что студентов до сих пор учат паскалю — так то не паскаля и не Вирта вина


Знаешь, я и не говорю, что Паскаль плох, как таковой. Я говорю, что в нём нет никакой красивости сейчас. Человек мог бы сказать "может я просто «не по адресу», а искать красоту и логику нужно в Haskell?", и я бы был не против. Но сейчас неуместно говорить, что Паскаль — это красиво. Он был красив когда-то, и то, с точки зрения педагогики (причём, я придерживаюсь мнения, что он больше подходит как пособие для написания компиляторов, чем как пособие для изучения программирования). Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .

L>Кстати, а чем борландовский диалект паскаля хуже оригинала? ИМХО, ничего плохого они с языком не сделали, нормальная себе попытка вывести язык в мейнстрим не сильно меняя синтаксис.


Не знаю. По-моему, авторы тупо добавили кое-чего из того, что есть в C++, причём сильно не заботились, как именно это впихнуть. Получился язык, в котором половина фич смотрится как-то инородно.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[7]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 20:16
Оценка: +1
Здравствуйте, BulatZiganshin, Вы писали:

K>>Интересно, это какие есть рациональные объяснения тому, что переменные должны обязательно объявляться в начале?


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


Не объяснение. Зачем документировать подобные вещи? Документировать нужно заголовок функции. Бывают, конечно, ситуации, когда переменная нужна для чего-то загадочного, но эти ситуации единичны. Да и код читается сверху вниз, а комментарии помогают его понять. Зачем же тогда заставлять взгляд человека, читающего код, блуждать туда-сюда?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[4]: Посоветуйте литературу о культуре правильного структу
От: Left2 Украина  
Дата: 27.08.07 20:37
Оценка: +1
K>Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .


L>>Кстати, а чем борландовский диалект паскаля хуже оригинала? ИМХО, ничего плохого они с языком не сделали, нормальная себе попытка вывести язык в мейнстрим не сильно меняя синтаксис.


K>Не знаю. По-моему, авторы тупо добавили кое-чего из того, что есть в C++, причём сильно не заботились, как именно это впихнуть. Получился язык, в котором половина фич смотрится как-то инородно.

Дык это типично для языков такого возраста которые пытаются модернизировать Вот первый пример который приходит в голову — расширяемые массивы из C99 — смотрятся как турбонаддув в горбатом запорожце. Что ж поделать — концепции языка устарели — приходится приколачивать фичеры кровельными гвоздями...
Re[2]: Посоветуйте литературу о культуре правильного структу
От: _FRED_ Черногория
Дата: 28.08.07 14:48
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>В настоящее время "культурным" кодом может считаться только тот, который проще сопровождать и рефакторить... Вся остальная "культура" — в сад до тех пор, пока заказчик доволен...


Понятие "простоты" кода сильно зависит от культуры (программисткой, в частности) оценивающего. Поэтому то так, то сяк: всё сводится к одному
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Посоветуйте литературу о культуре правильного структу
От: Кодт Россия  
Дата: 28.08.07 17:24
Оценка: :)
Здравствуйте, VGn, Вы писали:

VGn>Культ карго?


Ага, и когда этот Карго проснётся...
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[8]: Посоветуйте литературу о культуре правильного структу
От: AVC Россия  
Дата: 30.08.07 08:21
Оценка: +1
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, geniepro, Вы писали:


K>>> Я лично не понимаю, чего такого выдающегося сделал Вирт.


G>>Ни Москаль, ни Хайльсберг не внесли такого же вклада в Computer Science, как Вирт. Только не говорите, что считаете вклад Вирта ничтожным


Кё>Так что именно он сделал-то?


На этот вопрос так сразу и не ответишь.
Такое чувство, что в области информатики он занимался (т.е. делал сам) почти всем: не только языками программирования и hardware design, но и операционными системами, разработкой компьютеров, написанием ПО для беспилотных вертолетов.
Что касается конкретно ЯП, то после ряда экспериментов (из которых, наверное, самый необычный — Euler) Вирт разработал целое семейство языков, из которых самые известные: Паскаль — Модула-2 — Оберон.
Оберон сейчас — целое семейство языков, из которых самые новые Zonnon и Composita.
Именно линия Паскаля привела к созданию т.н. безопасных языков (императивных). Java, C# и т.д. — были уже потом.
Если сюда добавить разработки учеников Вирта (slim binaries Франца, система активных объектов Гуткнехта и т.д.), получается совсем немало, IMHO, рассказывать долго.

http://www.inf.ethz.ch/personal/wirth/projects.html
http://www.oberon2005.ru/oberon.html
http://en.wikipedia.org/wiki/Oberon-1
http://en.wikipedia.org/wiki/Extended_Backus–Naur_form

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[10]: Посоветуйте литературу о культуре правильного структ
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.08.07 15:23
Оценка: +1
Здравствуйте, konsoletyper, Вы писали:

AVC>>Что касается конкретно ЯП, то после ряда экспериментов (из которых, наверное, самый необычный — Euler) Вирт разработал целое семейство языков, из которых самые известные: Паскаль — Модула-2 — Оберон.


K>И что? Что в этих языках такого? Я щас тоже возьмусь, разработаю целое семейство ЯП, и премию Тьюринга потребую.


Вперед!
Когда разработаете такое же количество настолько же успешных языков (какими в свое время были языки Вирта) -- возвращайтесь.

K>Блин, я не говорю же, что Вирт вообще дурак, идиот и ничтожество. Но мне кажется, что его достижения, мягко говоря, переоцениваются. Да и достижения человека не мешают ему порой пургу пороть (хороший пример — Каспаров). Что же, если Вирт премию Тьюринга получил, то теперь он — бог?


Он не бог. Он просто человек, в которого не следует бросаться камнями. Тем более, что более выдающегося вклада, чем Вирт, в computer science вы не сделали.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 30.08.07 18:17
Оценка: +1
K>1) Я считаю, что культ личности в науке вреден как для науки, так и для личности.

культ личности — это когда хвалят новые идеи из-за старых заслуг. вы такое где-нибудь видели? я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 19:11
Оценка: +1
Здравствуйте, EvilChild, Вы писали:

EC>Здравствуйте, Klapaucius, Вы писали:


K>>Мое сообщение не о Вирте, а о культе личности и о том, что нельзя отождествлять критику с неуважением.

EC>А где тут культ личности?

Здесь
Автор: geniepro
Дата: 29.08.07
, например.

EC>Мне например до Вирта особого дела нет как и до его паскаля, но такое:

EC>

EC>Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .

EC>раздражает, даже не смотря на смайл. Я понимаю если бы было высказано хоть что-то конструктивное.

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

EC>Со всем, что было написано ниже согласен: утверждения очевидные и с ними спорить просто глупо.


Не такие уж и очевидные. А глупо ли с ними спорить — не мне судить. Лично я поставил минус сообщению по вышеуказанной ссылке именно исходя из этих соображений. Потому, что к тому, имеет ли право A ругать B, ни наличие премии Тьюринга у A, ни наличие той же премии у B не имеет никакого отношения. А многие считают, по всей видимости, что имеет.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[8]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 30.08.07 20:00
Оценка: :)
K>А Вы меня ни с кем не путаете? Где я Вирта критиковал, ссылочку можно?
K>Это не значит, правда, что я не стал бы критиковать Вирта, это означает только, что я этого еще не делал.

"Но наполняет ли премия Тьюринга абсолютом высочайшего градуса все слова лауреата касающиеся IT? "
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Посоветуйте литературу о культуре правильного структу
От: LaptevVV Россия  
Дата: 31.08.07 12:25
Оценка: :)
Здравствуйте, _FRED_, Вы писали:

LVV>>В настоящее время "культурным" кодом может считаться только тот, который проще сопровождать и рефакторить... Вся остальная "культура" — в сад до тех пор, пока заказчик доволен...


_FR> Понятие "простоты" кода сильно зависит от культуры (программисткой, в частности) оценивающего. Поэтому то так, то сяк: всё сводится к одному

Не все так просто... Понятие "простоты" в данном случае можно подвергнуть объективному измерению — различными метриками ПО... Вот вам и тема для исследований... И для диссера, между прочим...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[13]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 31.08.07 15:22
Оценка: -1
Здравствуйте, BulatZiganshin, Вы писали:

BZ>в 83-м году? паскаль в 80-е стал популярен вероятно потому, что уже появилось много народу, которые его изучали в вузе, и он по размеру как раз влезал в тогдашние персоналки. ms pascal тоже был


А мы кажется про Delphi говорим. Какой ещё 83-й?

>>Да и к тому времени трудно было сказать, кто идеологический "папа" Delphi — Вирт, Керниган с Ричи, или Страуструп.


BZ>авторы c/c++ как раз отношения к этому не имеют. динамический ООП — это линия смолток — objc — маковский object pascal


Разве Delphi — это динамический ООП? Smalltalk — вообще очень близок к прототип-ориентированным языкам.

K>>А я на это смотрю так — Pascal, Ada, Eiffel — это всё потомки ALGOL. Вирт не выработал основополагающие концепции, а просто подшлифовал некоторые несуразности.


BZ>авторы ООП языков после симулы тоже только подшлифовывали несуразности?


Думаю, да. А что, Smalltalk, ObjC, C++ и ADA имели другого общего предка?

BZ>поддержка моульности была во всех промышленных языах, начиная с фортрана и ассеблера речь о внесении поддержки модулей в яхык с разделением секций спецификации и реализации


Выделенное — сомнительное удовольствие. Дублирование никогда не идёт на пользу.

K>>case records имеет такое же отношение к algebraic types, как call-by-name к call-by-reference.


BZ>это одинаковые по выразительной мощи концепции


???
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[10]: Посоветуйте литературу о культуре правильного структ
От: geniepro http://geniepro.livejournal.com/
Дата: 01.09.07 10:19
Оценка: :)
Здравствуйте, Klapaucius, Вы писали:

K>>>Мое сообщение не о Вирте, а о культе личности и о том, что нельзя отождествлять критику с неуважением.

EC>>А где тут культ личности?

K>Здесь
Автор: geniepro
Дата: 29.08.07
, например.


Вот уж не знал, что у меня есть культ личности Вирта, при всём моём довольно скептическом отношении к обероновскому семейству, особенно к последнему Оберону-07... :о)) Вирт явно черезчур увлёкся приближением Оберона к Си...

Но когда Вирта сравнивают с Гитлером, как это сделал konsoletyper... Мда, любые аргументы тут будут явно бессильными...
Re[11]: Посоветуйте литературу о культуре правильного структ
От: Klapaucius  
Дата: 01.09.07 11:58
Оценка: +1
Здравствуйте, geniepro, Вы писали:

G>Вот уж не знал, что у меня есть культ личности Вирта,


Жизнь полна удивительных открытий.

G>при всём моём довольно скептическом отношении к обероновскому семейству, особенно к последнему Оберону-07...


Скептическое отношение — это весьма похвально.

G> :о)) Вирт явно черезчур увлёкся приближением Оберона к Си...


Блестящее подтверждение моего утверждения о двойных стандартах. Впрочем, если Вы лауреат Премии Тьюринга — я беру свои слова назад.

G>Но когда Вирта сравнивают с Гитлером, как это сделал konsoletyper... Мда, любые аргументы тут будут явно бессильными...


Я такого сравнения не видел, не подскажете где оно? Если имеете в виду это
Автор: konsoletyper
Дата: 29.08.07
— значит Вы оклеветали konsoletyper-а. Никакого сравнения Вирта с Гитлером там нет. Сравнение составных утверждений не есть сравнение их произвольных составляющих — не так ли?
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[12]: Посоветуйте литературу о культуре правильного структ
От: geniepro http://geniepro.livejournal.com/
Дата: 01.09.07 18:06
Оценка: -1
Здравствуйте, Klapaucius, Вы писали:

G>> :о)) Вирт явно черезчур увлёкся приближением Оберона к Си...


Kl> Блестящее подтверждение моего утверждения о двойных стандартах. Впрочем, если Вы лауреат Премии Тьюринга — я беру свои слова назад.


Здравствуйте, konsoletyper, Вы писали:

Ko> Вот и пришли... Тогда не совсем понятно, с чего начался спор. Ты показал готовность ругать Вирта за Оберон.


Одно маленькое "но". Я не ругаю Вирта.
Вирт имеет своё представление об идеальном императивном языке и последовательно идёт к нему вот уже лет тридцать.
Я имею другое представление о таком языке, мне Обероны не очень нравятся. Ну и где я его ругаю?
Си мне нравится ещё меньше, и что, я ругаю K&R?

G>> Но когда Вирта сравнивают с Гитлером, как это сделал konsoletyper... Мда, любые аргументы тут будут явно бессильными...


Kl> Я такого сравнения не видел, не подскажете где оно? Если имеете в виду это — значит Вы оклеветали konsoletyper-а. Никакого сравнения Вирта с Гитлером там нет. Сравнение составных утверждений не есть сравнение их произвольных составляющих — не так ли?


Ko> Я его сравнил так же со Сталином и Биллом Гейтсом. Это был наглый сарказм. Какая взаимосвязь может быть между критикой Гитлера и тем, сколько критик загубил душ? Вот я и привёл пример фразы, которая, по-моему, настолько же логична, насколько и твоя.


Когда кого-то ставят в один ряд с другими людьми, то фактически производят сравнение с ними.
Поставив в один ряд Вирта и Гитлера, konsoletyper, имхо, преследовал целью очернить Вирта. Разве не так?
По-моему, это как минимум глубокое неуважение к Вирту...
Re[18]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.07 18:54
Оценка: :)
Здравствуйте, BulatZiganshin, Вы писали:

BZ>только один?


D, C#

Тебе вобще сколько надо?
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[3]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 27.08.07 13:12
Оценка:
Здравствуйте, alex_ant, Вы писали:

_>Здравствуйте, Left2, Вы писали:


_>Т. е. давайте доверимся компилятору и будем писать как попало? А точнее так, как каждому кажется удобнее?


_>P. S. Всегда прикалывали гении программирования, не способные внимательно прочесть пост и осмыслить вопрос темы. Если не заметили, я не просил оценить примеры из моего поста, я спрашивал о литературе, способной описать преимущества подходов. Самомнение, распираемое изнутри, мешает размышлять по делу? Ваши ценные взгляды на программирование были услышаны, возрадуемся.


с.п. — это не догма, а инструмент увеличивающий читабельность и надёжность кода. рекомендации, которые ты приводил — это не истина в послекдней инстанции, и Left2 тебе как раз принялся объяснять почему они могут быть неверны. однако тебе не зватает опыта чтобы самому об этом судить, ты пока что доверяешь только книгам, написанным авторитетами
Люди, я люблю вас! Будьте бдительны!!!
Re: Посоветуйте литературу о культуре правильного структурир
От: a18 Россия  
Дата: 27.08.07 13:20
Оценка:
_>В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода?

http://www.rsdn.ru/article/mag/200401/codestyle.XML

Кое-что из упомянутого вами там освещено
Re[3]: Посоветуйте литературу о культуре правильного структу
От: Lloyd Россия  
Дата: 27.08.07 13:23
Оценка:
Здравствуйте, alex_ant, Вы писали:

_>P. S. Всегда прикалывали гении программирования, не способные внимательно прочесть пост и осмыслить вопрос темы. Если не заметили, я не просил оценить примеры из моего поста, я спрашивал о литературе, способной описать преимущества подходов.


Но если нет преимуществ, то литературы об этих преимуществах нет уж и подавно.
Re[4]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 14:28
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>с.п. — это не догма, а инструмент увеличивающий читабельность и надёжность кода. рекомендации, которые ты приводил — это не истина в послекдней инстанции, и Left2 тебе как раз принялся объяснять почему они могут быть неверны. однако тебе не зватает опыта чтобы самому об этом судить, ты пока что доверяешь только книгам, написанным авторитетами


Ясен пень, что это не догма и не истина в последней инстанции. Я это понимаю. Более того, истин в последней инстанции вообще не бывает. Я просто привёл примеры, но вместо этого, лишь один человек посоветовал книгу, остальные прицепились к формулировкам.

Если рассуждать как Left2 «всё зависит от случая» — можно ответить абсолютно на любой вопрос. Я понимаю, что всё зависит от случая, но тем не менее некие рекомендации есть, более того, коллективное владение кодом подразумевает единые рекомендации для всей команды.
Re[4]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 14:30
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Но если нет преимуществ, то литературы об этих преимуществах нет уж и подавно.

Мы наверное живём на разных планетах и читаем разные книжки.
Re: Посоветуйте литературу о культуре правильного структурир
От: Mikhail Polykovsky Россия http://glader.ru
Дата: 27.08.07 15:04
Оценка:
_>В свете всего выше сказанного, может ли кто-нибудь посоветовать литературу или статьи о культуре правильного построения структуры кода? Желательно с комментариями и объяснениями. И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?

Мартин Фаулер "Рефакторинг"

P.S. И поддерживаю Left2, сам хотел такое написать
Re[4]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 15:18
Оценка:
Здравствуйте, no4, Вы писали:

no4>Мне кажется, что если есть готовые правила, то стоит подстраиваться под существующие. Если нет, то надо утвердить общие. Причем их общность более ценна, чем их качество.


Я об этом и говорю! Правил нет, важно наличие хоть каких-то, потому что здесь общность важнее их качества. Но желательно, чтобы эти правила имели некое рациональное объяснение.
Re: Посоветуйте литературу о культуре правильного структурир
От: alex_ant  
Дата: 27.08.07 15:20
Оценка:
Ещё раз для всех повторяю, примеры, которые я привел в первом посте, это только примеры. Они никак не претендуют на звание супер-мега-истины. Цель этого вопроса не оценить истинность этих примеров, а найти рациональные объяснения для подобных правил, чтобы можно было ввести некие стандарты для команды.
Re[6]: Посоветуйте литературу о культуре правильного структу
От: BulatZiganshin  
Дата: 27.08.07 16:58
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Здравствуйте, alex_ant, Вы писали:


_>>Я об этом и говорю! Правил нет, важно наличие хоть каких-то, потому что здесь общность важнее их качества. Но желательно, чтобы эти правила имели некое рациональное объяснение.


K>Интересно, это какие есть рациональные объяснения тому, что переменные должны обязательно объявляться в начале?


их типы плюс комментарии образуют некую форму документации. уджобнее ею пользоваться когда она сосредоточенаи в одном месте, а не разбросана по всей функции
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: Посоветуйте литературу о культуре правильного структу
От: alex_ant  
Дата: 27.08.07 17:00
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Интересно, а где это можно найти красоту в Pascal? В необходимости аннотации типов? В "водопадной" структуре программ? В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен? В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"? В необходимости ручного освобождения памяти? В отсутствии поддержки динамического размера массивов? Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.


На вкус и цвет для всех фломастеры разные. Классическая литература тоже нынче уступает по популярности сериалу «Моя прекрасная няня». Но это всё не по теме немножко...
Re[3]: Оффтоп про Паскаль
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 27.08.07 20:16
Оценка:
Здравствуйте, alex_ant, Вы писали:

_>На вкус и цвет для всех фломастеры разные. Классическая литература тоже нынче уступает по популярности сериалу «Моя прекрасная няня».


Понимаешь, ты привёл неуместное сравнение. Лучше сравни лошадь и реактивный истребитель.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[2]: Посоветуйте литературу о культуре правильного структу
От: crontab  
Дата: 27.08.07 21:29
Оценка:
Здравствуйте, a18, Вы писали:

a18>http://www.rsdn.ru/article/mag/200401/codestyle.XML


a18>Кое-что из упомянутого вами там освещено


Прочел там следующее:

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

Как раз на днях тут была ссылка на выступление Страуса нашего струпа, где он говорил, что согласно исследованиям, underscore style читабельнее верблюжьего. Go figure!

На самом деле автору этого поста нужны результаты исследований, а не книги, в которых как правило что-то бездоказательно декларируется. К сожалению большинство книг пишется людьми, не имеющими практики программирования.
--
crontab
Re[4]: Посоветуйте литературу о культуре правильного структу
От: anton_t Россия  
Дата: 28.08.07 09:37
Оценка:
Здравствуйте, no4, Вы писали:

no4>Здравствуйте, alex_ant, Вы писали:


_>>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>>бу-га-га. случайное образование (твоё или твоих учителей) слило воедино праивла микрооптимизации программ и советы по улучшению читабельности


_>>Случайные правила, это лучше чем случайное отсутствие правил.


no4>Согласен. "Лучше безобразно, но единообразно", как любил говаривать подполковник Схаба


Это зависит от степени формальности проекта. Оптимальная степень формальности для разных проектов может быть разной. Об этом хорошо написано в "Совершенном коде", про который в этой теме уже писали.
Re[5]: Посоветуйте литературу о культуре правильного структу
От: no4  
Дата: 28.08.07 10:11
Оценка:
Здравствуйте, anton_t, Вы писали:


no4>>Согласен. "Лучше безобразно, но единообразно", как любил говаривать подполковник Схаба


_>Это зависит от степени формальности проекта. Оптимальная степень формальности для разных проектов может быть разной. Об этом хорошо написано в "Совершенном коде", про который в этой теме уже писали.


Я думаю, по крайней мере, форматирование кода и система именования должна быть общей вне зависимости от степени формализации. Желательно даже общей для данной технологии.

Просто чтобы сформировать общий язык
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Посоветуйте литературу о культуре правильного структурир
От: LaptevVV Россия  
Дата: 28.08.07 14:33
Оценка:
Здравствуйте, alex_ant, Вы писали:

_>Недавно устроился Perl-программистом в одну контору, и понял, что культура написания программного кода тут очень сильно хромает. Каждый пишет программный код как может, отсутствуют какие-либо соглашения и внутренние стандарты.

В настоящее время "культурным" кодом может считаться только тот, который проще сопровождать и рефакторить... Вся остальная "культура" — в сад до тех пор, пока заказчик доволен...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Посоветуйте литературу о культуре правильного структу
От: Кодт Россия  
Дата: 28.08.07 17:24
Оценка:
Здравствуйте, alex_ant, Вы писали:

_>1. Область видимости локальной переменной определена, в этом блоке под неё будет зарезервирована память, где бы, внутри блока, вы её не определили. Т. е. компилятору всё равно, где вы её определите, вначале или по мере надобности — хуже от этого программа не станет.


С этим "вообще" можно поспорить, — впрочем, конкретно к перлу это не относится.

_>2. Привычка определять переменные заранее, заставляет программиста перед реализацией блока планировать то, что ему понадобиться и сразу же представлять группу оперируемых значений. Грубо говоря, это сравнимо с описанием интерфейса объекта до его реализации (сейчас не то чтобы описание интерфейса, написание теста на объект, рекомендуют делать до реализации методов объекта).


Правильно, это означает, что нужно делать блоки как можно меньшего размера. Ты же не пихаешь в один интерфейс всё что возможно?
Из этого вывод: помещать переменные как можно ближе к месту использования.
И, если очень хочется, — обрамлять блочными скобками { }.

_>Если же программист определяет переменные по мере возникновения необходимости в них, очень вероятно, что эту необходимость он не мог заранее предвидеть, следовательно не вполне владеет ситуацией, следовательно есть большая вероятность, что его код содержит ошибки, а он лишь занимается «расставлением подпорок» в духе: «Хм, ошибка... А введу-ка я здесь переменную!».


Очень любопытно, как введение переменной может послужить подпоркой?
Вот как делать подпорки из аргументов функции — такое я видел А с локальными переменными... Покажи, пожалуйста. Правда, интересно.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[7]: Посоветуйте литературу о культуре правильного структу
От: VGn Россия http://vassilsanych.livejournal.com
Дата: 28.08.07 19:10
Оценка:
_>Если же программист определяет переменные по мере возникновения необходимости в них, очень вероятно, что эту необходимость он не мог заранее предвидеть, следовательно не вполне владеет ситуацией, следовательно есть большая вероятность, что его код содержит ошибки, а он лишь занимается «расставлением подпорок» в духе: «Хм, ошибка... А введу-ка я здесь переменную!».

А ещё есть такое понятие, как время жизни переменной. И чем оно меньше тем лучше. Что-то вроде визуальной инкапсуляции.
А компилятору действительно всё равно.
Программы пишутся для людей. (с)

При паскалевском объявлении переменных велика вероятность, что либо переменная вообще не будет использована (использование исчезло во время рефакторинга),
либо переменная будет использована не по назначению в другом куске программы.

Только не надо аргументировать тем, что хороший программист пишет без ошибок.
... << RSDN@Home 1.2.0 alpha rev. 725>>
Re[6]: Посоветуйте литературу о культуре правильного структу
От: geniepro http://geniepro.livejournal.com/
Дата: 29.08.07 21:11
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K> Я лично не понимаю, чего такого выдающегося сделал Вирт. Вот Михаль Москаль тоже придумал несколько языков, один из них очень даже ничего, но о премии я ничего не слышал. А как насчёт Хейльсберга?


Ни Москаль, ни Хайльсберг не внесли такого же вклада в Computer Science, как Вирт. Только не говорите, что считаете вклад Вирта ничтожным — это будет неуважением не только к нему, но и ко многим миллионам программистам в мире...

K> Как у Вирта дела обстояли с ФП?


Когда-то он что-то разрабатывал в этом духе, но разочаровался и пошёл императивной дорогой — что ж, такой у него склад ума...
Re[7]: Посоветуйте литературу о культуре правильного структу
От: Кодёнок  
Дата: 30.08.07 06:07
Оценка:
Здравствуйте, geniepro, Вы писали:

K>> Я лично не понимаю, чего такого выдающегося сделал Вирт.


G>Ни Москаль, ни Хайльсберг не внесли такого же вклада в Computer Science, как Вирт. Только не говорите, что считаете вклад Вирта ничтожным


Так что именно он сделал-то?
Re[7]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 06:37
Оценка:
Здравствуйте, geniepro, Вы писали:

G>Ни Москаль, ни Хайльсберг не внесли такого же вклада в Computer Science, как Вирт. Только не говорите, что считаете вклад Вирта ничтожным — это будет неуважением не только к нему, но и ко многим миллионам программистам в мире...


Я вот не понимаю, какой вклад Вирт внёс в Computer Science? И вообще, премию Тьюринга он получил за свои языки, из которых только один нашёл более-менее серьёзное применение (только не надо говорить мне про использование Оберона — Хаскелль и то чаще юзается и упоминается).

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

G>Когда-то он что-то разрабатывал в этом духе, но разочаровался и пошёл императивной дорогой — что ж, такой у него склад ума...


Да? А как насчёт утверждений, что ФП — сфероконь в вакууме? При том, что тот же Haskell используется чаще императивного Оберона (не говоря уж об Erlang, OCaml, Ruby, Python).

Читал книжку по истории Хаскелля. Там в самом начале описывается, какие люди статьи писали, какие языки разрабатывали. Вот это действительно, фундаментально! И это как раз в то время, когда Вирт занимался своими модулами, а затем — оберонами. Собственно, непонятно, чего такого в его языках принципиально нового, где прорыв.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[10]: Посоветуйте литературу о культуре правильного структ
От: AVC Россия  
Дата: 30.08.07 08:45
Оценка:
Здравствуйте, eao197, Вы писали:

AVC>>http://en.wikipedia.org/wiki/Extended_Backus–Naur_form


E>Я думаю, что хотя бы это достижение должно вразумить Pascal-ненавидящую молодежь.


Последнее из известных мне применений EBNF — опеределение протоколов в Зонноне и Композите.

E>И еще надо бы добавить к достижениям Вирта книгу "Программы = Алгоритмы + Структуры данных" (1975-й год, как-никак).


Согласен!
Я по этой книге учился программировать.
(Если быть точным, я одновременно читал две первые книги: "Программы = Алгоритмы + Структуры данных" и... K&R. )
Также хочется отметить классическую статью по структурному программированию:
http://www.cs.inf.ethz.ch/~wirth/Articles/StepwiseRefinement.pdf

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[10]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 09:32
Оценка:
Здравствуйте, eao197, Вы писали:

AVC>>http://en.wikipedia.org/wiki/Extended_Backus–Naur_form


E>Я думаю, что хотя бы это достижение должно вразумить Pascal-ненавидящую молодежь.


И что за достижение? В таком случае, я за разработку BNF-диалекта требую вручить премию Тьюринга авторам yacc, ANTRL и мне

E>И еще надо бы добавить к достижениям Вирта книгу "Программы = Алгоритмы + Структуры данных" (1975-й год, как-никак).


Прекрасная книжка для обучения основам программирования (даже для 1975 года). И что, всем авторам хороших учебников сразу по премии Тьюринга?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[10]: Посоветуйте литературу о культуре правильного структ
От: AVC Россия  
Дата: 30.08.07 11:26
Оценка:
Здравствуйте, konsoletyper, Вы писали:

AVC>>Оберон сейчас — целое семейство языков, из которых самые новые Zonnon и Composita.

AVC>>Именно линия Паскаля привела к созданию т.н. безопасных языков (императивных). Java, C# и т.д. — были уже потом.

K>Безопасных — на основе managed runtime?


Безопасных — в смысле, что компилятор и рантайм гарантируют определенные свойства программ.
Например: защиту памяти и типо-безопасность.
Для Оберона виртуальная машина и байт-код не требуются (хотя он хорошо ложится на JVM и CLR), он прекрасно работает на голом железе.

K>Блин, я не говорю же, что Вирт вообще дурак, идиот и ничтожество.


И на том спасибо, добрый человек.

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[11]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 15:53
Оценка:
Здравствуйте, eao197, Вы писали:

E>Когда разработаете такое же количество настолько же успешных языков (какими в свое время были языки Вирта) -- возвращайтесь.


Почему целое семейство? Я вот только один Паскаль знаю. Или Модула и Оберон — успешные?

E>Он просто человек, в которого не следует бросаться камнями.


Почему это в него не следует бросаться камнями?

E>Тем более, что более выдающегося вклада, чем Вирт, в computer science вы не сделали.


И что с этого? Я в шахматы играть вообще не умею, но это мне не мешает критиковать то, что сейчас говорит Гарри Каспаров.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[12]: Посоветуйте литературу о культуре правильного структ
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.08.07 16:04
Оценка:
Здравствуйте, konsoletyper, Вы писали:

E>>Когда разработаете такое же количество настолько же успешных языков (какими в свое время были языки Вирта) -- возвращайтесь.


K>Почему целое семейство? Я вот только один Паскаль знаю. Или Модула и Оберон — успешные?


Успешные. Поскольку в отличии от нескольких тысяч других языков, канувших в лету и не оставивших после себя ничего, кроме упоминания в энциклопедиях, Модула и Оберон долгое время использовались (и используются) для производства ПО, в том числе и критически-важного. И это не говоря о влиянии, которое Модула и Оберон оказали на современный мейнстрим (например, в лице ObjectPascal/Delphi и Java).

E>>Он просто человек, в которого не следует бросаться камнями.


K>Почему это в него не следует бросаться камнями?


Хотя бы из элементарной вежливости к возрасту.

Кстати, Oberon был написан Виртом, когда Вирту было уже за 50. Уверены ли вы, что будете способны на такие достижения в этом возрасте?

E>>Тем более, что более выдающегося вклада, чем Вирт, в computer science вы не сделали.


K>И что с этого? Я в шахматы играть вообще не умею, но это мне не мешает критиковать то, что сейчас говорит Гарри Каспаров.


Вы попоробуйте оспорить вклад Каспарова в современные шахматы. Ведь с Виртом вы пытаетесь оспорить его вклад в ИТ.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Посоветуйте литературу о культуре правильного структу
От: EvilChild Ниоткуда  
Дата: 30.08.07 16:17
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Угу. И критиковать яичницу только после того, как снесли яйцо.


Куча букв поскипана.
Так приведи список того, что у тебя вызывает такое неприятие в идеях Вирта,
а то я, например, так и не понял чем он тебе не угодил.
now playing: The Future Sound Of London — It's My Mind That Works
Re[8]: Посоветуйте литературу о культуре правильного структу
От: EvilChild Ниоткуда  
Дата: 30.08.07 17:48
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Мое сообщение не о Вирте, а о культе личности и о том, что нельзя отождествлять критику с неуважением.

А где тут культ личности? Мне например до Вирта особого дела нет как и до его паскаля, но такое:

Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .

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

K>Если витиеватость моего сообщения утомляет, могу кратко перечислить основные тезисы:

Наоборот радует, люблю изящный слог.

Со всем, что было написано ниже согласен: утверждения очевидные и с ними спорить просто глупо.
now playing: Future Prophecies — Dreadlock VIP
Re[9]: Посоветуйте литературу о культуре правильного структу
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.08.07 18:23
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже


Кстати, может быть и зря.
По крайней мере, попрограммировав на Eiffel, мне показалось, что в старой школе (которую представляют Вирт и Мейер) определенно что-то есть.

В том числе и в декларации локальных переменных в специальной секции


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Посоветуйте литературу о культуре правильного структ
От: Klapaucius  
Дата: 30.08.07 19:11
Оценка:
Здравствуйте, eao197, Вы писали:

BZ>>я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже

E>Кстати, может быть и зря.
E>По крайней мере, попрограммировав на Eiffel, мне показалось, что в старой школе (которую представляют Вирт и Мейер) определенно что-то есть.

Они — одна школа разве? Я думал, оберонисты и эйфелисты — это как Гвельфы и Гибеллины.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[7]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 19:11
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>вы разницу между критикой Вирта и его конкретных идей видите?


Конечно вижу.

BZ>вы сначала делаете совершенно очевидное утверждение о том, что ивам должно быть позволено критиковать идеи Вирта, а затем вместо критики конкретных идей переходите на его личность


А Вы меня ни с кем не путаете? Где я Вирта критиковал, ссылочку можно?
Это не значит, правда, что я не стал бы критиковать Вирта, это означает только, что я этого еще не делал.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[10]: Посоветуйте литературу о культуре правильного структ
От: EvilChild Ниоткуда  
Дата: 30.08.07 19:39
Оценка:
Здравствуйте, Klapaucius, Вы писали:

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

Я как раз и не кипятился — просто поставил минус, потому как большего сообщение не заслуживало по моему скромному мнению.

K>Не такие уж и очевидные. А глупо ли с ними спорить — не мне судить. Лично я поставил минус сообщению по вышеуказанной ссылке именно исходя из этих соображений. Потому, что к тому, имеет ли право A ругать B, ни наличие премии Тьюринга у A, ни наличие той же премии у B не имеет никакого отношения. А многие считают, по всей видимости, что имеет.

Это всё верно, но разворачивать эту мысль в отдельном сообщении мне показалось overkill'ом
now playing: The Future Sound Of London — Pulse State
Re[9]: Посоветуйте литературу о культуре правильного структу
От: Left2 Украина  
Дата: 30.08.07 19:40
Оценка:
BZ> pointers
А что — указатели тоже Вирт придумал? Или я чего-то не понял?
Re[10]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 30.08.07 19:51
Оценка:
Здравствуйте, Left2, Вы писали:

BZ>> pointers

L>А что — указатели тоже Вирт придумал? Или я чего-то не понял?

а ты знаешь более ранний язык, где они есть в том же виде? из маинстримных в алголе-68 — "имена", намного более мудрёная концепция, в pl/1 говорят controlled memory — жуткий изврат
Люди, я люблю вас! Будьте бдительны!!!
Re[10]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 30.08.07 19:57
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>культ личности — это когда хвалят новые идеи из-за старых заслуг. вы такое где-нибудь видели?


K>Можете поискать по ключевым словам "Oberon" и "Сергей Губанов", но вообще я не рекомендую. Скучнейшее чтиво. Похоже на войну двадцати молотков с одним гвоздем.


а причём тут культ личности? вот если бы он был фанатом apl-360 и на этом основании говорил, что zonnon не может быть плохой вещью — это был бы культ. а так он фанатик конкретного языка. я и сам такой

BZ>>я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже


K>Я тоже, тем не менее, я знаю людей которые видят все эти 20 лет непрерывное торжество его идей, причем в самом сердце мэйнстрима.


ну а мы тут при чём? в этом топике Сергея вообще не было, с какой стати вы вместо конкретной критики *идей* завели речи о чьём-то фанатизме?

K>Я, кстати, согласен с вашим утверждением о вкладе Вирта в этом
Автор: BulatZiganshin
Дата: 30.08.07
сообщении. Но не согласен с утверждением о том, что половина современных императивных языков C, а половина — Pascal-е подобные. Поэтому не поставил ни плюс, ни минус.


хорошо, скажу по-другому: языки, происходящие прямо или косвенно от паскаля, сейчас на втором месте по популярности, после проихсодящих от С. модула, ада, эйфель, delphi. в 80-х паскаль+модула по суммарному весу вероятно и вовсе были на первом месте
Люди, я люблю вас! Будьте бдительны!!!
Re[11]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 20:06
Оценка:
Здравствуйте, EvilChild, Вы писали:

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

EC>Я как раз и не кипятился — просто поставил минус, потому как большего сообщение не заслуживало по моему скромному мнению.

Чё-то не вижу минуса. Надо исправить. И вот ещё что: прежде, чем рассуждать о ничтожности моего сообщения, почитай сообщение, на которое я отвечал, чтобы хоть стало понятно, почему я допустил подобное высказываение.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[9]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 20:06
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>ты просто считаешь само собой разумеющимся уровень языкостроения, достигнутый в 80-е годы. так вот Вирт как раз один из тех гигантов, которые построили эту индустрию. его линия языков, начиная с algol-w, внесла многие идеи, о порисхождении которых ты просто никогда не задумывался


Мда, вообще-то я увлёкся с провокациями против Вирта. Ладно, ваша взяла, заслужил он премию Тьюринга, только, ИМХО, формулировку они странную запустили. Да, в плане языкостроения он сделал что-то в 70-е годы. Но вот с полезностью Модулы или Оберона не соглашусь — это уже ближе к 80-м и уровень языкострояния вполне достиг . Да и Паскаль можно рассматривать сейчас лишь как ископаемое, бывшее чем-то выдающемся в 70-е. Кроме того, мне всегда казалось, что Паскаль сыграл примерно такую же роль, как Алгол, т.е. продвинул мысль, а вот на практике не нашедший применения (или я не прав?)

BZ>к примеру, передача аргументов по значению и ссылке, модульная структура программы с отделением спецификации от реализации, enums, case records, pointers


С выделенным могу поспорить. Первого в Паскале не было, а появилось лишь в Модуле, но к тому времени это было новшеством. Второе — сомнительное удовольствие; если оно и имеет ценность, то такую же, как и передача по имени в Алголе (т.е. Вирт показал, как делать не надо).
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[2]: Посоветуйте литературу о культуре правильного структу
От: GlebZ Россия  
Дата: 30.08.07 20:12
Оценка:
Здравствуйте, konsoletyper, Вы писали:

_>> И вообще имеет ли это смысл с языком Perl, может я просто «не по адресу», а искать красоту и логику нужно в Pascal?


K>Интересно, а где это можно найти красоту в Pascal?

Можно. Я в когда-то находил. Простота и выразительность структурного языка.
K>В необходимости аннотации типов?
На момент создания языка — альтернативой была только динамическая типизация.
K>В "водопадной" структуре программ?
Это еще че за фигня?
K>В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен?
Хочешь верь, а хочешь нет. goto в Паскале был.
K>В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"?
Зато был стандартный и эффективный массив. А эти структуры можно построить взяв любой учебник по алгоритмам. И это займет не более 10-20 минут. Такой же массив с помощью вышеописанных структур не сделаешь. Точнее сделать можно, но не таким же эффективным.
K>В необходимости ручного освобождения памяти?
То что императивные языки обзавелись сборкой мусора, есть некоторая вина Паскаля. Одна версия Паскаля была первой в которую имплементировали сборку мусора. А сборку мусора не в каждый язык запихнешь.
K>В отсутствии поддержки динамического размера массивов?
Это еще зачем? Смотри пункт — с структурами данных типа "список", "множество", "словарь", "очередь"
K>Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.
Именно о классическом Паскале и идет речь. Для конца 60-х начала 70-х это был хороший язык. Со своей красотой. Когда я переходил на С (не С++ а именно структурный С) единственный плюс у С — простота доступа к железу. Читабельность по сравнению с Паскалем — нулевая.
Если бы ты сказал что Паскаль — устарел, я бы понял. Но хаить его сейчас — это топтаться по пеплу весьма уважаемого человека, который при жизни очень много хорошего очень многим людям сделал.
Re[10]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 30.08.07 20:39
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>ты просто считаешь само собой разумеющимся уровень языкостроения, достигнутый в 80-е годы. так вот Вирт как раз один из тех гигантов, которые построили эту индустрию. его линия языков, начиная с algol-w, внесла многие идеи, о порисхождении которых ты просто никогда не задумывался


K>Мда, вообще-то я увлёкся с провокациями против Вирта. Ладно, ваша взяла, заслужил он премию Тьюринга, только, ИМХО, формулировку они странную запустили. Да, в плане языкостроения он сделал что-то в 70-е годы. Но вот с полезностью Модулы или Оберона не соглашусь — это уже ближе к 80-м и уровень языкострояния вполне достиг . Да и Паскаль можно рассматривать сейчас лишь как ископаемое, бывшее чем-то выдающемся в 70-е. Кроме того, мне всегда казалось, что Паскаль сыграл примерно такую же роль, как Алгол, т.е. продвинул мысль, а вот на практике не нашедший применения (или я не прав?)


в 80-е паскаль и модула-2 были наряду с С и бейсиком наиболее популярными языками программирования. и по-моему, модула была наиболее качественным из них. в образовании паскаль был вообще абсолютно вседовлеющ. так что я бы сказал, что в 80-е именно Вирт был наиболее influence личностью — тогда его старые идеи вошли в массовый оборот. в 90-е у его идей была весьма широкая ниша Delphi (который кстати впитал модульную систему модулы)

прибавь к этому кучу менее популярных, даже исследовательских языков (от concurrent pascal до ады), которые основывались на элегантной базе, созданной паскалем или модулой

BZ>>к примеру, передача аргументов по значению и ссылке, модульная структура программы с отделением спецификации от реализации, enums, case records, pointers


K>С выделенным могу поспорить. Первого в Паскале не было, а появилось лишь в Модуле, но к тому времени это было новшеством.


я говорю про идеи Вирта, а не только Паскаль

>Второе — сомнительное удовольствие; если оно и имеет ценность, то такую же, как и передача по имени в Алголе (т.е. Вирт показал, как делать не надо).


discriminated unions — сомниельное удовольстие??? достаточно сказать, что в ml-подобных языках это вообще единственный способ конструирования типов, и мне он очень нравится. скорее можно посетовать на отсутствие в паскале pattern matching
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 21:02
Оценка:
Здравствуйте, GlebZ, Вы писали:

K>>В необходимости аннотации типов?

GZ>На момент создания языка — альтернативой была только динамическая типизация.

Мы с человеком говорили не о моменте создания. Мы говорили о сегодняшнем дне.

K>>В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен?

GZ>Хочешь верь, а хочешь нет. goto в Паскале был.

Знаю. Но его использование не поощрялось. И использовать его было не удобно. А адекватных средств для его замены не было.

K>>В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"?

GZ>Зато был стандартный и эффективный массив. А эти структуры можно построить взяв любой учебник по алгоритмам. И это займет не более 10-20 минут. Такой же массив с помощью вышеописанных структур не сделаешь. Точнее сделать можно, но не таким же эффективным.

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

K>>В необходимости ручного освобождения памяти?

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

Это ты про Оберон что ли?

K>>В отсутствии поддержки динамического размера массивов?

GZ>Это еще зачем? Смотри пункт — с структурами данных типа "список", "множество", "словарь", "очередь"

А как же иначе?

K>>Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.

GZ>Именно о классическом Паскале и идет речь. Для конца 60-х начала 70-х это был хороший язык. Со своей красотой. Когда я переходил на С (не С++ а именно структурный С) единственный плюс у С — простота доступа к железу. Читабельность по сравнению с Паскалем — нулевая.

Это у кого читабельность нулевая? И почему это такой ничтожный и убогий C по своим возможностям на голову превосходил Паскаль и позволял-таки писать что-то реальное?

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


А я про что говорю? Повторяю, я говорил, что высказывание о красоте Паскаля сейчас — это нонсенс. Я не говорил, что он был плох для своего времени.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[9]: Посоветуйте литературу о культуре правильного структу
От: Klapaucius  
Дата: 30.08.07 21:03
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

K>>А Вы меня ни с кем не путаете? Где я Вирта критиковал, ссылочку можно?

BZ>"Но наполняет ли премия Тьюринга абсолютом высочайшего градуса все слова лауреата касающиеся IT? "

Фи... А почему именно Вирта? А не Робина Милнера, например? Или какого-нибудь другого лауреата? Так бы и сказали, что я беспардонно прошелся по личности Робина Милнера — меня бы даже совесть сильнее мучила.

Уж если фабриковать мне ложное обвинение в виртоненавистничестве — то лучше взять фразу про Магнуса Редькина. Тогда портки-нивидимки — это Pascal, кюлоты — Modula, а брюки — это Oberon. Смотри-ка — все сходится!
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[11]: Посоветуйте литературу о культуре правильного структ
От: Klapaucius  
Дата: 30.08.07 21:03
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

K>>Можете поискать по ключевым словам "Oberon" и "Сергей Губанов", но вообще я не рекомендую. Скучнейшее чтиво. Похоже на войну двадцати молотков с одним гвоздем.

BZ>а причём тут культ личности? вот если бы он был фанатом apl-360 и на этом основании говорил, что zonnon не может быть плохой вещью — это был бы культ. а так он фанатик конкретного языка.

Так у него логика была четкая: Оберон гениален потому, что его создал гениальный Вирт. А почему Вирт — гений? Да потому, что он создал такой гениальный язык, как Оберон.

BZ>>>я вообще не вижу никакого принятия его новых идей у широкой публики лет 20 уже

K>>Я тоже, тем не менее, я знаю людей которые видят все эти 20 лет непрерывное торжество его идей, причем в самом сердце мэйнстрима.
BZ>ну а мы тут при чём?

Вы — не причем. Не видел, чтобы Вы писали про то, что поднимать голос против лауреата премии Тьюринга — кощунство, которое, впрочем, вполне простительно другим лауреатам, и что критиковать Вирта может только тот, кто в 50 лет придумал Оберон — тоже не вы написали.

K>>Я, кстати, согласен с вашим утверждением о вкладе Вирта в этом
Автор: BulatZiganshin
Дата: 30.08.07
сообщении. Но не согласен с утверждением о том, что половина современных императивных языков C, а половина — Pascal-е подобные. Поэтому не поставил ни плюс, ни минус.

BZ>хорошо, скажу по-другому: языки, происходящие прямо или косвенно от паскаля, сейчас на втором месте по популярности, после проихсодящих от С. модула, ада, эйфель, delphi. в 80-х паскаль+модула по суммарному весу вероятно и вовсе были на первом месте

И все равно за уши притянуто, по моему. Почему они паскалеподобные, а не алголоподобные? АТД и параметрический полиморфизм разве Вирт придумал? Кроме того, ада, эйфель и дельфи находятся в коренном противоречии с идеями Вирта. Он про Java больше добрых слов написал, чем о всех этих "паскалеподобных" языках.
... << RSDN@Home 1.2.0 alpha rev. 726>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[11]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 30.08.07 21:12
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>в 80-е паскаль и модула-2 были наряду с С и бейсиком наиболее популярными языками программирования. и по-моему, модула была наиболее качественным из них. в образовании паскаль был вообще абсолютно вседовлеющ. так что я бы сказал, что в 80-е именно Вирт был наиболее influence личностью — тогда его старые идеи вошли в массовый оборот. в 90-е у его идей была весьма широкая ниша Delphi (который кстати впитал модульную систему модулы)


Сомневаюсь, что на выделенное сильно повлияли идеи Вирта. Насколько я знаю, Borland взялись за Паскаль как раз из-за конкуренции с MS, которые тогда занимались C++ и Бэйсиком. Да и к тому времени трудно было сказать, кто идеологический "папа" Delphi — Вирт, Керниган с Ричи, или Страуструп.

BZ>прибавь к этому кучу менее популярных, даже исследовательских языков (от concurrent pascal до ады), которые основывались на элегантной базе, созданной паскалем или модулой


А я на это смотрю так — Pascal, Ada, Eiffel — это всё потомки ALGOL. Вирт не выработал основополагающие концепции, а просто подшлифовал некоторые несуразности.

BZ>я говорю про идеи Вирта, а не только Паскаль


Это не было идеями Вирта. К 1978 году уже были языки с поддержкой модульности. Например, C.

BZ>discriminated unions — сомниельное удовольстие??? достаточно сказать, что в ml-подобных языках это вообще единственный способ конструирования типов, и мне он очень нравится. скорее можно посетовать на отсутствие в паскале pattern matching


case records имеет такое же отношение к algebraic types, как call-by-name к call-by-reference.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[4]: Посоветуйте литературу о культуре правильного структу
От: GlebZ Россия  
Дата: 30.08.07 22:39
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Мы с человеком говорили не о моменте создания. Мы говорили о сегодняшнем дне.

Вот именно это ты и не пояснил.

K>>>В ненависти к goto, при том, что нет каких-либо адекватный средств для того, чтобы goto был не нужен?

GZ>>Хочешь верь, а хочешь нет. goto в Паскале был.
K>Знаю. Но его использование не поощрялось. И использовать его было не удобно.
Использование не поощрялось только теоретически(и не только Виртом). Там полноценный goto (разве что не межпроцедурный).
K>А адекватных средств для его замены не было.
Как раз полный набор адекватности. while, for, repeat, if, функции (в том числе вложенные с замыканиями).

K>>>В отсутствии нормальной стандартной библиотеки со структурами данных типа "список", "множество", "словарь", "очередь"?

GZ>>Зато был стандартный и эффективный массив. А эти структуры можно построить взяв любой учебник по алгоритмам. И это займет не более 10-20 минут. Такой же массив с помощью вышеописанных структур не сделаешь. Точнее сделать можно, но не таким же эффективным.
K>У того массива была одна маленькая проблема — его размер задавался в compile-time, потому построение всех этих структур не всегда было возможно (а если и было возможно в каких-либо реализациях, то через немыслимые хаки).
Причем тут хаки? Для них достаточно наличия pointer и структуры. И то, и другое там было. Если очень хочется, можно и прибавить к этому массивы pointer'ов. Но пурги вроде копирования памяти в нем не было (только в Турбо). Кстати, почти каждый уважаемый компилятор еще в восемдесятых уже имел range checking опцию.
K>Да и как показала практика, подобные фундаментальные вещи лучше включать в стандарт языка, иначе плодится великое множество реализаций сомнительного качества.
Не соглашусь. Тогда надо было значительно более взвешенно подходить к производительности и требованиям к памяти. Значительно хуже было что в первых стандартах не было библиотек ввода-вывода файловых систем.

K>>>В необходимости ручного освобождения памяти?

GZ>>То что императивные языки обзавелись сборкой мусора, есть некоторая вина Паскаля. Одна версия Паскаля была первой в которую имплементировали сборку мусора. А сборку мусора не в каждый язык запихнешь.
K>Это ты про Оберон что ли?
Тут наврал. Немного напутал, посыпаю голову пеплом, и счас буду делать сипуку. Имелся ввиду конечно не Oberon, а UCSD. Что-то прогнал — GC он не имел.

K>>>В отсутствии поддержки динамического размера массивов?

GZ>>Это еще зачем? Смотри пункт — с структурами данных типа "список", "множество", "словарь", "очередь"
K>А как же иначе?
Да вот так.

K>>>Кстати, я говорю о классическом Паскале, а борландовские поделки и подавно нельзя назвать красивыми.

GZ>>Именно о классическом Паскале и идет речь. Для конца 60-х начала 70-х это был хороший язык. Со своей красотой. Когда я переходил на С (не С++ а именно структурный С) единственный плюс у С — простота доступа к железу. Читабельность по сравнению с Паскалем — нулевая.

K>Это у кого читабельность нулевая? И почему это такой ничтожный и убогий C по своим возможностям на голову превосходил Паскаль и позволял-таки писать что-то реальное?

Даже в те времена С — уже считался низкоуровневым злом но с отличной производительностью. А на Паскале много писали (и даже еще до Турбо).

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

K>А я про что говорю? Повторяю, я говорил, что высказывание о красоте Паскаля сейчас — это нонсенс. Я не говорил, что он был плох для своего времени.
Плохо пояснил.
Re[12]: Посоветуйте литературу о культуре правильного структ
От: AVC Россия  
Дата: 31.08.07 01:13
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>А я на это смотрю так — Pascal, Ada, Eiffel — это всё потомки ALGOL. Вирт не выработал основополагающие концепции, а просто подшлифовал некоторые несуразности.


Такие мелкие несуразности как отсутствие записей, типизированных указателей, оператора case (правда, все перечисленное придумал Хоар), символьного типа, сборки мусора, модульности, безопасности типов и еще какой-то ерунды.
А так — Алгол.
А если бы еще фигурные скобки вместо begin и end — был бы Си. Жаль, Вирт не догадался.

K>Это не было идеями Вирта. К 1978 году уже были языки с поддержкой модульности. Например, C.


Или, например, Фортран. Тоже был модульный язык.

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[12]: Посоветуйте литературу о культуре правильного структ
От: EvilChild Ниоткуда  
Дата: 31.08.07 04:37
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Чё-то не вижу минуса. Надо исправить.

Ок. На самом деле я поставил + ответу на твоё сообщение.

K>И вот ещё что: прежде, чем рассуждать о ничтожности моего сообщения, почитай сообщение, на которое я отвечал, чтобы хоть стало понятно, почему я допустил подобное высказываение.

Прежде чем рекомендовать мне прочитать это убедись, что я этого ещё не сделал.
now playing: Implex — PI
Re[5]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 31.08.07 05:55
Оценка:
Здравствуйте, GlebZ, Вы писали:

K>>Мы с человеком говорили не о моменте создания. Мы говорили о сегодняшнем дне.

GZ>Вот именно это ты и не пояснил.

Неужели этого не было ясно из контекста разговора? Человек здесь и сейчас решил искать красоту в Паскале. А я пояснил, почему здесь и сейчас этого делать неуместно.

GZ>Как раз полный набор адекватности. while, for, repeat, if, функции (в том числе вложенные с замыканиями).


Как раз while/repeat — не есть адекватная замена goto, а boolean флаги/if'ы — это костыли, а не адекватная замена.

GZ>Причем тут хаки? Для них достаточно наличия pointer и структуры. И то, и другое там было. Если очень хочется, можно и прибавить к этому массивы pointer'ов. Но пурги вроде копирования памяти в нем не было (только в Турбо). Кстати, почти каждый уважаемый компилятор еще в восемдесятых уже имел range checking опцию.


А ты поясни, как можно сделать структуру данных, аналогичную vector из STL, чтобы время доступа по индексу было O(1). Я помню, делал что-то подобное в Turbo Pascal, но это был хак, использующий навороты TP, а на общепаскале такого было не достичь. Аналогично, map и set для данных, для которых проще вычислить хэш-код, чем постоянно сравнивать.

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

GZ>Не соглашусь. Тогда надо было значительно более взвешенно подходить к производительности и требованиям к памяти. Значительно хуже было что в первых стандартах не было библиотек ввода-вывода файловых систем.

Я говорил про тогда.

K>>Это у кого читабельность нулевая? И почему это такой ничтожный и убогий C по своим возможностям на голову превосходил Паскаль и позволял-таки писать что-то реальное?

GZ>Даже в те времена С — уже считался низкоуровневым злом но с отличной производительностью. А на Паскале много писали (и даже еще до Турбо).

Вот наверное Вирт тогда C и считал низкоуровневым злом.

K>>А я про что говорю? Повторяю, я говорил, что высказывание о красоте Паскаля сейчас — это нонсенс. Я не говорил, что он был плох для своего времени.

GZ>Плохо пояснил.

Ой, всё бы вам разжевать да на тарелочку положить
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[12]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 31.08.07 14:58
Оценка:
K>Сомневаюсь, что на выделенное сильно повлияли идеи Вирта. Насколько я знаю, Borland взялись за Паскаль как раз из-за конкуренции с MS, которые тогда занимались C++ и Бэйсиком.

в 83-м году? паскаль в 80-е стал популярен вероятно потому, что уже появилось много народу, которые его изучали в вузе, и он по размеру как раз влезал в тогдашние персоналки. ms pascal тоже был

>Да и к тому времени трудно было сказать, кто идеологический "папа" Delphi — Вирт, Керниган с Ричи, или Страуструп.


авторы c/c++ как раз отношения к этому не имеют. динамический ООП — это линия смолток — objc — маковский object pascal

BZ>>прибавь к этому кучу менее популярных, даже исследовательских языков (от concurrent pascal до ады), которые основывались на элегантной базе, созданной паскалем или модулой


K>А я на это смотрю так — Pascal, Ada, Eiffel — это всё потомки ALGOL. Вирт не выработал основополагающие концепции, а просто подшлифовал некоторые несуразности.


авторы ООП языков после симулы тоже только подшлифовывали несуразности?


BZ>>я говорю про идеи Вирта, а не только Паскаль


K>Это не было идеями Вирта. К 1978 году уже были языки с поддержкой модульности. Например, C.


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

BZ>>discriminated unions — сомниельное удовольстие??? достаточно сказать, что в ml-подобных языках это вообще единственный способ конструирования типов, и мне он очень нравится. скорее можно посетовать на отсутствие в паскале pattern matching


K>case records имеет такое же отношение к algebraic types, как call-by-name к call-by-reference.


это одинаковые по выразительной мощи концепции
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: Посоветуйте литературу о культуре правильного структу
От: _FRED_ Черногория
Дата: 31.08.07 16:09
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>В настоящее время "культурным" кодом может считаться только тот, который проще сопровождать и рефакторить... Вся остальная "культура" — в сад до тех пор, пока заказчик доволен...


_FR>> Понятие "простоты" кода сильно зависит от культуры (программисткой, в частности) оценивающего. Поэтому то так, то сяк: всё сводится к одному

LVV>Не все так просто... Понятие "простоты" в данном случае можно подвергнуть объективному измерению — различными метриками ПО... Вот вам и тема для исследований... И для диссера, между прочим...

Я ещё могу поверить в метрики, оценивающие синтаксис. Но декомпозицию, баги third-party (которые приходится обходить "у себя") и прочее "космическое"… Было бы несомненно очень здорово :о)
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Посоветуйте литературу о культуре правильного структу
От: anton_t Россия  
Дата: 01.09.07 04:38
Оценка:
Здравствуйте, geniepro, Вы писали:

G>Здравствуйте, konsoletyper, Вы писали:


k>> Но вообще, Вирта поругать по поводу и без повода — для меня святое дело .


G>А по-моему, Вы получите моральное право ругать Вирта только когда получите премию Тьюринга...


Критиковать может каждый каждого без всяких премий. Главное аргументированно и без рукоприкладства.
Re[6]: Посоветуйте литературу о культуре правильного структу
От: anton_t Россия  
Дата: 01.09.07 04:57
Оценка:
Здравствуйте, no4, Вы писали:

no4>Здравствуйте, anton_t, Вы писали:



no4>>>Согласен. "Лучше безобразно, но единообразно", как любил говаривать подполковник Схаба


_>>Это зависит от степени формальности проекта. Оптимальная степень формальности для разных проектов может быть разной. Об этом хорошо написано в "Совершенном коде", про который в этой теме уже писали.


no4>Я думаю, по крайней мере, форматирование кода и система именования должна быть общей вне зависимости от степени формализации. Желательно даже общей для данной технологии.


no4>Просто чтобы сформировать общий язык


Общий язык — это C#, Java или С++. А форматирование — вопрос предпочтений. Тем более, если есть достаточно чёткие границы того, кто какой частью кодоа владеет.
Re[3]: Посоветуйте литературу о культуре правильного структу
От: geniepro http://geniepro.livejournal.com/
Дата: 01.09.07 10:47
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ> Но хаить его сейчас — это топтаться по пеплу весьма уважаемого человека, который при жизни очень много хорошего очень многим людям сделал.


Э, стоп-стоп-стоп! Это когда же Вирт успел умереть-то???
Вирт скоро выложит описание Оберона-07, где он пошёл ещё дальше в сторону упрощения языка...
Re[11]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 01.09.07 13:08
Оценка:
Здравствуйте, geniepro, Вы писали:

G>Вот уж не знал, что у меня есть культ личности Вирта, при всём моём довольно скептическом отношении к обероновскому семейству, особенно к последнему Оберону-07... :о)) Вирт явно черезчур увлёкся приближением Оберона к Си...


Вот и пришли... Тогда не совсем понятно, с чего начался спор. Ты показал готовность ругать Вирта за Оберон. Я тоже под своим предложением, что готов ругать Вирта, подразумевал именно Оберон (на самом деле, ещё и за Модулу-2). По поводу Паскаля и Книги я против Вирта ничего не имею — для своего времени это было неплохо (хотя я на форуме увидел тенденцию к переоценке его заслуг в этом смысле). Если я и высказываюсь против Паскаля, то в контексте сегодняшеного времени, в том смысле, что не стоит в поисках красоты и логичности смореть в такое далекое прошлое, есть ведь и настоящее...

Offtop: а к чему ты хотел бы, чтобы Вирт приближал Оберон? Я не думаю, что он приблизил бы его к Haskell или Nemerle, потому и ругаю.

G>Но когда Вирта сравнивают с Гитлером, как это сделал konsoletyper... Мда, любые аргументы тут будут явно бессильными...


Пока не глянул на ответ Klapaucius'а, даже и не понял, о чём это ты.

Я его сравнил так же со Сталином и Биллом Гейтсом. Это был наглый сарказм. Какая взаимосвязь может быть между критикой Гитлера и тем, сколько критик загубил душ? Вот я и привёл пример фразы, которая, по-моему, настолько же логична, насколько и твоя.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[4]: Посоветуйте литературу о культуре правильного структу
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 01.09.07 13:08
Оценка:
Здравствуйте, geniepro, Вы писали:

G>Вирт скоро выложит описание Оберона-07, где он пошёл ещё дальше в сторону упрощения языка...


А он ещё возмущается по поводу мирового заговора, что его язык не используется столь же массово, сколько Java. Он не думал, что чтобы изменить ситуацию, надо пойти в сторону усложенения языка?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[13]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 01.09.07 19:44
Оценка:
Здравствуйте, geniepro, Вы писали:

Ko>> Вот и пришли... Тогда не совсем понятно, с чего начался спор. Ты показал готовность ругать Вирта за Оберон.


G>Одно маленькое "но". Я не ругаю Вирта.


А что в твоём понимании "ругать Вирта"? Обязательно кричать на него с матюками и приклинать всех его родственников?

G>Вирт имеет своё представление об идеальном императивном языке и последовательно идёт к нему вот уже лет тридцать.


Что-то его представления лет на 20 отстали от жизни. А к практике вообще почти перестали хоть как-то относиться. Да и нет тут отностительности в плане императивный/функциональный. ФЯ — оно однозначно круче. Я имею в виду не программирование без побочных эффектов, а такие штуковины, как кортежи, замыкания, вывод типов, паттерн-матчинг, сворачивание концевой рекурсии и т.д. — фичи, традиционно присущие ФЯ. Михаль Москаль, которому что-то никто премию Тьюринга, сумел эти фичи запихнуть в императивный язык, а его друган туда ещё и метапрограммирование приделал.

G>Я имею другое представление о таком языке, мне Обероны не очень нравятся. Ну и где я его ругаю?

G>Си мне нравится ещё меньше, и что, я ругаю K&R?

Да, вот это ты сейчас и делаешь.

Ko>> Я его сравнил так же со Сталином и Биллом Гейтсом. Это был наглый сарказм. Какая взаимосвязь может быть между критикой Гитлера и тем, сколько критик загубил душ? Вот я и привёл пример фразы, которая, по-моему, настолько же логична, насколько и твоя.


G>Когда кого-то ставят в один ряд с другими людьми, то фактически производят сравнение с ними.


Это откуда следует. И почему это ты решил, что я Вирта в один ряд с Гитлером поставил. Ты бы повнимательнее читал то, что тебе пишут.

G>Поставив в один ряд Вирта и Гитлера, konsoletyper, имхо, преследовал целью очернить Вирта. Разве не так?


... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[15]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 02.09.07 06:25
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Хм. Что то мне подсказывает, что ни одна из современных парадигм не является "однозначно круче".


Круче, когда одна язык пользуется преимуществами нескольких парадигм. Я это имел в виду.

AVK>Это не есть функциональное программирование. Все эти фичи есть или могут быть в императивных языках.


Да, это не есть ФП. Эти фичи просто традиционно были характерны для ФЯ, а такие товарищи, как Вирт, прохлопали их, потому они только недавно стали появляться в ИЯ.

AVK>Во-первых совсем не очевидно, что база Nemerle это императивный язык, во-вторых замыкания были еще в C# 2, а уж вывод типов в императивных языках я даже затрудняюсь вспомнить когда появился.


На Nemerle можно писать и как на ФЯ и как на ИЯ (а можно сразу и так и так). Замыкания — это единичный случай, я же говорил про все фичи. Про вывод типов — вот это интересно. Где это он был вне системы типов Хиндли-Милнера?
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[15]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 02.09.07 06:48
Оценка:
AVK>Во-первых совсем не очевидно, что база Nemerle это императивный язык, во-вторых замыкания были еще в C# 2, а уж вывод типов в императивных языках я даже затрудняюсь вспомнить когда появился.

приведи примеры таких языков
Люди, я люблю вас! Будьте бдительны!!!
Re[16]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.07 09:25
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Да, это не есть ФП. Эти фичи просто традиционно были характерны для ФЯ, а такие товарищи, как Вирт, прохлопали их, потому они только недавно стали появляться в ИЯ.


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

K>На Nemerle можно писать и как на ФЯ и как на ИЯ (а можно сразу и так и так).


Ну и что? На OCAML тоже можно.

K>Замыкания — это единичный случай, я же говорил про все фичи.


Из всех фич, что ты перечислил, к ФЯ непостредственно имеет отношение только хвостовая рекурсия, так как вызвана отсутствием mutable переменных.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[16]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.07 09:25
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>приведи примеры таких языков


С++
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re: Посоветуйте литературу о культуре правильного структурир
От: minorlogic Украина  
Дата: 02.09.07 10:40
Оценка:
Для начала если вы не читали Code Complete то обязательно к ознакомлению.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[14]: Посоветуйте литературу о культуре правильного структ
От: geniepro http://geniepro.livejournal.com/
Дата: 02.09.07 11:18
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K> Круче, когда одна язык пользуется преимуществами нескольких парадигм. Я это имел в виду.


Это очень спорный момент... Лисп так и не стал широко популярным, а С++ вапще ужас-монстр...
Неизвестно, какая судьба постигнет Немерле — слишком молод ещё этот язык... Его вполне могут довести до монструозности С++, и так он и останется эзотерикой, как Лисп...

K> ФЯ — оно однозначно круче. Я имею в виду не программирование без побочных эффектов, а такие штуковины, как кортежи, замыкания, вывод типов, паттерн-матчинг, сворачивание концевой рекурсии и т.д. — фичи, традиционно присущие ФЯ.


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

K> Михаль Москаль, которому что-то никто премию Тьюринга, сумел эти фичи запихнуть в императивный язык, а его друган туда ещё и метапрограммирование приделал.


K> На Nemerle можно писать и как на ФЯ и как на ИЯ (а можно сразу и так и так).


Ну и что тут нового? В чём тут особая заслуга Москаля и его другана?
Всё это было ещё в Лиспах десятки лет тому назад. Лисп вполне себе императивен...
Даже в Хаскелле легко "писать и как на ФЯ и как на ИЯ (а можно сразу и так и так)", недаром Пейтон Джонс в своей недавней презентации в OSCON'е прямо так и заявил — "Хаскелл — прекраснейший в мире императивный язык". И я с ним согласен... :о))
Да и, как тут правильно заметили, в С++ это тоже не вчера появилось...


G>> Я имею другое представление о таком языке, мне Обероны не очень нравятся. Ну и где я его ругаю?

G>> Си мне нравится ещё меньше, и что, я ругаю K&R?

K> Да, вот это ты сейчас и делаешь.


Потрясающее умозаключение...
Re[17]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 02.09.07 12:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

BZ>>приведи примеры таких языков


AVK>С++


... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[15]: Посоветуйте литературу о культуре правильного структ
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 02.09.07 12:18
Оценка:
Здравствуйте, geniepro, Вы писали:

K>> ФЯ — оно однозначно круче. Я имею в виду не программирование без побочных эффектов, а такие штуковины, как кортежи, замыкания, вывод типов, паттерн-матчинг, сворачивание концевой рекурсии и т.д. — фичи, традиционно присущие ФЯ.


G>Вапще-то основа ФП — лямбда-исчисление, которое не нуждается в мутабельном состоянии. Так что ФП с побочными эффектами — оксюморон. Отсутствие побочных эффектов — неизбежно в ФП...


Я не говорю про ФП. Я говорю про фичи, которые исторически были присущи ФЯ. Но они не есть отличительная черта именно ФЯ.

K>> На Nemerle можно писать и как на ФЯ и как на ИЯ (а можно сразу и так и так).


G>Ну и что тут нового? В чём тут особая заслуга Москаля и его другана?


Например, в том, что в традиционно ООП-ной системе типов смогли реализовать вывод типов (Хиндли-Милнер не очень хорошо сочетается с традиционным ООП). В том, что сумели сделать метапрораммирование с человеческим лицом в статически-типизированных языках (хотя и не впервые, но и до Паскаля был Алгол).

G>Всё это было ещё в Лиспах десятки лет тому назад. Лисп вполне себе императивен...


Лисп — это вообще незнамо что.
... << RSDN@Home 1.2.0 alpha rev. 710>>
Re[18]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.07 15:20
Оценка:
Здравствуйте, konsoletyper, Вы писали:

AVK>>С++


K>


Типы аргументов шаблонов выводятся. В C# 2.0, кстати, тоже в некоторых случаях выводятся. А вобще, как справедливо в свое время заметил Влад, 2 + 2, которое имеет свой тип в большинстве строготипизированных языков без явного указания типов, это тоже вывод типов, только очень примитивный.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[17]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 02.09.07 15:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, BulatZiganshin, Вы писали:


BZ>>приведи примеры таких языков


AVK>С++


только один?
Люди, я люблю вас! Будьте бдительны!!!
Re[19]: Посоветуйте литературу о культуре правильного структ
От: EvilChild Ниоткуда  
Дата: 02.09.07 16:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Типы аргументов шаблонов выводятся. В C# 2.0, кстати, тоже в некоторых случаях выводятся. А вобще, как справедливо в свое время заметил Влад, 2 + 2, которое имеет свой тип в большинстве строготипизированных языков без явного указания типов, это тоже вывод типов, только очень примитивный.

Рассуждая таким образом можно туда ещё перегрузку функций записать?
now playing: SCSI-9 — Sweets and Love
Re[20]: Посоветуйте литературу о культуре правильного структ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.09.07 18:54
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Рассуждая таким образом можно туда ещё перегрузку функций записать?


В принципе да.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[21]: Посоветуйте литературу о культуре правильного структ
От: BulatZiganshin  
Дата: 03.09.07 07:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, EvilChild, Вы писали:


EC>>Рассуждая таким образом можно туда ещё перегрузку функций записать?


AVK>В принципе да.


mov [si], ax
транслируется как
mov word ptr [si], ax

mov [si], al
транслируется как
mov byte ptr [si], al
Люди, я люблю вас! Будьте бдительны!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.