Здравствуйте, reductor, Вы писали:
R>А вот благодаря скандальности создателя и захватил. R>Это у него не в первый раз такое.
R>Чем громче скандал, тем шире охват
Возможно. Но почему-то мне кажется, что тут съиграли ставки монстров типа IBM-а. Вот и не ясно почему они не поставили на куда более продуманные в архитектурном плане решения.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
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...
Здравствуйте, reductor, Вы писали:
R>Так это ж известно, главное — не мотивировать свои слова, а побольше харизмы. R>Признавать, а тем более исправлять свои ошибки — это для лузеров и лохов. R>Устанавливают правила и пишут историю победители, а как оно там на самом деле — никого не интересует
Вот поэтому в правилах и истории — столько неисправленных, а тем более — непризнанных багов!
Здравствуйте, Pzz, Вы писали:
Pzz>Я как-то был поражен, зайдя в знакомую контору, и обнаружив, что там Pzz>собралась толпа программистов, и обсуждеает, как им выкрутиться из Pzz>очередной нетривиальной проблемы, которую поставил перед ними C++. Как Pzz>эта проблема содержательно соотносилась с решаемой задачей, я так и не Pzz>понял...
Не факт, что это язык поставил проблему. Может быть, проблема была в архитектуре, а специфика мировосприятия программистов перевела её на рельсы кодирования.
E>>А теперь представь, если бы ты так функцию обозвал: skip_to_highest_1bit(...) -- ни комментариев, ни места лишнего, ни оверхеда в run-time. DEA>Я не понимаю, почему я должен выносить этот кусок в отдельную функцию. DEA>Он (а)он прост и очевиден (для тех кто знает как работать с битами, конечно) (б)используется только в одном месте (б)не требует введения дополнительных переменных. (с)логически является частью этого и только этого алгоритма. DEA>Так, что, поподробнее: какие преимущества?
E>>Это спорный вопрос. Меня лично функции не напрягают. Особенно количество их вызовов. А вот направление goto -- очень даже. DEA>Еще раз: функция это ОТДЕЛЬНАЯ, НЕЗАВИСИМАЯ сущность. Она "рвет контекст", и вызывает сомнения в своем предназначении. А еще, поселившись в исходнике, она начинает ЖИТЬ САМА ПО СЕБЕ.
DEA>Это означает, что в развесистом исходнике, какой-то совершенно левый индус, которого ты и в лицо не видел, решит задействовать ТВОЮ функцию для СВОИХ целей. Естественно, он, как "грамотный программист" обьявит ее в своем гадюшнике. А потом ТЫ (через полгода), маленько подправив СВОЮ функцию, с удивлением обнаруживаешь что ты(именно ТЫ!!!) ЗАВАЛИЛ БИЛД! Или на тебя свалилась куча БАГОВ.
DEA>Итог: полпачки спаленных сигарет, пятиминутка ненависти к индусам и ДЕНЬ РАБОТЫ. DEA>Хочу сказать, слава богу, это произошло не со мной. Но процесс наблюдал "вживую" и воспоминания о нем — самые тягостные.
Не понял связи истории с "левым индусом" с данным случаем. (Хотя сама история весьма поучительна.)
Разве нельзя объявить функцию, которая используется только в данном файле, как static?
Никаких проблем с индусами возникнуть не должно. Им эта функция больше недоступна.
Но рассмотрим историю с индусами саму по себе.
Будем исходить из того, что функция должна быть доступна извне.
"Малограмотный" индус скопировал себе старый прототип функции, а мы его потом (после того, как передали индусам?) "поправили". И тут вот и случулась эта неприятность...
Вот на такой случай и существуют модульные языки. И здесь огромное преимущество раздельной компиляции перед независимой.
Они исключают такие ситуации напрочь.
Так что "билд завалила" не только неосторожность программиста, забывшего на минуту о существовании индусов, но его "завалили" также, ИМХО, дефекты языка Си++.
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
1. Когда собеседники меряются своими списками заслуг — это выглядит глупо, однако объяснимо.
Но когда стали выяснять — у кого из авторитетов рейтинг толще (Вирт vs Ульман vs Кодд vs Милнер)... только руками развести.
2. Необходимо учесть, что развитие программирования, CS, IT — это не только научные изыскания и не только технические разработки и не только коммерческие удачи. Это ещё просветительство и популяризация.
Так вот, что бы там Ульман не сделал другого — его (совместно с Ахо) серия книг по компиляторам уже выбила его имя на скрижалях CS.
Какими бы странными и даже ущербными не были языки Паскаль..Оберон, каким бы банальным не казалось "Программы=алгоритмы+структуры" — но своё дело Никлаус Вирт сделал. Без него — советские студенты начинали бы изучать программирование с фортрана (и фортраном же заканчивали).
Эти и другие люди прославились тогда, когда они о своей славе не заботились (шпилька в адрес Вирта нынешнего); упрекать их в том, что она не заслужена, — несерьёзно. Заслужена.
Если кому-то кажется, что Кодд обделён славой — вытаскивайте его заслуги на свет, сделайте ту работу, которую его современники не доделали. Зачем Коддом чморить Ульмана?
Я не хочу упрекнуть никого адресно. Это просто паттерн такой (нет, пожалуй, гештальт; да поди ж их разбери), в котором мы действуем.
(И в обсуждении политики то же самое: наши козлы-политики против ваших политиков-козлов — у наших борода длиннее. Либо: все козлы, но это уже крайность).
Кодт wrote: > > Pzz>Я как-то был поражен, зайдя в знакомую контору, и обнаружив, что там > Pzz>собралась толпа программистов, и обсуждеает, как им выкрутиться из > Pzz>очередной нетривиальной проблемы, которую поставил перед ними C++. Как > Pzz>эта проблема содержательно соотносилась с решаемой задачей, я так и не > Pzz>понял... > > Не факт, что это язык поставил проблему. Может быть, проблема была в > архитектуре, а специфика мировосприятия программистов перевела её на > рельсы кодирования.
C++, по-моему, не прощает ошибок в проектировании интерфейсов. Причем о
самой ошибке приходится узнавать, когда уже много чего понаписано...
Здравствуйте, eao197, Вы писали:
E>Жалко только, что в универе на изучение Oberon-ов, Smalltalk-ов, Lisp-ов и пр. было гораздо больше времени, чем сейчас, да и новые знания всасывались со страшной силой. А сейчас на это время выкроить тяжело, иногда не успеваешь изучать то, что по работе нужно. E>Вот и vdimas недавно сказал что-то вроде: "Где бы время найти, чтобы с Haskell-ем познакомиться".
AVC wrote: > > Не понял связи истории с "левым индусом" с данным случаем. (Хотя сама > история весьма поучительна.) > Разве нельзя объявить функцию, которая используется только в данном > файле, как static?
А что, индусам что-то может помешать удалить слово static, и даже
добавить прототип функции в какой-нибудь хидер (а еще лучше — в свой
собственный сишник, и никому об этом не сказать).
Индусы, они очень хитрый и изворотливый народец. Особенно в плане того,
чтобы двумя-тремя простыми правками изуродовать программу до
неузнаваемости...
Здравствуйте, GlebZ, Вы писали: GZ>Билли — глава корпорации, но не непосредственный создатель продуктов. А среди тех корпораций, которые наиболее повлияли на CS, правильнее назвать IBM. И я думаю, по этому показателю вряд ли кто их переплюнет.
Ну ребята, так не честно. Сравнивать вклад компании с историей в 113 лет в общем-то, не с чем. Возможно? через 300 лет про IBM в учебниках будет написано что-то вроде "небольшая компания эпохи становления Google".
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>Здравствуйте, minorlogic, Вы писали:
M>>Я тогда не понял , что это ваш код ... DEA>Сер, если вы все понимаете со второго раза.... У меня же for безусловный
M>>лень искать , гдет в этой ветке про return писал. DEA>А мне, в свою очередь, тоже лень искать что вы где-то-там понаписали. В особенности, учитывая взвешенность и вудумчивость ваших понаписаний в этой ветке..
M>>это заметно, но надо опять вверх лезть и смотреть инициализацию переменных цикла DEA>Если у вас в памяти помещаются меньше чем 2(две) строчки кода, то, как вы впомните про лидирующий if в начале блока???? Или будете скроллиться как челнок от закрывающей скобки к открывающей и обратно? Или "любой блок кода длинее чем 2 строчки" тоже масдай и должен искореняться?
DEA>Если так, то не проблема — я хоть всю программу в одну строчку помещу — все поместится — благо в C/С++ точка с запятой есть — не питон, чай.
M>>Чуть выше уже привели пример кода рещшающий вопрос , и выглядит на порядок красивее. DEA>Этот пример привели не вы. Так что, и разговаривать об этом примере — не с вами.
Я кажется обсуждал не свою личность (рад что она вам интерессна), а недостатки которые влекут использование goto. Если вы несогласны, сочувствую, но аргументов пока не слышал.
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
Здравствуйте, Sinclair, Вы писали:
S>Ну ребята, так не честно. Сравнивать вклад компании с историей в 113 лет в общем-то, не с чем. Возможно? через 300 лет про IBM в учебниках будет написано что-то вроде "небольшая компания эпохи становления Google".
Не-а. IBM как и Гагарин останутся в истории навсегда(пока существуют компьютеры). Они были первыми.
Здравствуйте, Pzz, Вы писали:
Pzz>C++, по-моему, не прощает ошибок в проектировании интерфейсов. Причем о Pzz>самой ошибке приходится узнавать, когда уже много чего понаписано...
Нет, не прощает ошибок хреновая голова. Да — стиль проектирования в C# и C++ разный. Но поубивать программу легко и там и там. Средств достаточно как для построения хорошего интерфейса, так и плохого.
Здравствуйте, VladD2, Вы писали:
V>>Соответственно, в тех языках, где нет break, continue и return вполне можно можно использовать goto, если использовать ег ос той же "аккуратностью", какую мы получаем в случае break, continue, return.
VD>Да, да. Полностью согласенж. Если писать с должной акуратностью, то х86-ассемблер лучший язык программирования.
х86-ассемблер — #авно полное, по сравнению со многими другими (Dec, MC68XXX, PICXX) но речь шла не об этом.
Но если в языке нет break, continue, return, то без goto порой получается тот самый синтаксический оверхед и лишняя "искусственная" запутанность кода.
Здравствуйте, eao197, Вы писали:
V>>Иногда прикручиваются еще всякие скриптовые или специфические, типа Пролог, MatLab, Forth и т.д.
E>А зачем? Можно ли примеры?
Пролог — был как ядро в системе распознавания смысла текстов в одной тематической области. Обработка была на С++, связь по COM на VB, а интерфейс GUI на Дельфи.
Как раз пример использования каждого из тулов по-месту.
MatLab одно время использовал регулярно в вычислительных/моделирующих тулзах (когда плотно занимался цифровой электроникой)
Forth — одно время вообще не было приемлимых альтернатив в качестве скриптовых-динамических.
Здравствуйте, vdimas, Вы писали:
V>Но если в языке нет break, continue, return, то без goto порой получается тот самый синтаксический оверхед и лишняя "искусственная" запутанность кода.
А по-моему все наоборот становится понятнее ;)
Вот в ML и Haskell нет ни break ни return ни continue ни goto — ну по крайней мере в прямом смысле
reductor wrote:
> V>Но если в языке нет break, continue, return, то без goto порой > получается тот самый синтаксический оверхед и лишняя "искусственная" > запутанность кода. > Вот в ML и Haskell нет ни break ни return ни continue ни goto — ну по > крайней мере в прямом смысле
Здравствуйте, vdimas, Вы писали:
V>Пролог — был как ядро в системе распознавания смысла текстов в одной тематической области. Обработка была на С++, связь по COM на VB, а интерфейс GUI на Дельфи.
Мне как-то пришлось наблюдать за развитием нескольких систем, ядро которых было написано на Prolog-е, а внешние интерфейсы к различным устройствам и пр. -- на C++. После того, как Prolog-разработчики решили открыть свое дело и покинули тот колектив, одна система зачахла сама по себе, а вторая была полностью переписана на C++ и успешно продолжила свое существование.
Хотя, возможно, там Prolog применялся не по месту, а как инструмент, которым очень хорошо владели основные разработчики.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.