Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 17:25   #81
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

P.S.

Цитата:
все любят говорить что VCL крива
Ну не так уж она крива. По сути, заметный недостаток у неё только один - малая возможность кастомизации. Остальное, так - придирки. Но вот есть там много мест с намертво вшитыми именами классов и приватными полями, есть. Ну и хрен с ним. Никто не мешает класс к себе перетащить или хак применить.

Библиотечка-то сама по себе не плоха. Удобна, логична. Да, старовата. Да, новых фишек нет. Да, можно модернизировать и улучшить. Но прям вот так: "крива"? Увольте.

Крива - это, скорее, Indy или KOL. Причём, если первая - это просчёт, то последняя - там это сделано специально, цель такая (это я про её лозунг "нет виртуальности").
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 17:27   #82
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а я не говорю что она кривая

кстати порой люди пытаются свалить кривость/неумение своих рук на другие.(никого не обвиняю, и не на кого не намекаю)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 06.12.2010 в 17:31.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.12.2010, 17:39   #83
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
По сути, заметный недостаток у неё только один - малая возможность кастомизации.
Странно, я считал её главным недостатком другое - бесконечное глубинное наследование.
Цитата:
TObject

TPersistent

TComponent

TControl

TGraphicControl

TImage
И у каждого свои свойства\методы, да пока TImage создастся - год пройдет. Нельзя было в конечной версии обрать "предков" и написать конечный класс для TImage? Уж не помню кто, KOL или JEDI, но так и сделали. И ничего, работает... В 5-раз быстрей и в 10 раз меньше размером.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.12.2010, 17:42   #84
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ох, ну вот вернитесь к этой теме через годика два-три - мож яснее станет (а в промежутке - читать умные книжки. Например - Code Complete).

(Нафига нам вообще классы? Давайте на процедурах писать, чего уж там)
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 17:45   #85
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Что-то тема разжирела...)

Процесс разработки и оптимизации выглядит примерно так:

Код:
#include <tdd>
#include <beer>
#include <luck>
#ifdef RELAX
#include <poker>
#include <girls/brunettes>
#endif

...

while (!is_work(program)) {
  drink_and_print("WTF?!");
  write_unit_test();
  make_it_work();
  refactor_bydlocode();
}
while (client_is_not_angry() && program.too_slow()) {
   kill_somebody();
   What reason = profiler_please_help_me();
   switch (reason) {
   case STUPID_ARCHITECT: change_architecture_and_technologies(); break;
   case STUPID_PROGRAMMER: change_algorithms_and_data_structures(); break;
   default: call(Alex_Cones);
   }
   change_stupid_mans();
   kill_somebody_else_just_for_fun();
}
if (client_is_angry() && program.too_slow()) print("oh my god: epic fail");
else print("yeeeew PROFIT $$$");
still_alive вне форума Ответить с цитированием
Старый 06.12.2010, 17:46   #86
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Цитата:
Нельзя было в конечной версии обрать "предков" и написать конечный класс для TImage?
Вы предлагаете в конечном счете для каждого нового класса писать один и тот же код по десять раз? Или я чего-то не понял...
Если уж так, то очнитесь - это ООП...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 06.12.2010, 17:48   #87
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Нафига нам вообще классы? Давайте на процедурах писать, чего уж там
Видимо Вы все таки изучили мой стиль написания программ и уже ознакомились с GRAY FUR.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.12.2010, 17:54   #88
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Видимо Вы все таки изучили мой стиль написания программ и уже ознакомились с GRAY FUR.
Нет. Просто это типичная проблема "типа программистов", не открывавших книжки (флёнов и ваша первая книжка не считается) - они просто не знают ООП. Поэтому они не понимают, что тут делает эта иерархия. Поэтому, конечно же, они говорят: "сейчас я напишу свой код с блекджеком и шлюхами!"
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 17:56   #89
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
(Нафига нам вообще классы? Давайте на процедурах писать, чего уж там)
а он так и пишет библиотеку свою.

классы/наследование дают возможность гибкого наращивания функционала.
Цитата:
TObject - база
TPersistent - в первую очередь дает Assing, гибкое копирование объектов
TComponent - дает взаимодействие с классами TReader/TWriter, что позволяет сохранять компонент в файл и обратно, а также имя и св-во Tag.
TControl - дает некоторые события, св-ва координат и тп
TGraphicControl - дает канву, а так же позволяет Parent рисовать себя
TImage - ну собственно дает уже полноценные св-ва по работе с изображением(загрузка растягивание и тп)
чтото из этого еще дает перечисление детей(и соответственно регистрацию детей у родителя)

что из этого хочешь выкинуть?

Алекс я со своим ООП спокойно могу написать File<<Edit, File<<Memo, File<<int и твердо знаю что оно сохранится в файл так как надо, и потом могу спокойно его загрузить обратно.
небольшая универсальность, и кстати значительно сокращает код(не нужно писать спец процедуры подо все варианты компонентов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 06.12.2010 в 18:01.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.12.2010, 17:57   #90
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дубль таки
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 06.12.2010 в 18:00.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Товарищи модераторы за что удалили мою Тему? Или я что то не втыкаю!? Олег Егоров Помощь студентам 0 19.05.2010 19:39
Товарищи старшие! Prihlop Помощь студентам 1 19.11.2009 21:20
(VB) Подскажите мне товарищи... phantom4eg Помощь студентам 1 12.09.2009 20:43