Здравствуйте, Cyberax, Вы писали:
C>FDSC wrote:
>> ЧУШЬ. ЧУШь. ЧУшь. Чушь. чушь.... >> Умные указатели в Delphi есть, прада только в строковых типах.
C> Шутка дня.
C>Читать здесь: http://en.wikipedia.org/wiki/Smart_pointer и по ссылкам.
Прочитал. Ну и что? ANSIString и т.д. типичные Smart pointer.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, FDSC, Вы писали:
WH>>>В проекте на 10 метров кода будет тАкой граф... FDS>>Чушь. Это смотря как его представить. WH>Да хоть как ты его представляй. Всеравно утонешь в тысячах классов.
Граф можно представлять частями и т.п. Не надо мне говорить, что я утону — я видел прототип.
WH>А для тех приложений где нужен действительно сложный ГУИ то тут C++ с WTL рулят со страшной силой. Никакая дельфя с ее убогим VCL рядом не валялась ибо VCL это шаг в право, шаг в лево расстрел без права переписки.
Поверю наслово.
WH>>>А сейчас в недрах мелкософта создается очень интересный оптимизатор который можно будет расширять своими правилами. FDS>>Откуда знаешь? WH>http://research.microsoft.com/phoenix/
Спасибо.
Re[12]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, GlebZ, Вы писали:
GZ>Здравствуйте, Сергей Губанов, Вы писали:
СГ>>Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так издеваться. Пора учить современный живой удобный нужный Component Pascal.
GZ>А у меня мелькнула мысль: а зачем их учить какому-то языку? Им бы русский выучить, и то хорошо.
Истина в первой инстанции.
Приговор окончателен. Обжалыванию не подлежит. Заседание и дело объявляю закрытым.
Все же специалист на конкретном железе всегда сделает программу.
S>Что это означает? Что асм применяют сейчас почти только те, кто пользуется некачественным компилятором. Ребята, возьмите нормальный компайлер. Это сэкономит вам сотни часов бессмысленно потраченного времени.
А вот с этим согласен. Все же тратить свою жизнь на борьбу с битами глупо.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Cyberax, Вы писали:
C>RTTI есть в С++ уже лет 10. Reflection'а нет — это недостаток, но он и C>не нужен.
Так недостаток или не нужен?
Если серьезно, то главное приемущество Дельфи — это то что это был компонетный язык. Ну, возможно есть.
C>Именованые конструкторы — это фабрики, только интегрированные в язык C>(уродство).
Ага. А if, for, switch это просто немного улучшенные макросы MASM-а.
C> Аргументы переменной длины в С++ не нужны
Действительно. Нафиг они если можно просто по памяти жахнуь?
C>- есть другие C>средства (перегрузка операторов).
Да, да. Потом ожно про эффетивность поговрить... про инлайникнг. А тем временем удивляться почему:
printf("%d", myDoubleVar);
дает странные результаты.
C>Зато в Дельфи нет: умных указателей, автоматических объектов, C>темплейтов. Дальше можно не продолжать.
Мама купит мне казу я тебе не показу. Спорьте музчины.
ЗЫ
Ночилась эра и дельфи и плюсов. Кто не спрятался... я не виноват.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, tarkil, Вы писали:
WH>>>В С++ тоже есть RTTI. Несколько скромнее чем в дельфе но есть. T>>Ага, несколько. "Москвич-412" он тоже несколько хуже, чем Toyota Mark II. WH>А что такого крутого в дельфийском RTTI? Возможность перебрать свойства в published секции?
Ну, почему только свойства? И почему только в паблишь?
WH>Вот только толку от этого мало.
О... Это называется компонентным программированием. Это то что даже с мидлом и разными утилитами на С++ выглядит полной задницей. Если бы Страуструп был несколько дальновднее...
WH>А учитывая что в следующем стандарте наверняка появится compile time reflection
Гы. Мечтать не вредно. Боюсь, что в следующем стандарте будет еще больше расуждений о том, что все проблемы лучше решать в библиотеках.
WH> то дельфя будет мягко говоря нервно курить в углу.
Да, оно давно присоседилось к дотнету и курит в середине комнаты.
WH>Хотя скорее всего она не доживет ибо ее убъет .НЕТ
Тяжело умереть от собственного рантайма.
WH>Ты вобще понимаешь механику работы конструкторов/деструкторов в С++?
В дельфи конструктор действительно круче. А деструкторы... Да кому они теперь нужны?
WH>ИТОГО: Отсутствие необходимых инструментов компенсируется парой сомнительных фичек
Хорошая фраза. Подставляшь любое средство разработки и оно остаетвя в силе.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, WolfHound, Вы писали:
FDS>>Умные указатели в Delphi есть, прада только в строковых типах. WH>А толку? Умные указатели нужны везде. Только строки меня не устраивают.
Ты вот сейчас на дотнете пишешь. Так? И часто тебенужны умные указатели?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Cyberax, Вы писали:
>> C>>Использовать мертвые, неудобные и никому ненужные языки. >> Это Вы про устаревший Turbo Pascal? Согласен, не надо больше так >> издеваться. Пора учить современный живой удобный нужный Component Pascal.
C>К сожалению, он не живой, ни удобный, ни современный.
Тю... всего три недостатка?
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, FDSC, Вы писали:
FDS>> ...или, вообще, придумать другой язык... Чтоб ошибок в 100 раз меньше было, ведь от средства разработки то же многое зависит.
СГ>Такой язык есть — Оберон
Здравствуйте, VladD2, Вы писали:
VD>Ты оп осторожнее с ярлычками вроде демоггии. Прочитай еще раз ветку. Я заранее сказал, что "в безопасном режиме Шарпа и Яве (где другого режима нет)...". VD>Ансэйф режим для хаков и введен. Но это не означает, что весь язык должен быть одним большим ансэйвом (хаком).
Ты всетки объясни мне какая разница между ЯВНЫМ обходом тапизации и unsafe.
VD>Думаю ты представляшь как на том же Шарпе в безопасном режиме написать очень даже эффективный контейнер.
Для value типов нет. VD>Значит таки можно жить без хаков на каждом шагу?
Так ведь и в С++ нормальные люди без хаков живут. А те хаки которые есть скрыты под мощьной защитой. VD>А ведь чем человек не опытнее, тем его больше тянет на подвиги. И без разумного контроля — это приводит к очень неприятным резултатам.
Не разумные товарищи и на шарпе дров наломают... поверь мне я знаю о чем говорю. Последствия конечно будут не столь разрушительны как на С++ но легче от этого не становится.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, VladD2, Вы писали:
VD>Эта... ты ничего не путашь? Купи на досуге диск с современной дельфёй.
Толку то от этой дельфи... какой смысл ее использовать? В лучшем случае ее ожидает судьба J#'а.
VD>Это есть везде. Вот только в С++ чувствуется острее всего.
Я знаю ты мне не веришь но у меня их нет. Что я делаю не так?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: Частота ошибок в зависимости от языка: что делать?
Здравствуйте, VladD2, Вы писали:
WH>>Тут ты тоже явно обошол защиту. Так что... VD>Какую?
Дурака выключи. VD>Я просто пользовался штатными возможностями языка.
unsafe тоже вполне себе штатная возможность языка. VD>Более того, так как язык не позволяет автоматически управлять памятью, я буду вынужден писать подобный код реализуя свои контейнеры. И мест для ошибок приводящих к очень неприятным последствиям тут хоть отбавляй. И все в следствии дизайна языка.
1)Контейнеры уже давно написаны.
2)Контейнеры должны писать опытные люди. Если опыта не хватает то надо использовать STL.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>1)ГЦ. В дельфе нет. WH>2)Умные указатели. В дельфе нет. WH>3)Озвереешь ловить утечки памяти. В дельфе...
4) Аккуратное программирование. В конце-концов, создавать объект приписывая к нему try-finally и писать в деструкторе уничтожение всего вложенного не так уж трудно — я быстро привык Однако, 1 или 2 поприятнее, да.
Здравствуйте, Mr. None, Вы писали:
MN>Reflection — это как раз и есть возможность перебрать поля и методы класса.
Ага, я уже просветился, спасибо Под RTTI я подразумевал RTTI+Reflection (положа руку на сердце — это разные части одного и того же).
MN>А зачем они, если вы всегда можете объвить статическую функцию в классе, которая будет создавать вам объект? По сути тоже самое
Вот-вот. Есть конструктор, есть статическая функция-фабрика — а делают одно и то же. То что в Delphi их объединили в одно понятие мне нравится.
T>>А с переменные аргументами всё равно часто удобнее. Классика это, конечно, форматирование строк. MN>Не нравится не кури... или кури strintf ...
Там правильно смайлик стоит. Его и курю, за неимением лучшего, но пару раз накалывался на несоответствии типа... я — пару раз, в силу въедливости, а коллеги чаще. Правда тут подсказали с boost::format познакомиться...
T>>Да, там много чего нету, кто б спорил. Темплитами, кстати, почти никто похвастаться не может, кроме C++. MN>Зато шарп может ими постыдиться...
Умгу. Непростая задачка, да, шаблоны реализовать?
T>>Зато в C++ не хватает вложенных функций... Вот, буквально полчаса назад жалел об этом. MN>Зато в C++ есть локальные классы, что суть есть тоже самое, только круче, потому что они могут быть даже шаблонами и быть вложены в шаблоны...
Ага, мне уже приелась эта новомодная заморочка — в ответ на "хотелось бы немножко эту функцию улучшить" отвечают "а ты сделай из функции класс; а лучше — два". Хотя нужна-то мне функция.
tarkil wrote:
> T>>Зато в C++ не хватает вложенных функций... Вот, буквально полчаса > назад жалел об этом. > MN>Зато в C++ есть локальные классы, что суть есть тоже самое, только > круче, потому что они могут быть даже шаблонами и быть вложены в > шаблоны... > Ага, мне уже приелась эта новомодная заморочка — в ответ на "хотелось > бы немножко эту функцию улучшить" отвечают "а ты сделай из функции > класс; а лучше — два". Хотя нужна-то мне функция.
void func()
{
struct
{
void operator ()(int a, int b)
{
....
}
} inner;
inner(1,2);
}
Здравствуйте, tarkil, Вы писали:
T>4) Аккуратное программирование. В конце-концов, создавать объект приписывая к нему try-finally и писать в деструкторе уничтожение всего вложенного не так уж трудно — я быстро привык Однако, 1 или 2 поприятнее, да.
Весьма хреновый выход ибо если надо создать несколько объектов причем конструктор каждого из них может кинуть искольчение...
disclaimer: на дельфе не писал очень давно.
begin
obj1 := SomeClass.Create;
try
begin
obj2 := SomeClass.Create;
try
begin
obj3 := SomeClass.Create;
try
begin
...
end
finally
begin
obj3.Free();
end
end
finally
begin
obj2.Free();
end
end
finally
begin
obj1.Free();
end
end;