Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.65 MB
Время: 0.025 c
8-1211723746
S@7
2008-05-25 17:55
2011.04.17
циклично проигрывать музыку


15-1293744604
Юрий
2010-12-31 00:30
2011.04.17
С днем рождения ! 31 декабря 2010 пятница


2-1295328781
начинающий2
2011-01-18 08:33
2011.04.17
Два потока и общая процедура


15-1293452863
Ega23
2010-12-27 15:27
2011.04.17
Наткнулся на интересное поведение в D2010


2-1295060421
mfender
2011-01-15 06:00
2011.04.17
Не получается создать объект указанного класса