Re[7]: Goto's are evil?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.12.05 16:36
Оценка:
Здравствуйте, reductor, Вы писали:

R>А вот благодаря скандальности создателя и захватил.

R>Это у него не в первый раз такое.

R>Чем громче скандал, тем шире охват


Возможно. Но почему-то мне кажется, что тут съиграли ставки монстров типа IBM-а. Вот и не ясно почему они не поставили на куда более продуманные в архитектурном плане решения.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Goto's are evil?
От: raskin Россия  
Дата: 04.12.05 17:14
Оценка:
VladD2 wrote:
> R>А вот благодаря скандальности создателя и захватил.
> R>Это у него не в первый раз такое.
>
> R>Чем громче скандал, тем шире охват
>
> Возможно. Но почему-то мне кажется, что тут съиграли ставки монстров
> типа IBM-а. Вот и не ясно почему они не поставили на куда более
> продуманные в архитектурном плане решения.

До них сделал ставку GNU Project. *BSD имеют (по мнению FSF и GNU) почти
Public Domain лицензию и имеют на то какие-то идеологические причины.
Линус к тому моменту сделал ядро, которое хотя бы примерно работало, а
лицензия была расплывчатая. Его смогли убедить поменять её на GPL, после
чего стали раскручивать ядро, накладывая на него GNU OS — получилась
почти работоспособная система, которая вся под GPL. С FreeBSD сейчас всё
становится интереснее — там получается на ядре FreeBSD рядом стоят
полная BSD-licensed OS и много GPL ПО — того же, что и под GNU/Linux,
включая gcc, gmake...
Posted via RSDN NNTP Server 2.0
Re[3]: Goto's are evil?
От: Кодт Россия  
Дата: 04.12.05 18:13
Оценка:
Здравствуйте, reductor, Вы писали:

R>Так это ж известно, главное — не мотивировать свои слова, а побольше харизмы.

R>Признавать, а тем более исправлять свои ошибки — это для лузеров и лохов.
R>Устанавливают правила и пишут историю победители, а как оно там на самом деле — никого не интересует

Вот поэтому в правилах и истории — столько неисправленных, а тем более — непризнанных багов!
Перекуём баги на фичи!
Re[13]: Goto's are evil?
От: Кодт Россия  
Дата: 04.12.05 18:29
Оценка: +1
Здравствуйте, Pzz, Вы писали:

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

Pzz>собралась толпа программистов, и обсуждеает, как им выкрутиться из
Pzz>очередной нетривиальной проблемы, которую поставил перед ними C++. Как
Pzz>эта проблема содержательно соотносилась с решаемой задачей, я так и не
Pzz>понял...

Не факт, что это язык поставил проблему. Может быть, проблема была в архитектуре, а специфика мировосприятия программистов перевела её на рельсы кодирования.
Перекуём баги на фичи!
Re[15]: Goto's are evil?
От: AVC Россия  
Дата: 04.12.05 20:44
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:


E>>А теперь представь, если бы ты так функцию обозвал: skip_to_highest_1bit(...) -- ни комментариев, ни места лишнего, ни оверхеда в run-time.

DEA>Я не понимаю, почему я должен выносить этот кусок в отдельную функцию.
DEA>Он (а)он прост и очевиден (для тех кто знает как работать с битами, конечно) (б)используется только в одном месте (б)не требует введения дополнительных переменных. (с)логически является частью этого и только этого алгоритма.
DEA>Так, что, поподробнее: какие преимущества?

E>>Это спорный вопрос. Меня лично функции не напрягают. Особенно количество их вызовов. А вот направление goto -- очень даже.

DEA>Еще раз: функция это ОТДЕЛЬНАЯ, НЕЗАВИСИМАЯ сущность. Она "рвет контекст", и вызывает сомнения в своем предназначении. А еще, поселившись в исходнике, она начинает ЖИТЬ САМА ПО СЕБЕ.

DEA>Это означает, что в развесистом исходнике, какой-то совершенно левый индус, которого ты и в лицо не видел, решит задействовать ТВОЮ функцию для СВОИХ целей. Естественно, он, как "грамотный программист" обьявит ее в своем гадюшнике. А потом ТЫ (через полгода), маленько подправив СВОЮ функцию, с удивлением обнаруживаешь что ты(именно ТЫ!!!) ЗАВАЛИЛ БИЛД! Или на тебя свалилась куча БАГОВ.


