Главная страница
    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.63 MB
Время: 0.008 c
2-1295192100
TStas
2011-01-16 18:35
2011.04.17
Как добавить в ImageList картинку с прозрачным фоном в run time?


15-1293565837
TUser
2010-12-28 22:50
2011.04.17
Почему эбонит электризуется при натерании об шерсть?


2-1295269594
Евгений07
2011-01-17 16:06
2011.04.17
дельфи игнорирует файл источник


8-1211811559
Staska
2008-05-26 18:19
2011.04.17
разработка класса для изображения квадрата


2-1295252792
И. Павел
2011-01-17 11:26
2011.04.17
Не получается программно авторизоваться на сайте





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский