Re[11]: Применим ли Си++ в серьезном коде?
От: WolfHound  
Дата: 13.06.04 15:36
Оценка:
Здравствуйте, AndrewVK, Вы писали:

WH>>Единственный адекватный способ создать такой язык это проектирование его с нуля и при этом забив на обратную совместимость с С/С++.

AVK>Ну как бы R# уже сейчас показывает что это не обязательно.
Или кто-то из нас не понял что сказал... Или R# может С++ компилировать?
... << RSDN@Home 1.1.3 beta 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Применим ли Си++ в серьезном коде?
От: Silver_s Ниоткуда  
Дата: 13.06.04 15:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>>Сами по себе обертки уже есть детали. Те самые.
MSS>>А если баг в обертке где? Ой млиииин...
VD>Если баг в обертке, то рано или поздно он будет обнаружен и устранен. А вот если баги (а они будут такими же что и в обертке) разбросаны по коду, то это уже называется "приплыли".

Тут еще есть конфликт между читателями и писателями.
Говорили тут вот про CWaitCursor. Если этот CWaitCursor будет самодельный класс из 4 строчек. О котором читатель не знает, а знает только что такое BeginWaitCursor. Он естействено будет материться на эту обертку когда в первый раз с ней столкнется. "..Вот в документацию лезть пришлось из-за какой-то козявки,в другие файлы лазить , скрытое поведение искать,разбираться, что за маразматик писал...итд"
Особенно если он с ним только один раз в коде столкнется. Ему все равно, что писателю это жизнь облегчило и в 100 местах это применено.

У писателя и читателя (которорому побыстрее хочется разобраться в небольшом обрывке чужого кода) разные цели. Иногда действительно в плоком виде структура быстрее понимается для участка кода. Но читателю можно порекомендовать запустить отладчик с первой строчки кода и прйтись насквозь через все вложеные функции скрытые поведения итд.
Re[9]: Применим ли Си++ в серьезном коде?
От: AndrewJD США  
Дата: 13.06.04 15:58
Оценка:
Здравствуйте, Shhady, Вы писали:

