Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 133 134 [135] 136 137 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#2011
,
|
|
|
|
Цитата D_KEY @ Заметь, что это да и весь твой пример не имеют к ООП никакого отношения и являются следствием процедурного подхода и глобальных инициализаций/финализаций. Я с этим никогда и не спорил ООП - это не панацея, у процедурного подхода тоже есть свои преимущества. А ООП в C# и Java с его статик-методами и внутренними типами просто подменяют понятие класса, все это к ООП отношения тоже не имеет.Это вопрос или утверждение? Наверное вопрос... Таким образом, что ООП-терминам не приходится подменять понятия, а выполнять строго свою роль. При этом модули играют роль средства декомпозиции на уровне программы и композиции на уровне классов. Т.е. все классы GDI+ объеденены в некоторое целое - модуль GDI+. Модуль GDI+ - это тоже черный ящик, на уровень выше в абстрактной иерархии чем черный ящик классов. Еще выше находится библиотека. Т.е. классы собраны в модулях, модули - в библиотеках, библиотеки используются при построении программ Ручной работы это и так уже давно не требует. В твоем же случае ты плодишь сущности. Да и понятие "объект" у тебя искажено. Еще раз: Мне не нужно плодить и не нужно вызывать вручную. Ты же говоришь что либо плоди, либо вручную. |
|
Сообщ.
#2012
,
|
|
|
|
Цитата KILLER @ тип RUS->EN, class EN->RUS, type EN->RUS, класс RUS->EN Этого будет достаточно в качестве аргументов? да, спасибо, что аргументировал мои слова за меня |
|
Сообщ.
#2013
,
|
|
|
|
Цитата korvin @ да, спасибо, что аргументировал мои слова за меня Ну ну, глаза отказали? |
|
Сообщ.
#2014
,
|
|
|
|
Цитата --Ins-- @ Цитата D_KEY @ Заметь, что это да и весь твой пример не имеют к ООП никакого отношения и являются следствием процедурного подхода и глобальных инициализаций/финализаций. Я с этим никогда и не спорил ООП - это не панацея, у процедурного подхода тоже есть свои преимущества.Мне казалось, что ты делал утверждения о превосходстве ООП и о том, что мультипарадгмальность С++ тебе не нравится... Цитата А ООП в C# и Java с его статик-методами и внутренними типами просто подменяют понятие класса, все это к ООП отношения тоже не имеет. Статические методы - это статический интерфейс класса. А внутреннии типы-то тебе чем не угодили? Цитата Таким образом, что ООП-терминам не приходится подменять понятия, а выполнять строго свою роль. При этом модули играют роль средства декомпозиции на уровне программы и композиции на уровне классов. Т.е. все классы GDI+ объеденены в некоторое целое - модуль GDI+. Плохо. Модуль - логическая единица, а не свалка. Для этого есть пространства имен и пакеты. Цитата Модуль GDI+ - это тоже черный ящик, на уровень выше в абстрактной иерархии чем черный ящик классов. Еще выше находится библиотека. Т.е. классы собраны в модулях, модули - в библиотеках, библиотеки используются при построении программ Модуль не может быть черным ящиком в данном случае, ибо ты просто напрямую используешь его компоненты, т.е. используешь модуль как контейнер. Это противоречит идеи модульности. Цитата Ручной работы это и так уже давно не требует. Тогда и обертки создавать не нужно. Цитата Нет, я создаю компоненты, работающие на более высоком уровне, чем системные средства. Смешивать взаимодействие с системой и логику, на мой взгляд, не стоит.В твоем же случае ты плодишь сущности. Цитата Да и понятие "объект" у тебя искажено. Просвети меня, пожалуйста. Цитата Еще раз: Мне не нужно плодить и не нужно вызывать вручную. Ты же говоришь что либо плоди, либо вручную. Если тебе не нужно плодить, то зачем плодить мне ?Даже в твоем примере - ты создал модуль, а я класс. Код, который я привел, может быть помещен в любую единицу трансляции(а может быть выделен в самостоятельную). Остальная же часть системы сможет просто использовать GDI+. И вообще, я думал, что ты понимаешь, что твой пример рассматривается лишь гипотетически, в реальном приложении я не буду использовать GDI+, я воспользуюсь средствами библиотек(Qt и т.п.). |
|
Сообщ.
#2015
,
|
|
|
|
Цитата KILLER @ Ну ну, глаза отказали? ты сам-то свои ссылки читал? =) |
|
Сообщ.
#2016
,
|
|
|
|
Цитата D_KEY @ Мне казалось, что ты делал утверждения о превосходстве ООП О првесходстве нашего ООП над вашим Мультипарадигменность мне не нравится, ты прав. Но модули тут малину нисколько не портят. Мне не нравится мультипарадигменность потому, что в одном проекте, в исходном коде, доступном нескольким программистам сразу, получается каша, которая приведет к непониманию кода его коллегой. В Delphi такого нет, там единая строгая концепция - этакий симбиоз структурного программирования и ООП. Все программируют в таком стиле, все привыкли, все понимают. Чистое ООП в подобном промышленном императивном языке не нужно, а попытка Java и подобных назваться 100% объектными - ты и сам понимаешь что несерьезно - это тот же императивный язык с процедурным и структурным подходом, а попытка завернуть все в классы - чисто коммерческий ход, никаких технических преимуществ не дающий. Те же яйца, только почему-то назвали их не яйцами. Цитата D_KEY @ Статические методы - это статический интерфейс класса. А внутреннии типы-то тебе чем не угодили? Тем что понятие класса подменили, вместо типа данных, описывающих объект, он стал каким-то гибридом, играющим роль нэймспейса, ну а кроме того, еще и позволяющего описать объект. Тут нет ООП вообще. Назваться классом для ООП недостаточно Цитата D_KEY @ Модуль - логическая единица, а не свалка. Свалка - это нэймспейс. А модуль - это логическая единица, ты прав. Цитата D_KEY @ Модуль не может быть черным ящиком в данном случае, ибо ты просто напрямую используешь его компоненты, т.е. используешь модуль как контейнер. Это противоречит идеи модульности. Нет. Модуль - это черный ящик. И к нему также применима инкапсуляция. Как класс предоставляет одни методы и данные и скрывает другие, так и модуль предоставляет одни типы, и скрывает другие. interface/implementation Модуль - это целая единица, но не неделимая. |
|
Сообщ.
#2017
,
|
|
|
|
Цитата korvin @ ты сам-то свои ссылки читал? =) По которым вот это написано?: Читал... Цитата тип м. 1) (класс, категория) type; class; (характер) mode; (модель) model, pattern ... Цитата class 1) класс; разряд; категория || классифицировать 2) качество; сорт ... Цитата type 1) тип; род; класс; вид 2) ЯП тип (данных, объекта, функции и т.п. ), см. тж data type 3) литера; шрифт 4) печатать; писать печатными буквами 5) набирать на клавиатуре 6) выдавать текст на экран 7) определять тип ... Цитата класс муж. 1) class 2) (категория) class 3) class, form; grade амер.; class(-)room (комната ... korvin, да, ты прав, я забыл еще одну ссылку тебе показать, на: Синонимы |
|
Сообщ.
#2018
,
|
|
|
|
А jack128 все заходит периодически, читает, и ничего не говорит
А жаль, хотелось бы авторитетное мнение услышать, тем более, специалиста последнее время работающего не в Delphi, насколько мне известно |
|
Сообщ.
#2019
,
|
|
|
|
Цитата --Ins-- @ О првесходстве нашего ООП над вашим ![]() А оно есть ?Цитата Мне не нравится мультипарадигменность потому, что в одном проекте, в исходном коде, доступном нескольким программистам сразу, получается каша, которая приведет к непониманию кода его коллегой. Программисты не идиоты, --Ins--. Цитата Недостаточно, но никто не мешает ООП классам иметь статический интерфейс наряду с динамическим(классовые методы).Цитата D_KEY @ Статические методы - это статический интерфейс класса. А внутреннии типы-то тебе чем не угодили? Тем что понятие класса подменили, вместо типа данных, описывающих объект, он стал каким-то гибридом, играющим роль нэймспейса, ну а кроме того, еще и позволяющего описать объект. Тут нет ООП вообще. Назваться классом для ООП недостаточно Цитата Зачем скрывать типы? Если интерфейс и реализация класса разделены, то для того, чтобы скрыть тип, достаточно не показывать его в интерфейсе. Нет? Цитата D_KEY @ Модуль не может быть черным ящиком в данном случае, ибо ты просто напрямую используешь его компоненты, т.е. используешь модуль как контейнер. Это противоречит идеи модульности. Нет. Модуль - это черный ящик. И к нему также применима инкапсуляция. Как класс предоставляет одни методы и данные и скрывает другие, так и модуль предоставляет одни типы, и скрывает другие. interface/implementation Модуль - это целая единица, но не неделимая.Добавлено Цитата --Ins-- @ А jack128 все заходит периодически, читает, и ничего не говорит А жаль, хотелось бы авторитетное мнение услышать, тем более, специалиста последнее время работающего не в Delphi, насколько мне известно ![]() Мне кажется, что мы обсуждаем всякие мелочи и ходим кругами, так что вряд ли стороннему(в смысле не участвующему непосредственно в последних обсуждениях) наблюдателю будет интересно подключится. |
|
Сообщ.
#2020
,
|
|
|
|
Цитата --Ins-- @ А ООП в C# и Java с его статик-методами и внутренними типами просто подменяют понятие класса, все это к ООП отношения тоже не имеет. Читаю вашу беседу. Ins, интересно, что можно предложить вместо статических методов, если они не изменяют и не возвращают состояние объекта? |
|
Сообщ.
#2021
,
|
|
|
|
Цитата --Ins-- @ получается каша, которая приведет к непониманию кода его коллегой. Каша получается при плохой организации проекта. При хорошей - используемые парадигмы определяются на этапе архитектурного проектирования. Цитата --Ins-- @ Модуль - это целая единица, но не неделимая. А класс - неделимая как будто. |
|
Сообщ.
#2022
,
|
|
|
|
Цитата D_KEY @ Программисты не идиоты А не нужно быть идиотом Достаточно надыбать хорошую библиотеку, в надежде легко и качественно решить все свои задачи, а там - бац, такой подход пропогандируется, который в твоем проекте прикрутить будет весьма тяжело. Приходится выкинуть библиотеку и искать дальше. или делать свой велосипед. Это вопрос повторного использования кода. Одни из фишек Delphi, благодаря которой он так быстро и легко получил в свое время популярность и благодаря чему некоторый спрос поддерживается и теперь - это огромное количество распространяемых решений, использование которых вообще не составляет никакого труда и не требует особой подготовкиЦитата Red @ Ins, интересно, что можно предложить вместо статических методов, если они не изменяют и не возвращают состояние объекта? Просто не называть их методами Цитата Мяут-Настоящий @ А класс - неделимая как будто. Ну, скорее неделимая. Т.е. у него есть составняе части, но класс обычно рассматривают целиком и работают как с единой неделимой сущностью. Но это уже не предмет для спора, я так думаю |
|
Сообщ.
#2023
,
|
|
|
|
Цитата --Ins-- @ Цитата D_KEY @ Программисты не идиоты А не нужно быть идиотом Достаточно надыбать хорошую библиотеку, в надежде легко и качественно решить все свои задачи, а там - бац, такой подход пропогандируется, который в твоем проекте прикрутить будет весьма тяжело. Приходится выкинуть библиотеку и искать дальше. или делать свой велосипед.Это ты откуда такого понабрался? |
|
Сообщ.
#2024
,
|
|
|
|
|
Сообщ.
#2025
,
|
|
|
|
Цитата D_KEY @ Известно откуда. Из дельфийских пакетов. Куча велосипедов да мусор. Поиск жемчужины в навозе. Это ты откуда такого понабрался? |