DEA>Итог: полпачки спаленных сигарет, пятиминутка ненависти к индусам и ДЕНЬ РАБОТЫ.

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

Не понял связи истории с "левым индусом" с данным случаем. (Хотя сама история весьма поучительна.)
Разве нельзя объявить функцию, которая используется только в данном файле, как static?
Никаких проблем с индусами возникнуть не должно. Им эта функция больше недоступна.
Но рассмотрим историю с индусами саму по себе.
Будем исходить из того, что функция должна быть доступна извне.
"Малограмотный" индус скопировал себе старый прототип функции, а мы его потом (после того, как передали индусам?) "поправили". И тут вот и случулась эта неприятность...
Вот на такой случай и существуют модульные языки. И здесь огромное преимущество раздельной компиляции перед независимой.
Они исключают такие ситуации напрочь.
Так что "билд завалила" не только неосторожность программиста, забывшего на минуту о существовании индусов, но его "завалили" также, ИМХО, дефекты языка Си++.

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

Хоар
Re[13]: Goto's are evil?
От: Кодт Россия  
Дата: 04.12.05 21:14
Оценка: 9 (3)
Здравствуйте, All

Я вот почитал-почитал... и что подумал.

1. Когда собеседники меряются своими списками заслуг — это выглядит глупо, однако объяснимо.
Но когда стали выяснять — у кого из авторитетов рейтинг толще (Вирт vs Ульман vs Кодд vs Милнер)... только руками развести.

2. Необходимо учесть, что развитие программирования, CS, IT — это не только научные изыскания и не только технические разработки и не только коммерческие удачи. Это ещё просветительство и популяризация.
Так вот, что бы там Ульман не сделал другого — его (совместно с Ахо) серия книг по компиляторам уже выбила его имя на скрижалях CS.
Какими бы странными и даже ущербными не были языки Паскаль..Оберон, каким бы банальным не казалось "Программы=алгоритмы+структуры" — но своё дело Никлаус Вирт сделал. Без него — советские студенты начинали бы изучать программирование с фортрана (и фортраном же заканчивали).
Эти и другие люди прославились тогда, когда они о своей славе не заботились (шпилька в адрес Вирта нынешнего); упрекать их в том, что она не заслужена, — несерьёзно. Заслужена.
Если кому-то кажется, что Кодд обделён славой — вытаскивайте его заслуги на свет, сделайте ту работу, которую его современники не доделали. Зачем Коддом чморить Ульмана?

Я не хочу упрекнуть никого адресно. Это просто паттерн такой (нет, пожалуй, гештальт; да поди ж их разбери), в котором мы действуем.
(И в обсуждении политики то же самое: наши козлы-политики против ваших политиков-козлов — у наших борода длиннее. Либо: все козлы, но это уже крайность).
Перекуём баги на фичи!
Re[14]: Goto's are evil?
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.12.05 22:50
Оценка:
Кодт wrote:
>
> Pzz>Я как-то был поражен, зайдя в знакомую контору, и обнаружив, что там
> Pzz>собралась толпа программистов, и обсуждеает, как им выкрутиться из
> Pzz>очередной нетривиальной проблемы, которую поставил перед ними C++. Как
> Pzz>эта проблема содержательно соотносилась с решаемой задачей, я так и не
> Pzz>понял...
>
> Не факт, что это язык поставил проблему. Может быть, проблема была в
> архитектуре, а специфика мировосприятия программистов перевела её на
> рельсы кодирования.

C++, по-моему, не прощает ошибок в проектировании интерфейсов. Причем о
самой ошибке приходится узнавать, когда уже много чего понаписано...
Posted via RSDN NNTP Server 2.0
Re[22]: Goto's are evil?
От: Кодт Россия  
Дата: 04.12.05 22:52
Оценка:
Здравствуйте, eao197, Вы писали:

E>Жалко только, что в универе на изучение Oberon-ов, Smalltalk-ов, Lisp-ов и пр. было гораздо больше времени, чем сейчас, да и новые знания всасывались со страшной силой. А сейчас на это время выкроить тяжело, иногда не успеваешь изучать то, что по работе нужно.