S>ATL не использую, стараюсь писать всё самому, чтоб держать всё под контролем ( я просто собаку сЪел, офигивая, почему моя программа глючила, оказалось что глючил mfc со своими недокументированными фичами и ограничениями


Может вы просто не умееите их готовить? (собак)
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[7]: Применим ли Си++ в серьезном коде?
От: AndrewJD США  
Дата: 13.06.04 16:16
Оценка:
Здравствуйте, Silver_s, Вы писали:

S_> Говорили тут вот про CWaitCursor. Если этот CWaitCursor будет самодельный класс из 4 строчек. О котором читатель не знает, а знает только что такое BeginWaitCursor. Он естействено будет материться на эту обертку когда в первый раз с ней столкнется. "..Вот в документацию лезть пришлось из-за какой-то козявки,в другие файлы лазить , скрытое поведение искать,разбираться, что за маразматик писал...итд"

Запросто может быть обратная ситуация, когда читатель знает про класс CWaitCursor, но понятия не имеет про BeginWaitCursor . Например начитается книг: "ХХХ за 10 дней"
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[10]: Применим ли Си++ в серьезном коде?
От: Shhady Россия  
Дата: 13.06.04 16:17
Оценка:
Да? Если вы не сталкивались с приколами mfc, значит вы и не шибко в нём работали. Я имею ввиду глубокую работы ( переписывание отрисовок контроллеров хотя бы ).

Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
Re[11]: Применим ли Си++ в серьезном коде?
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 13.06.04 16:41
Оценка:
S>Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?

А причем здесь MFC?

Это фича Windows-а — стандартные контролы Windows обрабатывает сама.
Re[9]: Применим ли Си++ в серьезном коде?
От: Shhady Россия  
Дата: 13.06.04 16:44
Оценка:
На предыдущий пост можете не отвечать, прочитал много ваших постов по этому поводу.
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
Re[12]: Применим ли Си++ в серьезном коде?
От: Shhady Россия  
Дата: 13.06.04 16:47
Оценка:
DG>А причем здесь MFC?

DG>Это фича Windows-а — стандартные контролы Windows обрабатывает сама.


Чего? А CButton, CScrollBar (вот что фиг перепишешь, всмысле отрисовки) — это не часть MFC?
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
Re[9]: Применим ли Си++ в серьезном коде?
От: Maxim S. Shatskih Россия  
Дата: 13.06.04 17:12
Оценка:
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, и требовал для нормальной работы второго монохромного монитора.
Занимайтесь LoveCraftом, а не WarCraftом!
Re[4]: Применим ли Си++ в серьезном коде?
От: Maxim S. Shatskih Россия  
Дата: 13.06.04 17:15
Оценка:
S_> Хотя тут скрытого поведения нету. Вот поэтому крупный софт и глючный на основе
>низкоуровневых технологий (без скрытого поведения)
, и лезут через инет на комп
>всякие черви через всякие щели.

То-то одна из самых глючных софтин на настоящий момент — написанный на Си++ MSIE.

То-то ядра Windows и юниксов работают хорошо, то-то компиляторы работают хорошо... все на Си
Занимайтесь LoveCraftом, а не WarCraftом!
Re[11]: Применим ли Си++ в серьезном коде?
От: AndrewJD США  
Дата: 13.06.04 17:24
Оценка:
Здравствуйте, Shhady, Вы писали:

S>Да? Если вы не сталкивались с приколами mfc, значит вы и не шибко в нём работали. Я имею ввиду глубокую работы ( переписывание отрисовок контроллеров хотя бы ).

Я вашу квалификацию под сомнение не ставил и вам рекомендую не сомневаться в чужой.

S>Например, как вы, наверное очень опытный программист, раз пишете такие слова, объясните, что у ms контроллов код отрисовки не всегда ( да почти всегда ) не сидит в OnPaint?

А почему он должен там быть?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[12]: Применим ли Си++ в серьезном коде?
От: Shhady Россия  
Дата: 13.06.04 17:40
Оценка:
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
Re[10]: Применим ли Си++ в серьезном коде?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.06.04 18:16
Оценка:
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Нет. И среда, и компилятор были и под ДОС (ТурбоВижн), и под Win16. Причем под Win16 код компилятора был где-то внутри среды, а не CL.EXE пускался, как у микрософта. На компиляции больших проектов иногда валился.


Ты что то путаешь. IDE под винды появилось только в 4.0.

MSS>Была UIная библиотека OWL, и к ней визард рисования диалогов.


И OWL в те времена был только для BP.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[5]: Применим ли Си++ в серьезном коде?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.06.04 18:16
Оценка: +1
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>То-то одна из самых глючных софтин на настоящий момент — написанный на Си++ MSIE.


Ворд сильнее глючит. В разы сильнее.

MSS>То-то ядра Windows и юниксов работают хорошо, то-то компиляторы работают хорошо... все на Си


А MSSQL на С++, притом один из самых стабильных МСовских продуктов.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[13]: Применим ли Си++ в серьезном коде?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.06.04 18:16
Оценка:
Здравствуйте, Shhady, Вы писали:

S>Чего? А CButton, CScrollBar (вот что фиг перепишешь, всмысле отрисовки)


Точно так же как TButton, System.Windows.Forms.Button и т.п.
... << RSDN@Home 1.1.4 beta 2 >>
AVK Blog
Re[10]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.06.04 18:17
Оценка:
Здравствуйте, alexkro, Вы писали:

A>В Америке и в Москве МакДональдс — это небо и земля.


Да плевать мне на америкосов. К тому же макдональдс — это франчейзи, а стало быть два раядом стоящих мака мокут бвть совершенно разного качества.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.06.04 18:17
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Это я могу и сейчас... читаем дебугинфо и... сам не пробовал но кто-то на форуме говорил что у него это работает.

WH>Но это не переносимо

Я бы сказал изжогу вызывает. Вообще-то есть ОпенС++ с вроде как полноценным парсером. Тогда уж лучше его использовать.

WH>Кроме мейнстрейма для которого .НЕТ и ему подобные пожалуй лучший выбор есть и будут области программирования где нужен zero overhead language те что не использую за то не плачу.


Ну, zero overhead даже на ассемблере не бывает. Реально речь идет о процентах. Как я уже не раз говорил проигрыш в два раза легко компенсируется высобожденым временем которое можно потратить на оптимизацию алгоритмов. А те в свою очередь дают куда блоший чем двухкратный выигрыш.

Другое дело, что есть драйверы и т.п. Вот их конечно придется делать на С/С++. Как видишь, даже можно поспорить на чем из них луше. Задачи же более менее прикладные легко преводить на дотнет. Если что проблемы вставить пару строк на анменеджед-С++ особого труда не составит.

WH>Вот тут то и нужен компаил тайм рефлекшен. Чтобы то что нужно я мог сгенерить прямо во время компиляции и именно так как мне надо.


Ну, как я тебе уже сказал по большому счету пофику какой он.

WH>...создать такой язык это проектирование его с нуля и при этом забив на обратную совместимость с С/С++.


Ну, я бы все же лучш дополнил существующий.

WH>К стати. У тебя есть конкретные идеи по выделеной части?

WH>

WH>8. Отсуствие системы автоматического контроля памяти, или механизма позволяющего гладко интегрировать такой механизм на уровне библиотеки.


В смысле как это можно было бы интегрировать в С++? Или вообще?
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.06.04 18:17
Оценка: 2 (2)
Здравствуйте, Maxim S. Shatskih, Вы писали:

MSS>Пока что мне там ответили


Где там то?

MSS>Насчет драйверов. Проекты маленькие по объему (мегабайт густо комментированного исходника — это в этой области большой проект) — но как бы очень насыщенные по логике.


Логика она и в африке логика. Скорее уж ваша специфика это много низкоуровневой мешуры, жесткие требования к производительности (видимо) и надежность, так как от драйверов зависит вся система.

MSS> В этом области "терять сцепление колес с дорогой" и витать в облаках абстракций вряд ли оправдано.


С первым согласен. Да тебе и виднее. А вот со вторым нет. Абстракция нужна везде. И чем сложнее решаемая задача тем болше она наужна.

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

MSS> И требования к надежности очень высоки. Потому ИМХО оправдано не прятать детали реализации, а выставлять наружу как есть.


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

MSS>Абстракции там получаются очень крупноблочные, скорее как в COMе, а не как в классических ОО языках типа Дельфей, Джавы и Шарпа.


Абстракция — понятие очень относительное. Всегда можно выделить мелкие и крупные абстракции. Твоя злость скорее свсего основывается на примерах нерадивого выделения абстракций.

Кстати, году в 1994 я наблюдал изумительный пример маразма в этой области. Одному орлу поручили написать функцию преобразоватия числа в строку прописью (русское написание числа). Так вот он вместо того, чтобы написать одну простую функцию состряпал класс. Это надо было видить. Я плякаль... После этого мы переписали его код выбросив процентов 40. Но это же не проблема ООП. Это проблема умения выделять абстракции.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.06.04 18:17
Оценка:
Здравствуйте, 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 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Применим ли Си++ в серьезном коде?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.06.04 18:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>NDA. DNA это обычно ДНК.


Неважно.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.