Текущий архив: 2011.04.17;
Скачать: CL | DM;
Вниз
Наткнулся на интересное поведение в D2010 Найти похожие ветки
← →
TUser © (2010-12-29 08:09) [40]IncDay - тоже его произведение?
← →
Ega23 © (2010-12-29 08:12) [41]Не, IncDay - это отсюда нетленка, с форума. Года 2003-го вроде. После очередного падения - исчезло. А жаль.
← →
Ega23 © (2010-12-29 08:13) [42]Мне почему-то кажется, что это тонкий вброс кого-то из мастеров был.
← →
Rouse_ © (2010-12-29 13:56) [43]Это не Олега авторство, но и не самый показательный код, там был примерчик с пятью вложенными with на котором аффтару было очень сложно отлаживаться :)
← →
Kerk © (2010-12-29 14:04) [44]http://code.progler.ru/view/190
← →
TUser © (2010-12-29 18:12) [45]Да я просто среагировал на слово "автор" из
Макс Черных (29.12.10 00:49) [34]
, типа автор ветки. Ну и раз там первая фраза правильная, то и остальное верно, очевидно же.
← →
Дмитрий Тимохов (2010-12-31 02:06) [46]Где то выше Акуличев Димка высказался про потерю чувства языка.
Полностью поддерживаю.
Побаиваюсь я этого монстра. У меня лежит лицензия 2011. Времени нет все заюзать. Но и, как сказал, побаиваюсь - это же в какие сомнения меня он введет, дав мне все эти женерики и анонимные методы, которые еще и работают не всегда корректно.
← →
Владислав © (2010-12-31 10:21) [47]Волков бояться, в лес не ходить.
Ключевое здесь то, что "не всегда корректно", а в развитии языка ничего плохого нет.
← →
Kerk © (2010-12-31 10:38) [48]Это не развитие языка. Это попытка сделать его максимально похожим на более популярные языки. Какие-то возможности действительно нужны, какие-то - нет.
Например, в Паскале, а затем Delphi единицей инкапсуляции был модуль. В сях, например, модулей вообще нет, а в Pascal/Delphi есть. Теперь же единицей инкапсуляции пытаются сделать класс - отсюда все эти strict-секции и возможность объявлять типы внутри описания класса. Нельзя сказать, что это плохо вообще в принципе, но это чуждо языку. В Delphi Prism вон, насколько я знаю, вообще нет секций инициализации/финализации в модулях.
Нафига нужен язык, который как C#, но вместо скобочек begin/end мне не очень понятно.
← →
_Юрий (2010-12-31 11:29) [49]
> Kerk © (31.12.10 10:38) [48]
> Нафига нужен язык, который как C#, но вместо скобочек begin/end
> мне не очень понятно.
За язык как таковой не скажу, а сам инструмент
нужен для того, чтобы было на чем писать под Win32.
Под .Net" ом он конечно же не нужен.
По поводу новшеств - они служат для совершенно конкретных целей, которые действительно улучшают код. Ясное дело, что можно обойтись и без этого, руководствуясь абстрактным лозунгом "иначе мы потеряем чувство языка".
Ну флаг в руки, пишите и дальше по две тонны кода там, где достаточно одной, и заводите лишние сущности там, где они не нужны.
Если язык не развивается - он умирает.
← →
Anatoly Podgoretsky © (2010-12-31 11:49) [50]> Kerk (31.12.2010 10:38:48) [48]
Секции инициализации/финализации лучше бы запретить и разрешать использовать
только после великой клятвы и ограниченно, дозировано не более одного раза
на десяток модулей.
← →
Kerk © (2010-12-31 12:04) [51]
> _Юрий (31.12.10 11:29) [49]
> нужен для того, чтобы было на чем писать под Win32.
На C++ пиши, там давно все те нужные тебе "новшества" есть.
> Если язык не развивается - он умирает.
Ты так и не понял о чем я написал.
Развитие и бездумное копирование - это не одно и то же.
> Anatoly Podgoretsky © (31.12.10 11:49) [50]
Это другой вопрос. Любую возможность можно неправильно использовать.
← →
Игорь Шевченко © (2010-12-31 12:07) [52]Kerk © (31.12.10 12:04) [51]
> бездумное копирование
почему бездумное ?
← →
Kerk © (2010-12-31 12:24) [53]
> Игорь Шевченко © (31.12.10 12:07) [52]
Вот не было в Delphi множественного наследования и сейчас нет, слава богу. В свое время эту возможность не стали тупо копировать, а сделали множественное наследование интерфейсов. Т.е. множественного наследования реализации нет, а интерфейсов - есть. И это правильно, я считаю. Кто-то может быть скажет: "фи, ну и пишите дальше свои тонны кода", ничего страшного - напишем.
А теперь возьмем сабжевое объявление типов внутри объявления классов. Оно зачем? Что дальше, объявление переменных по месту использования?
← →
Kerk © (2010-12-31 12:32) [54]На самом деле, я считаю, что единственное, чего не хватало Delphi - это дженерики. Они действительно очень облегчают жизнь. И сделать их надо было лет 10 назад. Ну, может быть, с большой натяжкой еще итераторы не помешают. Остальное, имхо, хлам.
← →
Игорь Шевченко © (2010-12-31 12:47) [55]Kerk © (31.12.10 12:24) [53]
> В свое время эту возможность не стали тупо копировать, а
> сделали множественное наследование интерфейсов.
это "не совсем" множественное наследование. Кстати, множественного наследования в отдельных применениях очень даже не хватает, приходится дописывать код для имитации.
> И это правильно, я считаю
так это ты считаешь, что бездумно, что правильно, и т.д. ?
ну тогда еще не так страшно.
Всякая особенность языка уместна во вполне конкрентом ее, особенности, применении.
Иначе говоря, всякий овощ приносит пользу, будучи употреблен надлежащим образом в надлежащее время.
То есть, то, что ты считаешь зряшным и хламным - ты просто не умеешь готовить. Это не беда.
← →
Kerk © (2010-12-31 12:59) [56]
> Игорь Шевченко © (31.12.10 12:47) [55]
> это "не совсем" множественное наследование.
Так и я о том.
> так это ты считаешь, что бездумно, что правильно, и т.д.?
Ну а кто ж еще? Я считаю свою имху, ты свою.
> Всякая особенность языка уместна во вполне конкрентом ее,
> особенности, применении.
> Иначе говоря, всякий овощ приносит пользу, будучи употреблен
> надлежащим образом в надлежащее время.
>
> То есть, то, что ты считаешь зряшным и хламным - ты просто
> не умеешь готовить. Это не беда.
А вот это блаблабла и не более. Ибо по таким же соусом можно половину хаскелла в Delphi внедрить.
← →
Kerk © (2010-12-31 13:13) [57]Да и, собственно, судьба КодеГира - инициатора практически всех этих очень полезных и прогрессивных изменений - показывает, что ерундой они занимались.
← →
Дмитрий Тимохов (2010-12-31 13:21) [58]Вообще появление новых путей решения одной и той же прикладной проблемы я считаю бедой для языка. Путей должно быть мало. Лучше один. Чтобы 2 программиста на разных концах планеты для решения прикладной задачи применяли схожие тех. средства.
Согласитесь, что в текущем Дельфи одно и то же можно сделать кучей способов. Один другого запутанней - мы же, программисты, люди творческие, нам за сложность в карман лезть не надо.
Поясню мысль про мое отношение к усложнению языка. Наш тех директор на НГ сказал интересную мысль (это было в ходе какого-то тоста, суть которого передавать не буду). Программирование - это возможность ограниченным количеством средств выразить неограниченное количество предметных областей. Если подумать, то тут есть большая доля истины.
Мозг человека ограничен. И если ему предлагаю более широкий и зачастую запутанный инструментарий, то у него уменьшаются возможности по реализации предметных областей.
Я несколько, конечно, сгущаю краски. Но мысль, думаю, ясна.
← →
Дмитрий Тимохов (2010-12-31 13:23) [59]
> Kerk © (31.12.10 13:13) [57]
>
> Да и, собственно, судьба КодеГира - инициатора практически
> всех этих очень полезных и прогрессивных изменений - показывает,
> что ерундой они занимались.
Ну в этом ты сильно не прав, я думаю.
Что значит судьба?
КГ - это ОАО. Он продался (погугли, найдешь за сколько), собственники довольны. Чем плохо то?
Собственно любая фирма имеет конечную задачу - либо продаться, либо акционироваться и продолжить развиваться своими средствами.
КГ продался. Тоже нормально.
← →
oxffff © (2010-12-31 13:24) [60]
> Kerk © (31.12.10 12:32) [54]
> На самом деле, я считаю, что единственное, чего не хватало
> Delphi - это дженерики. Они действительно очень облегчают
> жизнь. И сделать их надо было лет 10 назад. Ну, может быть,
> с большой натяжкой еще итераторы не помешают. Остальное,
> имхо, хлам.
А отложенные вычисления в виде анонимных методов?
С ними не легко, но без них мозг сломаешь, когда вычисления необходимо либо вывернуть, либо отложить и делать это придется ручками. Сложность растет и порой сложно оперировать абстракциями абстракций.
← →
Kerk © (2010-12-31 13:28) [61]
> oxffff © (31.12.10 13:24) [60]
Про анонимные методы я забыл, да.
← →
Дмитрий Тимохов (2010-12-31 16:55) [62]Да, уж, без анонимных методов свет не мил.
← →
jack128_ (2011-01-01 12:34) [63]а по мне так в текущем виде анонимные методы можно выкинуть, он не на что не годятся. Синтаксис слишком громоздкий, нужен вывод типов.
Замыкания естественно оставить.
← →
Rouse_ © (2011-01-01 20:39) [64]Как по мне - все что не работает, продаваться не должно, ан нет, увы и ах... Кушайте 2010 и ХЕ...
Декабрь в минус считай за наши же деньги (вива юникод, мать его) и остаток января думаю туда-же...
← →
Alx2 © (2011-01-01 22:35) [65]>Как по мне - все что не работает, продаваться не должно
Я склонен считать, что нет полностью работающих вещей. Привыкаем к капризному софту и юзаем его так, чтобы не провоцировать :)
← →
Дмитрий Тимохов (2011-01-01 22:58) [66]
>
> Я склонен считать, что нет полностью работающих вещей. Привыкаем
> к капризному софту и юзаем его так, чтобы не провоцировать
> :)
у Розыча все работает!!! )))
а в действительности с тобой согласен в следующей части.
есть критикал еррор - ты как разработчик про них обязательно узнаешь - программой то пользоваться нельзя! есть миноры всякие. по моему опыту люди делают именно так, как ты сказал: приспосабливаюца, чтобы не провоцировать софт. иногда узнаешь в частном разговоре о том, что есть недочеты и на вопрос, а что молчите, отвечают - да в целом работает же ))
← →
vuk © (2011-01-03 13:38) [67]to Kerk © (31.12.10 12:24) [53]:
> А теперь возьмем сабжевое объявление типов внутри объявления
> классов. Оно зачем?
А вот мне эта штука оказалась полезной. Типичное использование сейчас - утаскивание туда всяких определений, нужных только одному конкретному классу.
Что-нибудь типа того:
type
TSomeDialog = class(TBaseDialog)
......
public
type
TDialogParams = record
param1:...;
param2:...;
end;
public
class function Execute(var Params: TDialogParams): boolean;
end;
← →
Kerk © (2011-01-03 15:47) [68]
> vuk © (03.01.11 13:38) [67]
Я о подобном и говорил, когда писал про отход от модуля, как единицы инкапсуляции, к классу. Хорошо это или плохо - это отход от традиций языка.
← →
Kerk © (2011-01-03 16:01) [69]Причем отход в одном из его фундаментальных принципов.
← →
vuk © (2011-01-03 16:03) [70]to Kerk © (03.01.11 15:47) [68]:
> Я о подобном и говорил, когда писал про отход от модуля,
> как единицы инкапсуляции, к классу.
Отход к классу, как к единице инкапсуляции, он начался с появлением ООП. Так что это все продолжение данного процесса. Плюс ко всему, имея вложенные типы получаем вполне логичное их использование внутри дженериков.
> Хорошо это или плохо - это отход от традиций языка.
От традиций какого конкретно языка?
← →
Игорь Шевченко © (2011-01-03 16:12) [71]Довольно удобно объявлять встроенным типом Enumerator.
Впрочем, конструкция for .. in тоже отход от того, что было при царе Горохе.
Однако удобно.
← →
Kerk © (2011-01-03 16:35) [72]
> vuk © (03.01.11 16:03) [70]
> > Хорошо это или плохо - это отход от традиций языка.
>
> От традиций какого конкретно языка?
От паскаля, очевидно.
Тут ведь смотри еще какая штука получается. Ну сделаем мы в соответствии с веяниями времени единицей инкапсуляции класс. Ок. А что с модулем будет? Ведь модуль - это не просто текстовый файл, это нечто с секциями interface и implementation (не говоря уже про инициализацию и финализацию). Мне сложно подобрать термин для описания ситуации, но надеюсь, "пересечение компетенция" подойдет. Т.е. получается ситуация, о которой выше писал Дима Тимохов - мы одно и то же можем делать кучей способов. В сях, например, такого противоречия нет, там такие классы органично смотрятся.
← →
vuk © (2011-01-03 16:52) [73]to Kerk © (03.01.11 16:35) [72]:
> А что с модулем будет?
А ничего не будет. Он тоже контейнер типов и данных, но более высокого уровня. Не?
К тому же модуль, как конечная единица инкапсуляции катит только при процедурном подходе. При ООП - уже нет.
← →
tesseract © (2011-01-05 12:08) [74]
> Впрочем, конструкция for .. in тоже отход от того, что было
> при царе Горохе.
Избавляет от with .. do и лишних переменных. Но иногда так читать тяжело.
← →
_Юрий (2011-01-05 12:32) [75]
> Rouse_ © (01.01.11 20:39) [64]
> Как по мне - все что не работает, продаваться не должно,
> ан нет, увы и ах... Кушайте 2010 и ХЕ...
> Декабрь в минус считай за наши же деньги (вива юникод, мать
> его) и остаток января думаю туда-же...
Чото я глубины мысли не понял. Юникод вроде как работает. Что не должно продаваться?
> Kerk ©
>Хорошо это или плохо - это отход от традиций языка.
Слепое следование традициям только потому, что это традиции - одна из наиболее тупых вещей, свойственных человеку.
Развивать мысль я не буду - она или понятна, или объяснение бесполезно.
← →
Kerk © (2011-01-05 12:47) [76]
> _Юрий (05.01.11 12:32) [75]
> Слепое следование традициям только потому, что это традиции
> - одна из наиболее тупых вещей, свойственных человеку.
> Развивать мысль я не буду - она или понятна, или объяснение
> бесполезно.
Спасибо, что уделил мне время, о великий гуру.
← →
_Юрий (2011-01-05 12:48) [77]
> Kerk © (05.01.11 12:47) [76]
> Спасибо, что уделил мне время, о великий гуру.
Аминь. Покойся с миром.
← →
имя (2011-01-05 12:49) [78]Удалено модератором
← →
Дмитрий Тимохов (2011-01-05 15:57) [79]Я ушел от for in в сторону обычного for.
Не вижу большого смысла в них.
← →
Kerk © (2011-01-05 16:03) [80]Удалено модератором
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2011.04.17;
Скачать: CL | DM;
Память: 0.63 MB
Время: 0.008 c