Re[3]: Ответ на вопросы
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.11.04 16:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>. А если два разных продукта используют одинаковый модуль?


Это называется повторное использование компонента. В этом состоит смысл компонентно ориентированного программирования — один модуль используется несколькими "проектами".
Re[4]: Ответ на вопросы
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.04 16:16
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

AVK>>. А если два разных продукта используют одинаковый модуль?


СГ>Это называется повторное использование компонента. В этом состоит смысл компонентно ориентированного программирования — один модуль используется несколькими "проектами".


Отлично. А вот теперь начинается самое интересное — что если два модуля используют третий, причем разных версий?
... << RSDN@Home 1.1.4 beta 3 rev. 219>>
AVK Blog
Re[3]: Дебагер
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.11.04 16:18
Оценка: :))) :)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>А дебуг — тоже порочен, кстати? То есть лично Вы согласны с этим утверждением?


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

Я поступаю следующим образом: каждую процедуру окружаю дополнительным блоком try except end (на работе я пишу на Delphi), в котором дописываю к сообщению об ошибке еще и полное имя процедуры (вместе с именем модуля) и, иногда, некоторые значения локальных параметров; и перевозбуждаю это исключение дальше. А также записываю это в журнал ошибок. Таким образом в журнале ошибок оказывается весь стек вызовов процедур по которым прокатилось исключение. Оставляю все это дело в релизе. Если в друг у пользователя программа грохнется, то мне сразу будет известно в каком месте и почему это случилось. Да и сам пока программу пишу — уже много раз это очень помогало. Ведь не надо голову ломать где именно и почему именно произошла ошибка — все сразу видно по логу.

В Component Pascal с одной стороны все проще, там мне лично не пришлось бы каждую процедуру окружать блоком try except end (там и блока то такого нет), там все "автоматом" и так сделано и в случае ошибки весь стек вызовов процедур со ВСЕМИ локальными переменными (в виде гиперссылок) показывается. То есть с точки зрения разработки — этого хватает на 100%. С другой стороны, пользователю же исходников давать не будешь, так что если прога грохнется у пользователя, то максимум что удастся узнать — точку падения, но не весь стек вызовов процедур, а это уже немного хуже. Впрочем к вопросу о дебагере это отношения все равно не имеет.
Re[5]: Ответ на вопросы
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.11.04 16:21
Оценка: 4 (1) :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Отлично. А вот теперь начинается самое интересное — что если два модуля используют третий, причем разных версий?


В смысле есть два разных третьих модуля, но названия у них одинаковые? А что — а ничто! Крышка. Не будет работать нифига. Надо будет переписывать.
Re[9]: Как запустить Блэкбокс и выполнить первую программу
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.11.04 16:23
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


К>>А так, что в С я получу ошибки по всем файлам, на которых это отразилось, и смогу залпом поправить. На паскале же если там фигня в 100 местах, я 100 раз нажму.


AVK>А рулез, как обычно, третий вариант. Ставим решарпер и наслаждаемся подсветкой большинства ошибок в рилтайме в процессе набора текста. Если БлекБокс так крут, то с примитивной грамматикой оберона могли бы без проблем такое сделать.


А что интересная идея — повесить компиляцию на событие любого редактирования текста...
Re[4]: Дебагер
От: Зверёк Харьковский  
Дата: 01.11.04 16:26
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

ЗХ>>А дебуг — тоже порочен, кстати? То есть лично Вы согласны с этим утверждением?


СГ>Да лично я согласен. Дебаг все ошибки все равно не найдет.


С одной стороны. А с другой — весьма, имхо, полезное средство.
Мой вопрос был к тому, что аргументация в стиле "автомобиль может сбить человека, поэтому надо запретить автомобили" — порочно. А отсутствие дебуггера в BlackBox'е аргументируется именно так.
сам слушаю и вам рекомендую: @winamp
FAQ — це мiй ай-кью!
Re[6]: Ответ на вопросы
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.04 16:30
Оценка: 1 (1) +4
Здравствуйте, Сергей Губанов, Вы писали:

AVK>>Отлично. А вот теперь начинается самое интересное — что если два модуля используют третий, причем разных версий?


СГ>В смысле есть два разных третьих модуля, но названия у них одинаковые?


Может даже один и тот же, но первый и второй модуль отлаживали с использованием разных вариантов третьего.

СГ> А что — а ничто! Крышка. Не будет работать нифига. Надо будет переписывать.


О! Сие как раз и называется dll-hell.
... << RSDN@Home 1.1.4 beta 3 rev. 219>>
AVK Blog
Re[10]: Как запустить Блэкбокс и выполнить первую программу
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.04 16:30
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>А что интересная идея — повесить компиляцию на событие любого редактирования текста...


Не компиляцию, а проверку синтаксиса. Это не одно и то же.
... << RSDN@Home 1.1.4 beta 3 rev. 219>>
AVK Blog
Re[5]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка: :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Ctrl+K — компиляция


