среда, 2 октября 2013 г.

Ссылка. "Что бы сделали мы с Delphi XE5/XE6... - подводим итоги"

http://keeper89.blogspot.ru/2013/09/delphi-xe5xe6.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+Keeper89+(Keeper's+blog)

Про STL и многое другое - я к сожалению остался в меньшинстве...

27 комментариев:

  1. «Про STL и многое другое - я к сожалению остался в меньшинстве...»
    -- Про "многое другое" не скажу, а вот зачем Вам STL - в толк не возьму.
    Вам чего-то не хватает в System.Generics.Collections?

    ОтветитьУдалить
  2. Во-первых - не хватает. Ну "убоги" они. Простите уж.
    Во-вторых - STL - "пища для ума" и "образец для подражания". Если люди "программируют на STL", а не на plain С++ - у них "мировоззрение" меняется. В лучшую сторону. Это моё личное наблюдение.

    ОтветитьУдалить
    Ответы
    1. Понимаете. Я уже *неоднократно* сталкивался с те, что у людей надо ВОСПИТЫВАТЬ "вкус к хорошему программированию". И мне кажется - STL- ХОРОШИЙ образчик "вкуса". Как и QT кстати. Как и FireMonkey. Тут можно "бить меня ногами". Но! Я - СКАЖУ - АРХИТЕКТУРНО - FM - ХОРОШ. На мой "вкус". Реализация - ДА - "хромает".

      Или вот взять - Turbo-Professional!!! Это ведь - "кладезь". Это - ОБРАЗЕЦ "объектного программирования БЕЗ объектов". Тут тебе и полиморфизм и виртуальные функции. И ВСЕ концепции.

      ЗАПИСЬ "с точкой" - это ведь не показатель "объектности". "Объектность" она в мозгу.. В ДНК... Её надо "прочувствовать"...

      Хотя Степанов и говорит - " STL - это не объектный подход"...

      Удалить
    2. «Во-первых - не хватает. Ну "убоги" они. Простите уж.»
      -- А конкретно - чего Вам не хватает? Прямо интересно уже...
      Все основные структуры есть. Сделать свои в том же стиле - не проблема.

      «Во-вторых - STL - "пища для ума" и "образец для подражания". Если люди "программируют на STL", а не на plain С++ - у них "мировоззрение" меняется. В лучшую сторону. Это моё личное наблюдение.»
      -- Я такого не наблюдал. Скорее - наоборот :-)

      «Я уже *неоднократно* сталкивался с те, что у людей надо ВОСПИТЫВАТЬ "вкус к хорошему программированию". И мне кажется - STL- ХОРОШИЙ образчик "вкуса"»
      -- С необходимостью воспитания согласен. Но вынужден констатировать, что вкусы у нас - очевидно, разные.
      Я не вижу в STL ничего (совершенно ничего) заслуживающего столь превосходных реляций.

      «Или вот взять - Turbo-Professional!!! Это ведь - "кладезь". Это - ОБРАЗЕЦ "объектного программирования БЕЗ объектов".»
      -- Мнда? Ну да, там были некоторые интересные функции с точки зрения, чтобы самому их не писать.
      Но вот "алгоритм маляра" в WordCount/ExtractWord - за это IMHO "расстреливать нужно за бруствером", а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать".
      Turbo Vision - IMHO интереснее в разы. С точки зрения архитектуры. Но актуальность он уже утратил конечно, окончательно. VCL местами неплох. Архитектурно разумеется. Пожалуй, единственное его слабое место, на которое нельзя не указать - это "God class" TDataset. В остальном - архитектурно, очень достойно. AnyDAC - очень ничего архитектурно выглядит. ToolBar2000/TBX - очень достойны в основной идее.
      И кстати, до сих пор не понимаю: зачем вообще нужно "объектное программирование без объектов"?

      «Хотя Степанов и говорит - " STL - это не объектный подход"...»
      -- Для меня несущественно, что говорит Степанов :-)
      С STL же была одна забавная история, которую я уже рассказывал. После недавнего холивара C++ vs Pascal, в которых я по молодости участвовал, пришлось разбираться с кодом, использовавшим STL. Под отладчиком я попал в "недра" означенного STL и поймал себя на мысли, что уже 15 минут не могу понять, как "это" работает. Там была какая-то фигня, что-то вроде &P* - зачем это делать, если операции взаимнообратны. Позвал на помощь своего визави по холивару - мол, ты это любишь - объясни зачем такая "байда" :-) Через полтора часа рабочего времени он хлопнул себя по лбу и воскликнул "Ну это очевидно!" Долго потом смеялись :-)
      Так что, не могу разделить Ваших реляций в отношении STL.

      Удалить
    3. В отношении же архитектуры STL не могу сказать ничего плохого. Ну и чем восхищаться - тоже не вижу.

      Удалить
    4. "Все основные структуры есть. Сделать свои в том же стиле - не проблема."
      -- что я и СДЕЛАЛ.. лет 10-ть назад.. БЕЗ Generic'ов... Но это сделал Я. Ещё раз - Я. А НЕ MainStream.

      Удалить
    5. "Я такого не наблюдал. Скорее - наоборот :-)"
      -- Ну у нас с вами - РАЗНЫЕ наблюдения... :-) так - бывает...

      Удалить
    6. "Но вот "алгоритм маляра" в WordCount/ExtractWord - за это IMHO "расстреливать нужно за бруствером", а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать"."
      -- вы с RX часом не путаете? Или я путаю?

      Удалить
    7. "Под отладчиком я попал в "недра" означенного STL и поймал себя на мысли, что уже 15 минут не могу понять, как "это" работает. Там была какая-то фигня, что-то вроде &P* - зачем это делать, если операции взаимнообратны. Позвал на помощь своего визави по холивару - мол, ты это любишь - объясни зачем такая "байда" :-) Через полтора часа рабочего времени он хлопнул себя по лбу и воскликнул "Ну это очевидно!" Долго потом смеялись :-)"

      Перегрузка операторов?

      Удалить
    8. "Так что, не могу разделить Ваших реляций в отношении STL."
      -- давайте "от противного".. у вас есть ваш собственный "образец вкуса"? Ну чтобы я понял. На "каком языке говорить", что ли...

      Джоэла "образцом вкуса" вы ведь тоже наверное не считаете? А кого? Можно узнать?

      Удалить
    9. ""Но вот "алгоритм маляра" в WordCount/ExtractWord - за это IMHO "расстреливать нужно за бруствером", а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать"."
      -- вы с RX часом не путаете? Или я путаю?"

      --- или вы хотите сказать, что Акжан Абдулин и компания в RX и ElPack "сдули" этот "алгоритм маляра" у Turbo Power из библиотеки Turbo Professional? Если так, то это - занятно...

      Удалить
    10. «"Но вот "алгоритм маляра" в WordCount/ExtractWord - за это IMHO "расстреливать нужно за бруствером", а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать"."
      -- вы с RX часом не путаете? Или я путаю?»
      -- С RX я даже не знаком :-) WordCount/ExtractWord содержались в TPString, затем мигрировали в OPString.
      Оттуда же, вероятно, попали в RX Library, хотя это - мои домыслы. Я как-то бегло просматривал эту библиотеку и не нашёл для себя в ней ничего интересного.

      «Через полтора часа рабочего времени он хлопнул себя по лбу и воскликнул "Ну это очевидно!" Долго потом смеялись :-)"

      Перегрузка операторов?»
      -- Может быть... Я не запомнил :-) Да и давно это было - лет 12 назад...
      Вообще же, перегрузка операторов, точнее, отсутствие ограничений на её использование - бич кода на C++.

      «"Так что, не могу разделить Ваших реляций в отношении STL."
      -- давайте "от противного".. у вас есть ваш собственный "образец вкуса"? Ну чтобы я понял. На "каком языке говорить", что ли...

      Джоэла "образцом вкуса" вы ведь тоже наверное не считаете? А кого? Можно узнать?»
      -- Образцов вкуса (и для подражания) в программировании у меня нет - на то он и вкус :-)
      Есть люди, которыми я восхищаюсь по разным причинам, но среди них ни одного программиста. - Увы.
      Г-н Спольски говорит много, очень и очень много по делу. Я не слышал от него ничего, что вызвало бы у меня идиосинкразию. Но я, понятно, знаком не со всеми его работами в эпистолярном жанре. Из последнего мне весьма понравилось его обзор KANBAN (http://habrahabr.ru/post/147501/), хотя этот паразит эту технологию не упомянул вовсе.
      Практически всё, опубликованное от Н.Вирта очень близко мне по духу.
      Очень достойно выглядят работы Сергея Гурина, на которого я ссылался в контексте SDL/DeCAL.
      Если честно, я вообще не вполне понимаю, что есть "вкус" в программировании. Как говорит мой любимый БГ "Когда при мне говорят: «Все будет хорошо», — я не знаю, что они имеют в виду." :-)
      Я не раз убеждался, что в контексте программирования под "вкусом" подразумеваются совершенно разные вещи. Поэтому, для меня это не операционный язык.

      Удалить
    11. «--- или вы хотите сказать, что Акжан Абдулин и компания в RX и ElPack "сдули" этот "алгоритм маляра" у Turbo Power из библиотеки Turbo Professional? Если так, то это - занятно...»
      -- Не хочу я этого сказать :-) Я хочу сказать, что знаю происхождение WordCount/ExtractWord в нашем модуле XXXXSys.pas - и это - не из RX Lib. Его тогда не было.
      Что же до "сдули", то м.б. это и так, а может - и нет. "Алгоритм маляра", как и всё дурное в этом мире, вполне мог быть "изобретён" заново в очередной раз :-)

      Удалить
    12. "Есть люди, которыми я восхищаюсь по разным причинам, но среди них ни одного программиста. - Увы."
      -- очень жаль

      Удалить
    13. "«Через полтора часа рабочего времени он хлопнул себя по лбу и воскликнул "Ну это очевидно!" Долго потом смеялись :-)"

      Перегрузка операторов?»
      -- Может быть... Я не запомнил :-) Да и давно это было - лет 12 назад...
      Вообще же, перегрузка операторов, точнее, отсутствие ограничений на её использование - бич кода на C++."
      -- так перегрузка или нет? Чего "знакомый" по лбу щёлкал?

      Удалить
    14. "Как говорит мой любимый БГ"
      -- тут я скажу обратное - "среди музыкантов - нет людей, которыми я бы восхищался"...

      Удалить
    15. Ну у всех бывают неудачи...
      У Turbo Power - видимо тоже..
      Хотя ни TPString, ни OPString - я что-то не припомню.. Старею наверное...

      "а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать"
      -- а тут можно поподробнее?

      Удалить
    16. «"«Через полтора часа рабочего времени он хлопнул себя по лбу и воскликнул "Ну это очевидно!" Долго потом смеялись :-)"

      Перегрузка операторов?»
      -- Может быть... Я не запомнил :-) Да и давно это было - лет 12 назад...
      Вообще же, перегрузка операторов, точнее, отсутствие ограничений на её использование - бич кода на C++."
      -- так перегрузка или нет? Чего "знакомый" по лбу щёлкал?»
      -- Я же говорю: уже не помню - давно это было совсем. Просто здесь как я уже говорил ранее, я сказал себе "так быть не должно", но не стал ничего предпринимать, поскольку в STL для C++ для меня нет никакой ценности. Я знаю принципы, на которых она основана, если придётся воспользоваться C++, то "поплевавшись" на отличия &P* и &*P и прочие "изящества" синтаксиса C++, я смогу его применить для своих задач, хотя и надеюсь, что такое не понадобится :-)
      Конструктивный вывод для себя я сделал очень простой - реализация изобилует "магией" и "шаманством". В моей системе ценностей такой код не является хорошим.

      «"Как говорит мой любимый БГ"
      -- тут я скажу обратное - "среди музыкантов - нет людей, которыми я бы восхищался"...»
      -- Ну, БГ скорее - поэт. Ну и музыкант, конечно, тоже :-)

      «Ну у всех бывают неудачи...
      У Turbo Power - видимо тоже..
      Хотя ни TPString, ни OPString - я что-то не припомню.. Старею наверное...»
      -- Да бросьте :-) (http://d-edit.googlecode.com/svn/trunk/tp7/UNITS/TPSTRING.PAS)
      TPEntry могу ещё вспомнить. Та ещё свалка функциональности.
      TPCrt, TPBCD были очень полезны. TPEdit - неудобен, хотя, для того времени...
      TPErrHan в своё время оказал на меня сильное влияние.
      А TPVArray вообще - использовался в качестве СУБД :-D

      «"а TPStack - вообще ужас... Не к ночи будет помянут... То, как отслеживается использование стека - отдельная тема семинара у нас была в разделе "как не надо делать"
      -- а тут можно поподробнее?»
      -- Там было что-то вроде такого. В Turbo Pascal того времени бичом было переполнение стека. Не только из-за рекурсии, но из-за его искусственного ограничения нами (память экономили) с одной стороны, отключении Stack owerflow (для скорости) с другой, и локальных переменных (помните тип Striing, хотя в чистом виде его не использовали) с третьей. Переполнение стека никак не "ловилось", но гарантированно приводило к нестабильной работе приложения.
      По-моему, в TPStack было предложено решение, которое позволяло определить количество стека, используемое приложением. Техника, если мне не изменяет память была следующей: они перепрограммировали таймер, заставляя срабатывать соответствующее прерывание намного чаще, чем обычно, устанавливали обработчик этого прерывания и проверяли StackPtr, который был доступен в Turbo Pascal, вычисляя максимум в использовании стека. Ну, думаю, очевидно, чего стоила такая реализация и какая от неё была "польза".

      Удалить
    17. Что за раскопки на кладбище старого кода?)

      Удалить
    18. «"Все основные структуры есть. Сделать свои в том же стиле - не проблема."
      -- что я и СДЕЛАЛ.. лет 10-ть назад.. БЕЗ Generic'ов... Но это сделал Я. Ещё раз - Я. А НЕ MainStream.»
      -- Ну, то что Вы сами что-то сделали (не только Вы, к слову) совершенно не указывает на "убогость" System.Generics.Collections. Стандартные структуры данных как были 25 лет назад, так таковыми и остались, независимо от количества лиц, их реализовавших. Простите за банальность, конечно.

      Удалить
    19. @Unknown «Что за раскопки на кладбище старого кода?)»
      -- Скорее, это обсуждение "вкусов" :-)

      Удалить
    20. «"Есть люди, которыми я восхищаюсь по разным причинам, но среди них ни одного программиста. - Увы."
      -- очень жаль»
      -- Почему? О чём жалеть, собственно? :-)

      Удалить
  3. STL без шаблонов - либо в ущерб производительности, либо в ущерб юзабельности.

    ОтветитьУдалить
  4. "STL без шаблонов - либо в ущерб производительности, либо в ущерб юзабельности."
    -- мне кажется - вы не всё внимательно читаете.

    ОтветитьУдалить
  5. >http://18delphi.blogspot.ru/2013/07/blog-post_3683.html

    Так это "в ущерб юзабельности" и есть.

    ОтветитьУдалить