E>Вот и vdimas недавно сказал что-то вроде: "Где бы время найти, чтобы с Haskell-ем познакомиться".

Да за ради бога!
Вон, нынче пара этюдов нарисовалась:
получить сортированную последовательность сумм всех комбинаций входного массива
Автор: Mamut
Дата: 03.12.05
(ленивость хаскелла рулит)
посчитать количество раскрасок красно-чёрного дерева
Автор: Olegator
Дата: 28.11.05
(хаскелл не является требованием, но мне почему-то кажется, что он — самый подходящий)
Перекуём баги на фичи!
Re[16]: Goto's are evil?
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.12.05 22:52
Оценка: :)
AVC wrote:
>
> Не понял связи истории с "левым индусом" с данным случаем. (Хотя сама
> история весьма поучительна.)
> Разве нельзя объявить функцию, которая используется только в данном
> файле, как static?

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

Индусы, они очень хитрый и изворотливый народец. Особенно в плане того,
чтобы двумя-тремя простыми правками изуродовать программу до
неузнаваемости...
Posted via RSDN NNTP Server 2.0
Re[24]: Goto's are evil?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.12.05 04:00
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Паузы GC особенно хорошо заметны при работе с IDEA или ReShaper на

C>больших проектах.

Насчет решарпера — ерунда. Сборку 0 и 1 поколения ты в принципе заметить не можешь, а частоту сборки 2 поколения можешь поглядеть в перфмоне.
... << RSDN@Home 1.2.0 alpha rev. 620 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[8]: Goto's are evil?
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.12.05 06:05
Оценка:
Здравствуйте, GlebZ, Вы писали:
GZ>Билли — глава корпорации, но не непосредственный создатель продуктов. А среди тех корпораций, которые наиболее повлияли на CS, правильнее назвать IBM. И я думаю, по этому показателю вряд ли кто их переплюнет.
Ну ребята, так не честно. Сравнивать вклад компании с историей в 113 лет в общем-то, не с чем. Возможно? через 300 лет про IBM в учебниках будет написано что-то вроде "небольшая компания эпохи становления Google".
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Goto's are evil?
От: minorlogic Украина  
Дата: 05.12.05 08:34
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

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


M>>Я тогда не понял , что это ваш код ...

DEA>Сер, если вы все понимаете со второго раза.... У меня же for безусловный

M>>лень искать , гдет в этой ветке про return писал.

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

M>>это заметно, но надо опять вверх лезть и смотреть инициализацию переменных цикла

DEA>Если у вас в памяти помещаются меньше чем 2(две) строчки кода, то, как вы впомните про лидирующий if в начале блока???? Или будете скроллиться как челнок от закрывающей скобки к открывающей и обратно? Или "любой блок кода длинее чем 2 строчки" тоже масдай и должен искореняться?

DEA>Если так, то не проблема — я хоть всю программу в одну строчку помещу — все поместится — благо в C/С++ точка с запятой есть — не питон, чай.


M>>Чуть выше уже привели пример кода рещшающий вопрос , и выглядит на порядок красивее.

DEA>Этот пример привели не вы. Так что, и разговаривать об этом примере — не с вами.

Я кажется обсуждал не свою личность (рад что она вам интерессна), а недостатки которые влекут использование goto. Если вы несогласны, сочувствую, но аргументов пока не слышал.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Нашел - Количество ссылок на публикации
От: Mamut Швеция http://dmitriid.com
Дата: 05.12.05 09:26
Оценка:
M>>Прохоже сейчас в универе Science, Technology and Society. Так вот, количество ссылок на публикации является удобным, но очень неточным критерием оценки вклада того или иного ученого в науку.

R>Конечно неточным. Что вообще может быть точным в таком вопросе.

A number of sociologists have attempted to refine citation analysis as a tool to evaluate the importance of particular publications, among other things. In a review of this work, David Edge[1] challenges the idea that citation analysis is a useful tool for studying scientifc communication

A core assumption of citation analysis is that citations represent influence. A citation is supposed to be a reference to a publication that provides important background information. This is an idealization... The scientific paper is typically an argument. Its citations, therefore, are vehicles for furthering its arguments, not necessarily records of influences[2]. Citations are biased toward the types of references that are useful in addressing intended audiences. Meanwhile, informal communication and information that does not need to be cited — or is even best not cited — is all left out of citations... Citation analysis is therefore a poor tool for studying communication and influence[3]