А "K" — это "Кampilatcia" ?

И почему было не завести какую-нибудь фиксированную точку старта? Тогда можно было бы как во всех современных средах сделать шорткат на запуск под отладкой. Хотя да. Отладки же нет.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Так как компиляция практически мгновенная (человеком такой маленький интервал времени не воспринимается),


Гы. Это потому что приложения микроскопические. Дотнетный код тоже пока мелки мгновенно компилируется. А когда в солюшене по 10 огромных проектов зависимых от какой-нить кодогенерации, то этот мгновение может занимать по нескольку секунд. Хотя это в прочем уже детали.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Это наследственная беда компиляторов паскаля.


А причем тут наследство других компиляторов? Каждый компилятор пишется отдельно. И каждый может обработывать ошибки как хочет. Это просто халтура тех кто делал компилятор. Надо было генераторы парсеров использовать. Тогда таких бы проблем было меньше.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Во-вторых, а что Вы, собственно, хотите если поменяли интерфейсную часть в часто используемом модуле? Разумеется Вам после этого надо все перекомпилировать, а как же еще-то?


Я думаю, он это к тому, что сказки про реалтайм-компиляцию выглядят довольно смешно. И все определяется объемом кода. А стало быть такая вещь как список ошибок был бы не лишним.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка:
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Если я не ошибаюсь, то, начиная с языка Modula-2, процедуры заканчиваются не

K_O>
K_O>END;
K_O>
, а

K_O>
K_O>END ProcName;
K_O>
именно для того, чтобы компилятор мог пропустить кусок кода, относящегося к данной процедуре, содержащей ошибку, и продолжить компиляцию дальше.


Что-то ты не дооценивашь компиляторы. Они и так способны пропускать очень многое и без таких банальных подсказок. Тем же компиляторам Шарпа от МС и Явы от Сана или IBM-а не требуется никаких подсказок. Они и так очено качественно обнаруживают и диагностируют ошибки.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Как запустить Блэкбокс и выполнить первую программу
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 16:31
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Кстати, не известно почему Борланд сделала компилятор именно Паскаля, а не Модулы. Модула же лучше.


Потому-что они сделали свой язык с синтаксисом популярного в те времена Пасклая. А модула так популярности и не получила. Хотя с точки зрения структурного программирования она действительно выглядела лучше. Даже лучше оберона.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как запустить Блэкбокс и выполнить первую программу
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.11.04 16:42
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:
СГ>А что интересная идея — повесить компиляцию на событие любого редактирования текста...
Ну, как бы этой идее уже N лет. Сейчас уже как-то она считается непременным признаком полноценной среды разработки.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Как запустить Блэкбокс и выполнить первую программу
От: Кодт Россия  
Дата: 01.11.04 17:01
Оценка: 191 (18) +2
Здравствуйте, AndrewVK, Вы писали:

К>>А так, что в С я получу ошибки по всем файлам, на которых это отразилось, и смогу залпом поправить. На паскале же если там фигня в 100 местах, я 100 раз нажму.


AVK>А рулез, как обычно, третий вариант. Ставим решарпер и наслаждаемся подсветкой большинства ошибок в рилтайме в процессе набора текста. Если БлекБокс так крут, то с примитивной грамматикой оберона могли бы без проблем такое сделать.


Тут дело не в крутизне, а в том, что
1) шарп востребован
2) дофига пользователей-энтузиастов и фирм, обслуживающих менее шаловливых потребителей шарпа
3) наконец, MS только приветствует жизнь сообщества шарповодов
То есть — приличный человеческий ресурс.

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

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

Последний пункт — из той же области, что и "рулез третьего варианта". Мало потребителей — мало исполнителей — никому не нужно — ну и хрен с этой фичей.



Языкам Lisp и Smalltalk в своё время крупно повезло: при том, что они достаточно академичные, в момент зарождения они оказались гораздо красивее и практичнее россыпи откровенных поделок. Где-то в конце 60-х и в 70-х был бум всяких разных языков, заточенных под специальные задачи — настоящая вавилонская башня.
Если бы лисп появился сейчас, ему пришлось бы конкурировать с подобными скриптовыми языками — тем же питоном, руби, васиком наконец. И не факт, что он набрал бы достаточно голосов для развития.
А в те светлые времена... Подумать только: транслятор проще пареной репы, работает на чём угодно, выразительная мощность — ну не сравнить с ресурсоёмкостью. Да ещё и "базис под тезис подвели" — ФП (у смолтока — ООП). Сказка!

Может ли Оберон оказаться такой же путеводной звездой, как эти? Нет.
Вот Алгол-60, Паскаль — да. Это действительно отцы-основатели.



