Здравствуйте, AndrewVK, Вы писали:
WH>>Единственный адекватный способ создать такой язык это проектирование его с нуля и при этом забив на обратную совместимость с С/С++. AVK>Ну как бы R# уже сейчас показывает что это не обязательно.
Или кто-то из нас не понял что сказал... Или R# может С++ компилировать?
... << RSDN@Home 1.1.3 beta 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Maxim S. Shatskih, Вы писали: MSS>>Сами по себе обертки уже есть детали. Те самые. MSS>>А если баг в обертке где? Ой млиииин... VD>Если баг в обертке, то рано или поздно он будет обнаружен и устранен. А вот если баги (а они будут такими же что и в обертке) разбросаны по коду, то это уже называется "приплыли".
Тут еще есть конфликт между читателями и писателями.
Говорили тут вот про CWaitCursor. Если этот CWaitCursor будет самодельный класс из 4 строчек. О котором читатель не знает, а знает только что такое BeginWaitCursor. Он естействено будет материться на эту обертку когда в первый раз с ней столкнется. "..Вот в документацию лезть пришлось из-за какой-то козявки,в другие файлы лазить , скрытое поведение искать,разбираться, что за маразматик писал...итд"
Особенно если он с ним только один раз в коде столкнется. Ему все равно, что писателю это жизнь облегчило и в 100 местах это применено.
У писателя и читателя (которорому побыстрее хочется разобраться в небольшом обрывке чужого кода) разные цели. Иногда действительно в плоком виде структура быстрее понимается для участка кода. Но читателю можно порекомендовать запустить отладчик с первой строчки кода и прйтись насквозь через все вложеные функции скрытые поведения итд.
Здравствуйте, Shhady, Вы писали:
S>ATL не использую, стараюсь писать всё самому, чтоб держать всё под контролем ( я просто собаку сЪел, офигивая, почему моя программа глючила, оказалось что глючил mfc со своими недокументированными фичами и ограничениями
Может вы просто не умееите их готовить? (собак)
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, Silver_s, Вы писали:
S_> Говорили тут вот про CWaitCursor. Если этот CWaitCursor будет самодельный класс из 4 строчек. О котором читатель не знает, а знает только что такое BeginWaitCursor. Он естействено будет материться на эту обертку когда в первый раз с ней столкнется. "..Вот в документацию лезть пришлось из-за какой-то козявки,в другие файлы лазить , скрытое поведение искать,разбираться, что за маразматик писал...итд"
Запросто может быть обратная ситуация, когда читатель знает про класс CWaitCursor, но понятия не имеет про BeginWaitCursor . Например начитается книг: "ХХХ за 10 дней"
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Да? Если вы не сталкивались с приколами mfc, значит вы и не шибко в нём работали. Я имею ввиду глубокую работы ( переписывание отрисовок контроллеров хотя бы ).
Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
S>Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?
А причем здесь MFC?
Это фича Windows-а — стандартные контролы Windows обрабатывает сама.
VD>>А разве Borland C++ 3.1 был связан с виндовс? Мне казалось он был под дос. AVK>Среда и компилятор были под дос, но компилировать под Win16 он умел.
Нет. И среда, и компилятор были и под ДОС (ТурбоВижн), и под Win16. Причем под Win16 код компилятора был где-то внутри среды, а не CL.EXE пускался, как у микрософта. На компиляции больших проектов иногда валился.
Была UIная библиотека OWL, и к ней визард рисования диалогов. Си++ был расширен личными борландовскими заморочками типа
virtual void OnChar() = WM_CHAR;
Еще была библиотека EasyWin, которая позволяла тупой порт комманд-лайн программ в Win16, определяя printf() так, что создавалось окно, смахивающее на консоль, и туда шла печать.
Другое дело, что отладчика в Win16ой среде не было. Он был только Turbo Debugger (давали с дистрибутом), текстовый ТурбоВижн UI, и требовал для нормальной работы второго монохромного монитора.
S_> Хотя тут скрытого поведения нету. Вот поэтому крупный софт и глючный на основе >низкоуровневых технологий (без скрытого поведения), и лезут через инет на комп >всякие черви через всякие щели.
То-то одна из самых глючных софтин на настоящий момент — написанный на Си++ MSIE.
То-то ядра Windows и юниксов работают хорошо, то-то компиляторы работают хорошо... все на Си
Здравствуйте, Shhady, Вы писали:
S>Да? Если вы не сталкивались с приколами mfc, значит вы и не шибко в нём работали. Я имею ввиду глубокую работы ( переписывание отрисовок контроллеров хотя бы ).
Я вашу квалификацию под сомнение не ставил и вам рекомендую не сомневаться в чужой.
S>Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?
А почему он должен там быть?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
AJD>Я вашу квалификацию под сомнение не ставил и вам рекомендую не сомневаться в чужой.
Может вы просто не умееите их готовить? (собак)
Я не буду предираться.
AJD>А почему он должен там быть?
Так думают и программисты в ms.
MSDN по поводу WM_PAINT ( это относитьяс к OnPaint )
Typically, an application draws in a window in response to a WM_PAINT message.
Понятно, что тупикали, ну если сами программисты ms нифига не тупикали обрабатывают отрисовку черт знает где ( сорсов же контроллов нет ), то как это расценивать? Если это документированная ( хорошо, могу согласиться, они же сами пишут "тупикали" ) и ожидаемая реализация отрисовки, то я пас.
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Нет. И среда, и компилятор были и под ДОС (ТурбоВижн), и под Win16. Причем под Win16 код компилятора был где-то внутри среды, а не CL.EXE пускался, как у микрософта. На компиляции больших проектов иногда валился.
Ты что то путаешь. IDE под винды появилось только в 4.0.
MSS>Была UIная библиотека OWL, и к ней визард рисования диалогов.
Здравствуйте, WolfHound, Вы писали:
WH>Это я могу и сейчас... читаем дебугинфо и... сам не пробовал но кто-то на форуме говорил что у него это работает. WH>Но это не переносимо
Я бы сказал изжогу вызывает. Вообще-то есть ОпенС++ с вроде как полноценным парсером. Тогда уж лучше его использовать.
WH>Кроме мейнстрейма для которого .НЕТ и ему подобные пожалуй лучший выбор есть и будут области программирования где нужен zero overhead language те что не использую за то не плачу.
Ну, zero overhead даже на ассемблере не бывает. Реально речь идет о процентах. Как я уже не раз говорил проигрыш в два раза легко компенсируется высобожденым временем которое можно потратить на оптимизацию алгоритмов. А те в свою очередь дают куда блоший чем двухкратный выигрыш.
Другое дело, что есть драйверы и т.п. Вот их конечно придется делать на С/С++. Как видишь, даже можно поспорить на чем из них луше. Задачи же более менее прикладные легко преводить на дотнет. Если что проблемы вставить пару строк на анменеджед-С++ особого труда не составит.
WH>Вот тут то и нужен компаил тайм рефлекшен. Чтобы то что нужно я мог сгенерить прямо во время компиляции и именно так как мне надо.
Ну, как я тебе уже сказал по большому счету пофику какой он.
WH>...создать такой язык это проектирование его с нуля и при этом забив на обратную совместимость с С/С++.
Ну, я бы все же лучш дополнил существующий.
WH>К стати. У тебя есть конкретные идеи по выделеной части? WH>
WH>8. Отсуствие системы автоматического контроля памяти, или механизма позволяющего гладко интегрировать такой механизм на уровне библиотеки.
В смысле как это можно было бы интегрировать в С++? Или вообще?
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Пока что мне там ответили
Где там то?
MSS>Насчет драйверов. Проекты маленькие по объему (мегабайт густо комментированного исходника — это в этой области большой проект) — но как бы очень насыщенные по логике.
Логика она и в африке логика. Скорее уж ваша специфика это много низкоуровневой мешуры, жесткие требования к производительности (видимо) и надежность, так как от драйверов зависит вся система.
MSS> В этом области "терять сцепление колес с дорогой" и витать в облаках абстракций вряд ли оправдано.
С первым согласен. Да тебе и виднее. А вот со вторым нет. Абстракция нужна везде. И чем сложнее решаемая задача тем болше она наужна.
Давно замечено, что средний человек не может держать в поле зрения более 7 предметов одновременно. Если тебе нужно параллельно котролировать более семи параметров, то без введения асбтракций ты рано или поздно прийдеш к тому, что будеш смотреть на код с тихим ужасом.
MSS> И требования к надежности очень высоки. Потому ИМХО оправдано не прятать детали реализации, а выставлять наружу как есть.
Мне кажется, во всем нужно быть размным. Бесспорно неоправданные побочные эффекты и срытая логика вредны. И уж темболее в коде который должен быть быстрым и надежным. Но и примитивизация — это тоже не выход. Мне как пользователю совершенно пофигу почему будет глючить имеющийся у меня драйвер. Будь то неередсказуемое поведение в следствии неграмотной инкапсуляции и побочных эффектов, или в следствии того, что разработчики драйвера перестали отслеживть все повороты логики в следствии превышения порога понимаемости из-за того, что они забили на абстракцию.
MSS>Абстракции там получаются очень крупноблочные, скорее как в COMе, а не как в классических ОО языках типа Дельфей, Джавы и Шарпа.
Абстракция — понятие очень относительное. Всегда можно выделить мелкие и крупные абстракции. Твоя злость скорее свсего основывается на примерах нерадивого выделения абстракций.
Кстати, году в 1994 я наблюдал изумительный пример маразма в этой области. Одному орлу поручили написать функцию преобразоватия числа в строку прописью (русское написание числа). Так вот он вместо того, чтобы написать одну простую функцию состряпал класс. Это надо было видить. Я плякаль... После этого мы переписали его код выбросив процентов 40. Но это же не проблема ООП. Это проблема умения выделять абстракции.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, ilya_ny, Вы писали:
_>я не понял что ты имеешь в виду — человек писал, что в 2001 C# не было, а я писал, что был.
Человек — это был я. Так вот официально С# вышел в 2002 году. Его бетатестирование было закртытым и сотрудник МС распространяться про него да еще так вольготно словно о нем все давно знают в 2001 попросту не мог. Его а) никто бы не понял, б) выгнали бы с работы.
VD>>Ну, прям прозводсво каое-то. Хорошо что ты не программировал на супер продукте под названием COM+: VD>>http://www.microsoft.com/msj/1197/complus.aspx VD>>http://www.microsoft.com/msj/1297/complus2/complus2.aspx VD>>
_>я программировал.. а тут в чем подвох ?
Тем что это и есть дотнет. И программировать на нем ты мог, только если ты работал в то время в команде его разработки.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.