[1] Edge, David 1979: "Quantitative Measures of Communication in Science: A Critical Review". History of Science 17:102-34
[2] Gilbert, Nigel 1977: "Referencing a Persuasion" Social Studies of Science 7:113-22
[3] MacRoberts 1996: "Problems of Citation Analysis" Scientometrics 36:435-44

Цитировано по Sismondo, Sergio 2004: "Introduction to Science and Technology Studies":35

R>Но у вас есть точнее?


Увы, реального способа оценки нет, потому что любой способ оценки будет субъективен (theory-dependence of observation)


dmitriid.comGitHubLinkedIn
Re[9]: Goto's are evil?
От: GlebZ Россия  
Дата: 05.12.05 09:44
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну ребята, так не честно. Сравнивать вклад компании с историей в 113 лет в общем-то, не с чем. Возможно? через 300 лет про IBM в учебниках будет написано что-то вроде "небольшая компания эпохи становления Google".

Не-а. IBM как и Гагарин останутся в истории навсегда(пока существуют компьютеры). Они были первыми.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Goto's are evil?
От: GlebZ Россия  
Дата: 05.12.05 10:19
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>C++, по-моему, не прощает ошибок в проектировании интерфейсов. Причем о

Pzz>самой ошибке приходится узнавать, когда уже много чего понаписано...
Нет, не прощает ошибок хреновая голова. Да — стиль проектирования в C# и C++ разный. Но поубивать программу легко и там и там. Средств достаточно как для построения хорошего интерфейса, так и плохого.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Goto's are evil?
От: vdimas Россия  
Дата: 05.12.05 11:03
Оценка:
Здравствуйте, VladD2, Вы писали:

V>>Соответственно, в тех языках, где нет break, continue и return вполне можно можно использовать goto, если использовать ег ос той же "аккуратностью", какую мы получаем в случае break, continue, return.


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


х86-ассемблер — #авно полное, по сравнению со многими другими (Dec, MC68XXX, PICXX) но речь шла не об этом.

Но если в языке нет break, continue, return, то без goto порой получается тот самый синтаксический оверхед и лишняя "искусственная" запутанность кода.
Re[12]: Goto's are evil?
От: vdimas Россия  
Дата: 05.12.05 11:07
Оценка: 8 (2)
Здравствуйте, eao197, Вы писали:

V>>Иногда прикручиваются еще всякие скриптовые или специфические, типа Пролог, MatLab, Forth и т.д.


E>А зачем? Можно ли примеры?


Пролог — был как ядро в системе распознавания смысла текстов в одной тематической области. Обработка была на С++, связь по COM на VB, а интерфейс GUI на Дельфи.

Как раз пример использования каждого из тулов по-месту.

MatLab одно время использовал регулярно в вычислительных/моделирующих тулзах (когда плотно занимался цифровой электроникой)

Forth — одно время вообще не было приемлимых альтернатив в качестве скриптовых-динамических.
Re[8]: Goto's are evil?
От: reductor  
Дата: 05.12.05 11:22
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Но если в языке нет break, continue, return, то без goto порой получается тот самый синтаксический оверхед и лишняя "искусственная" запутанность кода.


А по-моему все наоборот становится понятнее ;)
Вот в ML и Haskell нет ни break ни return ни continue ни goto — ну по крайней мере в прямом смысле

И никакого синтаксического оверхеда :)
Re[9]: Goto's are evil?
От: Cyberax Марс  
Дата: 05.12.05 11:32
Оценка: :)
reductor wrote:

> V>Но если в языке нет break, continue, return, то без goto порой

> получается тот самый синтаксический оверхед и лишняя "искусственная"
> запутанность кода.
> Вот в ML и Haskell нет ни break ни return ни continue ни goto — ну по
> крайней мере в прямом смысле

Зато есть запутанность кода...

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[13]: Goto's are evil?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 05.12.05 11:34
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Пролог — был как ядро в системе распознавания смысла текстов в одной тематической области. Обработка была на С++, связь по COM на VB, а интерфейс GUI на Дельфи.


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

Хотя, возможно, там Prolog применялся не по месту, а как инструмент, которым очень хорошо владели основные разработчики.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.