Я сейчас подумал: а ведь с религиями подобная вещь случается. Раз в несколько сотен лет происходит на Земле СОБЫТИЕ — приходит кто-то, несущий свет миллионам, и не только на короткий миг, но на долгое время.
Не стоит думать, что между этими вспышками духовная жизнь человечества замирает: нет, огоньки зажигаются и горят всё время, но свет их не столь очевиден. Мастера дзен могли умереть спокойно, если передавали Традицию хотя бы одному ученику.
Но в то же время слава великих деяний не даёт покоя фанатично настроенным. Так появляются секты, чьи лидеры уверяют — мол, только здесь Истина. Появляются церкви, монополизирующие или, можно сказать, патентующие Истину, принесённую тем, кто был в основе. (Jesus Christ incorporated — звучит! Надо Ватикану за деньги продать). Наконец, появляются лжепророки.

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

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

Как, например, РПЦ: роль её как платформы для укрепления духа россиян безусловна. Роль Убежища для многих искателей — сеть монастырей, сообщество святых отцов — безусловна. Попытки оградить от некачественного "духовного товара" — дело правое, но уже с перегибами (претензия на суд последней инстанции). А идеи государственности — откровенный перебор (впрочем, здесь уже низкие составляющие более чем влияют).

Так вышло и с Обероном на RSDN. Единственный эксперт по этому языку здесь — Сергей Губанов — к сожалению, оказался не просто последователем, а фанатичным приверженцем. Что и вызвало такую же жёсткую ответную реакцию.
(Сергей, прошу не обижаться. Во-первых, это просто повод делать "поправку на ветер" — как тебе, так и собеседникам. Во-вторых, мне кажется, этот приступ фанатизма не фатальный).
Перекуём баги на фичи!
Re: Орден "За попытки полюбить Блэкбокс"
От: Kubera Россия  
Дата: 01.11.04 17:05
Оценка: 12 (1) :)))
Здравствуйте, Mamut, Вы писали:

M>Предлагаю наградить меня орденом "За попытки полюбить Блэкбокс" Третьей Степени с лентой и именным пистолетом

Ты герой, однозначно! И наградить тебя следует за доблесть, мужество, а главное, выдержку! Только вот пистолет не дам. И не проси. Сядешь опять за BlackBox, нервы не выдержат, да и затстрелишься к едреней фене.
Любая сложная технология неотличима от волшебства. (Артур Кларк)
Re[6]: Как запустить Блэкбокс и выполнить первую программу
От: Кодт Россия  
Дата: 01.11.04 17:21
Оценка:
Здравствуйте, VladD2, Вы писали:

К>>Это наследственная беда компиляторов паскаля.


VD>А причем тут наследство других компиляторов? Каждый компилятор пишется отдельно. И каждый может обработывать ошибки как хочет. Это просто халтура тех кто делал компилятор. Надо было генераторы парсеров использовать. Тогда таких бы проблем было меньше.


У Паскаля операторная грамматика (про Оберон не скажу, но видимо, тоже), что позволяет делать очень простой парсер. К сожалению, простой парсер научить телепатии трудно...
Перекуём баги на фичи!
Re[2]: Конкурс по Оберону!
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.11.04 17:25
Оценка:
Здравствуйте, mister-AK, Вы писали:


MA>Вот у меня пока нету даже демы VisualStudio2005


Так скачай. Ссылка давали сто раз. Только лучше не качай последнюю полубэту. Она говорят дико глючная.

MA> но когда я общаюсь с тем, что у меня есть для C# я чё то не нахожу примитивных возможностей — хождения в исходниках по именам как гиперссылкам; интеллисайнса, в котором выпадает не все подряд, а то что мне нужно; всяческих дебагерных фич, давно уже присутствующих у Борландов... что-то мне это напоминает выдвиннутое сравнение, только немного со стороны


Ну, каждый кулик свое болото хвали... Ты скачай ReSharper и погляди. Думаю, после этого на Борлондовские продукты будет тошно смотреть. Ну, или как уже упоминалось 2005-ю студиню.

Ну, а предварительно скачай БлэкБокс. После этого ты ТурбоПаскаль за щастье примешь.

MA>То что у меня стоит и называется VS явно по-моему мнению уступает в ловкости рук, предлагаемой BDS2.0 (расшифрую — IDE Delphi8.Net)


Ну, если до этого переработал на борлондовских продуктах, но возможно. А так. У беорланда с редактированием текста всегда хреново было. 8-ка более мнее, но тоже многого нехватает. Тут все зависит от количества долбимого текста. Чем больше долбиш, тем больше обычно понимашь тех кто писл студию.

MA>Так что не все коту масленница чур RationalRose2010 для улучшения производительности труда не предлагать


А кто-то педлагал? Это все же несколько иное. Хотя и в борлондовских продуктах, и в нуовых МС-ных похожие вещи тоже есть.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Как запустить Блэкбокс и выполнить первую программу
От: achp  
Дата: 01.11.04 18:45
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Jesus Christ incorporated — звучит! Надо Ватикану за деньги продать


Они давно уже это сами продают по всему миру. Каждого 25 декабря.
Я кончил, джентльмены, мне остается только поблагодарить вас за внимание.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.