Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Форум группы: delphi > Delphi умирает?


Автор: Гость_Максим 20.7.2004, 10:35
Я слышал мнение о том, что Delphi постепенно отмирает. Какие инструменты и технологии наиболее перспективны в области разработки приложений баз данных? Я интересуюсь потому, что серьезно взялся за изучение Delphi, а тут мне вдруг заявляют, что Delhi отмирает, а Java перспективнее. Что же теперь бросать и начинать осваивать Java? Обидно как-то sad.gif
Заранее благодарен за ответ.

Автор: Pakshin A. S. 20.7.2004, 10:44
СОВЕТ: Изучай всё!!!

Лично я начал с Pascal, потом Object Pascal + Delphi (тут же работа с БД через SQL и стандартные компоненты), сейчас C++, затем Java и Assembler (для развлечения)...

Про отмирание:
на этом форуме раздел с Delphi один из самых популярных и многочисленных... вывод сделай сам.

Автор: Georg4 20.7.2004, 10:55
Ява перспективная вещь но никто не говорил что Делфи умирает.
Я учил вначале Визуал Басик, потом Делфи и потом пошло поехало С++, Пролог, Ява, РНР, Перл.

Но Дельфи осталась самой любимой. Как-то нравится она мне или может из-хза того что препод преподававший программирование на Делфи был хороший

Автор: Pakshin A. S. 20.7.2004, 11:10
Ещё: по-моему, для Delphi и в самой Delphi больше различного инструментария...

Автор: Kurt 20.7.2004, 11:16
Цитата
Ява перспективная вещь но никто не говорил что Делфи умирает.

Не хочется подливать масла в огонь, но посмотрите на Delphi 8! Это уже не наш Delphi - это .NET.
Т.е., имхо, "классический" Delphi все-таки.. хм.. ну если не умирает, то болеет. smile.gif

Автор: Pakshin A. S. 20.7.2004, 11:48
ОФФТОП про Delphi:
Никому не нужен раритетная Delphi v1.0... Работает быстро, вроде без глюков, компоненты есть (которых я не видал в D5 и т. п.).
Пошел диск покупать для с C++, а там Pascal с Delphi оказались... забавно. biggrin.gif

Автор: Cheba 20.7.2004, 15:17
Цитата
раритетная Delphi v1.0
Кинь мне.

А про Delphi, так в релизе Delphi 8 идет в качестве бонуса Delphi 7. smile.gif

Автор: Pakshin A. S. 20.7.2004, 18:12
biggrin.gif biggrin.gif biggrin.gif 20 Мб biggrin.gif biggrin.gif biggrin.gif

Автор: Петрович 21.7.2004, 08:37
Цитата
... что Delphi постепенно отмирает ...

Я бы сказал иначе:
"... что Delphi постоянно отмирает ..."
Ответ, как в анекдоте: "Недождетесь" smile.gif
Цитата
Никому не нужен раритетная Delphi v1.0... Работает быстро, вроде без глюков, компоненты есть (которых я не видал в D5 и т. п.).
Пошел диск покупать для с C++, а там Pascal с Delphi оказались... забавно

А вот и пример. adv/29.gif

Автор: foRaver 21.7.2004, 08:52
Pakshin A. S., 20 мб говоришь? Найдёшь куда залить? Очень поиметь хочся...smile.gif
Наверное многие будут тебе благодарны ;)

Автор: Гость_Максим 21.7.2004, 09:14
Спасибо за ответы. Но все таки, как насчет приложений баз данных? Существуют ли преимущества Java перед Delphi если говорить о разработке приложений баз данных:

A. Клиент-сервер среднего масштаба под Win32
Б. Трехзвенных клиент-сервр
В. Приложений для Web

Иными словами проще ли по сравнению с Delphi создавать такие приложения с помощью Java?

Автор: foRaver 21.7.2004, 10:03
A: думаю что Delphi очень даже актуальный инструмент для данного выбора.
В: Для web я-бы всётаки доверился-бы Java. Незнаю как тебе это толком объяснить... просто Java справляется с этим в коем роде лучше, ну а тем более если говорить о кроссплатформенности и движках, то наверное под Java выбора больше, в том числе и в RTFM. Если я не прав, просьба меня просто поправить. smile.gif

Автор: chipset 21.7.2004, 10:38
А вы бы в C++ сунули tounge.gif
Разве могут Delphi'сты сказать что Delphi умирает;)
Я вот мимо только пробегал...
Для веб-приложений имхо лучше ASP.NET и C#, если честно я не представлю куда там всунуть Дельфи..
Цитата

Про отмирание:
на этом форуме раздел с Delphi один из самых популярных и многочисленных... вывод сделай сам.

А я уже давно заметил rolleyes.gif
Но это не аргумент bored.gif

Автор: <Spawn> 21.7.2004, 11:37
chipset В Дельфи для этого есть, например, DataSnap.

Цитата
росто Java справляется с этим в коем роде лучше, ну а тем более если говорить о кроссплатформенности и движках, то наверное под Java выбора больше, в том числе и в RTFM
Не могу в чем либо уверять, так как с Явой не работал, да и с Дельфи в этой области тоже, но знаю, что в Дельфи для этого можно использовать SOAP(для кроссплатформенности).
Добавлено @ 11:41
Еще добавлю на это:

Цитата
Для веб-приложений имхо лучше ASP.NET и C#, если честно я не представлю куда там всунуть Дельфи..
В Дельфи при создании програм пободного рода, создается ДЛЛ-ка, которая добавляется как расширение сервера. Так вот, всегда вроде было, что скомпилированый код быстрее интрепретируемого.

Автор: Pakshin A. S. 21.7.2004, 13:28
На выходных Delphi V1.0 будет доступна для всех желающих!!!

Автор: Gorcer 22.7.2004, 14:31
Если Delphi умрет, то это произойдет только с появлением более удобной и мощной, т.к. он может отмереть если вы программеры перестанете им пользоваться, а я думаю вы врядли пойдете в ущерб своим возможностям и удобству. wink.gif

И вообще, какая разница на чем учиться, получив приличный опыт в программировании можно овладеть любым языком, а получать его можно на чем угодно, советую паскаль!

Автор: LSD 11.5.2011, 13:30
Цитата(Гость_Максим @  20.7.2004,  11:35 Найти цитируемый пост)
Что же теперь бросать и начинать осваивать Java?

Конечно! Пока еще не слишком поздно smile 

Автор: CodeMonkey 11.5.2011, 13:50
OMG  smile 

Автор: mniip 11.5.2011, 20:21
Я наблюдаю что то типа отмирания.
Но искренне надеюсь что фирма Borland соберется с силами и что то смастерит.

Я начинал с паскаля, дальше HTML+javascript, Flash+ActionScript, Delphi, C++

Но я предпочитаю pascal и delphi как САМЫЕ ОПРЕДЕЛЁННЫЕ языки. Ну и соответственно среди них выбираю delphi тк под windows

Автор: bems 11.5.2011, 21:07
Цитата(mniip @  11.5.2011,  20:21 Найти цитируемый пост)
Но искренне надеюсь что фирма Borland соберется с силами и что то смастерит.
why so slow?

Автор: AKATAN 11.5.2011, 23:15
Боже! Тема открыта 20.7.2004. 
т.е. ей почти 7 лет!
раритет!
артефакт.

з.ы. а Delphi то все еще умирает... 
семь лет уже умирает...

умирая - дает нам работу
умирая - дает реализовывать крупные проекты
умирая - даже умудряется развиваться! (в предсмертных конвульсиях)

однозначно скоро умрет.

всего пару десятков годиков - и Дельфи труп.

адназначнА.

Автор: cemick 12.5.2011, 00:35
адский ад какой то

и да, надо запомнит, что делфи самый  ОПРЕДЕЛЕННЫЙ ЯЗЫК

пора уже роботом вычленять слова  "умирает" в топиках и заменять на http://www.isdelphidead.com/

Автор: AKATAN 12.5.2011, 08:49
Цитата

http://www.isdelphidead.com/

Гггггг )) Улыбнул!

Автор: LSD 12.5.2011, 18:41
Цитата(AKATAN @  12.5.2011,  00:15 Найти цитируемый пост)
з.ы. а Delphi то все еще умирает... 
семь лет уже умирает...

А ты знаешь сколько может прожить больной спидом? smile 



Цитата(AKATAN @  12.5.2011,  00:15 Найти цитируемый пост)
дает реализовывать крупные проекты

Это ты про Скайп? Так мы уже выяснили что он http://forum.vingrad.ru/forum/topic-329132.html smile 



Цитата(AKATAN @  12.5.2011,  00:15 Найти цитируемый пост)
умирая - даже умудряется развиваться!

Это ты про то, что вначале замутили поддержку Linux, потом забили на нее, аналогично .NET?

Автор: cemick 12.5.2011, 19:55
Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
Это ты про Скайп? Так мы уже выяснили что он умирает  

Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
А ты знаешь сколько может прожить больной спидом?  

Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
Это ты про то, что вначале замутили поддержку Linux, потом забили на нее, аналогично .NET? 

слишком толсто, элегантнее надо тролить

Автор: bems 12.5.2011, 19:58
Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
Это ты про Скайп? Так мы уже выяснили что он умирает
а чо, нормально продался. после таких денег пусть хоть с нуля переписывают smile

Автор: CodeMonkey 12.5.2011, 20:11
Новость дня: Microsoft открывает тысячу вакансий на Delphi программистов  smile 

Автор: Akella 13.5.2011, 09:01
Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
Это ты про то, что вначале замутили поддержку Linux, потом забили на нее,

её уже пытаются вернуть назад smile

Добавлено @ 09:02
Цитата(bems @ 12.5.2011,  19:58)
Цитата(LSD @  12.5.2011,  18:41 Найти цитируемый пост)
Это ты про Скайп? Так мы уже выяснили что он умирает
а чо, нормально продался. после таких денег пусть хоть с нуля переписывают smile

да уж, офигеть.... такая маленькая программка, а 8,5 миллиардов получили, офигеть, ктоб у меня купил вот так программку  smile , хотябы за милЪярд

Автор: cemick 13.5.2011, 09:16
А тем временем на других форумах обсуждают возможный ренесанс C++ в MS навеянное статьей http://www.zdnet.com/blog/microsoft/what-is-winc-and-how-does-it-figure-in-microsofts-bid-to-make-tools-a-2-billion-business/9359

Автор: AKATAN 18.5.2011, 16:24
Цитата(LSD @ 12.5.2011,  18:41)
Цитата(AKATAN @  12.5.2011,  00:15 Найти цитируемый пост)
дает реализовывать крупные проекты

Это ты про Скайп? Так мы уже выяснили что он http://forum.vingrad.ru/forum/topic-329132.html smile 

Не-а. Это я про МОИ проекты. Два года Delphi кормит меня и моих подчиненных.
Заказчик доволен. 

Пример.

while true do
  begin

Задача: дистанционный сбор данных с тепловодосчетчиков (250 объектов).
Реализовать надо как и программную, так и "физическую" часть.
Бюджет: 300 000$

Клиенту не надо ваши мультиплатформенности. У него нету мака. Он не знает что такое Линукс. Ему надо:
Надежность, ДЕШЕВИЗНА, свистелки_и_перделки в диспетческом приложении.

Аппаратка на Си, сервер Дельфи. Приложение клиента - Дельфи.

Я не буду искать себе в штат Java девелопера, который хочет ЗП от 4-5К мертвых американских президентов. Я возьму ТРЕХ молодых программистов Delphi за 4К на всех троих.
Я не буду использовать Oracle для малой БД. Я возьму фришный Firebird.
Я не буду сцать кипятком, доказывая что использование глобальных переменных это моветон.

Я сдам проект. Заработаю. Немного дострою дом под Киевом.

Точка.

  end;

А что лучше, хуже, умирает, оживает – мне сердечно П.О.Х.

Цитата

программировать надо не на языке, а с его помощью


Автор: Akella 18.5.2011, 20:31
AKATAN, браво smile

Автор: Frees 20.5.2011, 20:23
Цитата(AKATAN @  18.5.2011,  19:24 Найти цитируемый пост)
Я возьму ТРЕХ молодых программистов Delphi за 4К на всех троих.

Java нынче в институтах учат, эти ТРОЯ и на Java с тем же успехом писать будут.


Цитата(AKATAN @  18.5.2011,  19:24 Найти цитируемый пост)
ДЕШЕВИЗНА

а разве Delphi дешевле Java?

Автор: Rohoss 21.5.2011, 20:51
Цитата(mniip @  11.5.2011,  20:21 Найти цитируемый пост)
Но искренне надеюсь что фирма Borland соберется с силами и что то смастерит.

Уважаемый, такой фирмы давно нет  smile 

Интересно, а кто нибудь в Европе или США заказывает софт на Делфи?


Автор: Frees 22.5.2011, 17:51
Цитата(Rohoss @  21.5.2011,  23:51 Найти цитируемый пост)
Интересно, а кто нибудь в Европе или США заказывает софт на Делфи?

заказывают как правило решение, инструмент не важен.

Автор: Rohoss 22.5.2011, 17:55
Цитата(Frees @  22.5.2011,  17:51 Найти цитируемый пост)
Цитата(Rohoss @  21.5.2011,  23:51 )
Интересно, а кто нибудь в Европе или США заказывает софт на Делфи?

заказывают как правило решение, инструмент не важен. 

Но покупают исходный код.

Автор: Frees 22.5.2011, 18:07
Цитата(Rohoss @  22.5.2011,  20:55 Найти цитируемый пост)
Но покупают исходный код.

покупают решение своей проблемы!!исходный код, зачем, он вторичен...?

Автор: Keeper89 5.6.2011, 12:48
AKATAN, все бы это хорошо, вот только с каких торрентов ты будешь скачивать Delphi, чтобы это было дешевле?

Автор: Rohoss 5.6.2011, 18:36
Цитата(Frees @  22.5.2011,  18:07 Найти цитируемый пост)
покупают решение своей проблемы!!исходный код, зачем, он вторичен...? 

Клиентам нужны решения, которые будут интегрироваться с решениями, которые у них уже есть. Поэтому важен и язык разработки и исходный код. Возможно на территории пост-советского пространства всё по другому, но наша компания работает с клиентами в основном из США, поэтому поставляется так же большая часть исходного кода и документация. Про проекты на Делфи не слышал.


Цитата(AKATAN @  18.5.2011,  16:24 Найти цитируемый пост)
Цитата(LSD @ 12.5.2011,  18:41)
Цитата(AKATAN @  12.5.2011,  00:15 )
дает реализовывать крупные проекты

Это ты про Скайп? Так мы уже выяснили что он умирает  

Не-а. Это я про МОИ проекты. Два года Delphi кормит меня и моих подчиненных.
Заказчик доволен. 

Пример.

while true do
  begin

Задача: дистанционный сбор данных с тепловодосчетчиков (250 объектов).
Реализовать надо как и программную, так и "физическую" часть.
Бюджет: 300 000$

Клиенту не надо ваши мультиплатформенности. У него нету мака. Он не знает что такое Линукс. Ему надо:
Надежность, ДЕШЕВИЗНА, свистелки_и_перделки в диспетческом приложении.

Аппаратка на Си, сервер Дельфи. Приложение клиента - Дельфи.

Я не буду искать себе в штат Java девелопера, который хочет ЗП от 4-5К мертвых американских президентов. Я возьму ТРЕХ молодых программистов Delphi за 4К на всех троих.
Я не буду использовать Oracle для малой БД. Я возьму фришный Firebird.
Я не буду сцать кипятком, доказывая что использование глобальных переменных это моветон.

Я сдам проект. Заработаю. Немного дострою дом под Киевом.

Точка.

  end;

А что лучше, хуже, умирает, оживает – мне сердечно П.О.Х.

Цитата

программировать надо не на языке, а с его помощью


Ну не верю я что такое сообщение мог написать руководитель проекта smile

И потом, для таких "проектов" наверное можно и VB6 использовать  smile 
Калькулятор пишется одинаково на любом ЯП, но если это серьёзный проект, который поддерживается и расширяется, то Делфи тут, уж простите smile

Автор: Keeper89 5.6.2011, 20:35
Цитата(Rohoss @  5.6.2011,  18:36 Найти цитируемый пост)
Калькулятор пишется одинаково на любом ЯП, но если это серьёзный проект, который поддерживается и расширяется, то Делфи тут, уж простите smile

Чем плох Delphi с точки зрения "поддержки и расширения"?

Автор: Rohoss 5.6.2011, 21:36
Цитата(Keeper89 @  5.6.2011,  20:35 Найти цитируемый пост)
Чем плох Delphi с точки зрения "поддержки и расширения"? 

Keeper89, ну на такие вопросы даже отвечать не хочется, так как приходится рассказывать что солнце излучает свет и тепло smile . Давай лучше сделаем всё более наглядно. Ты сделаешь, для примера, очень простое приложение, которое состоит из основного проекта, который будет компилироваться в *.exe и нескольких дополнительных проектов, которые будут компилироваться в *.dll. В проектах, которые будут компилироваться в dll, будут определены классы, которые нужно будет использовать в основном *.exe проекте. Вот тебе и расширяемость. Ведь согласись, модульность - это очень важная часть расширяемости. Ну а поддержка вытекает из всего этого  smile 

Автор: Rohoss 5.6.2011, 23:34
Вот я не поленился, и раз уж на то пошло, сделал расширяемый калькулятор  smile 
Конечно, пример надуманный и функционал мог бы быть куда серьёзней, но что у нас есть:
Сборка Contracts. Название говорит само за себя, тут определено два интерфейса и один класс
Код

    public interface IOperation
    {
        double Operate(OperationData operationData);

        string Description { get; }
    }

Код

public interface IOperationContainer
    {
        IEnumerable<IOperation> Operations { get; }
    }

Код

    public class OperationData
    {
        public double X { get; set; }

        public double Y { get; set; }
    }


Как видите, кода используется очень мало  smile 

Дальше, у нас есть основное приложение, здесь есть реализация интерфейса IOperationContainer
Код

    [Export(typeof(IOperationContainer))]
    public class OperationContainer : IOperationContainer
    {
        [ImportMany]
        IEnumerable<IOperation> _operations;

        public IEnumerable<IOperation> Operations
        {
            get { return _operations; }
        }
    }


и сама инициализация механизма состыковки модулей и привязки к гую
Код

        private CompositionContainer _container;

        [Import(typeof(IOperationContainer))]
        public IOperationContainer _operationContainer;


        public MainWindow()
        {
            InitializeComponent();
            var catalog = new AggregateCatalog();
            catalog.Catalogs.Add(new AssemblyCatalog(typeof(MainWindow).Assembly));
            catalog.Catalogs.Add(new DirectoryCatalog("Modules"));
            _container = new CompositionContainer(catalog);
            this._container.ComposeParts(this);
            lb.ItemsSource = _operationContainer.Operations;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button btn = (Button)sender;
            IOperation operation = (IOperation)btn.Tag;
            OperationData operationData = new OperationData();
            operationData.X = double.Parse(textBox1.Text);
            operationData.Y = double.Parse(textBox2.Text);
            double res = operation.Operate(operationData);
            textBox3.Text = res.ToString();
        }


На этом всё, наш калькулятор готов, правда функционал калькулятора у нас ещё не готов, но он будет содержатся в других модулях  smile 
Что интересно, в проекте у нас есть папка Modules, там мы и будем содержать наши модули, в которых хранится реализация логики подсчётов. Что нужно для создания модуля? Всё предельно просто, покажу на примере создания модуля для суммирования двух чисел.
Итак, нам нужно создать проект, в проект добавляем ссылку на сборку System.ComponentModel.Composition и соответственно на наш контракт Contracts. Добавляем новый класс, который будет реализовывать интерфейс IOperation, и метим атрибутом [Export(typeof(IOperation))]. Это всё что нужно, далее логика подсчёта сумы, вот весь код данного модуля
Код

    [Export(typeof(IOperation))]
    public class AddOperation : IOperation
    {
        public double Operate(OperationData operationData)
        {
            return operationData.X + operationData.Y;
        }

        public string Description { get { return "Add operation"; } }
    }

Вот и всё. Теперь, запустив построенное приложение, мы увидим три текстовых поля (два для ввода данных, одно для результата), и список кнопок. Каждая кнопка будет содержать текст (Description модуля) и будет вызывать логику обработки данных. При чём, нам не нужно добавлять кнопку вручную, всё происходит автоматически. Мы создаём модуль, компилируем в dll и бросаем в папку Modules. При чём в одной dll может быть сколько угодно модулей, так же как и dll в папке Modules может быть сколько угодно  smile 
Проект приаттачел. Необходимы, VS210 + .Net 4.0

Просьба повторить всё так же легко и культурно на Делфи

Добавлено через 14 минут и 24 секунды
И давайте в дальнейшем поменьше флейма и побольше кода и доказательств. Я когда то был делфистом, а теперь дотнетчик. И пускай я был не крутым делфистом, а сейчас я не крутой дотнетчик, но обе технологии я на себе испытал, и сделал окончательный и бесповоротный вывод. В общем после дотнета использовать Делфи ни малейшего желания нет  smile 

Автор: Rohoss 5.6.2011, 23:56
Для тех, кому не хочется качать весь проект, может скачать только приложение. Нужен .Net 4.0  smile  

Автор: Rohoss 6.6.2011, 00:11
Для тех кто не верит сделал простенькую dll, которую вы можете бросить в папку Modules, будь это приложение или проект, и сами можете наблюдать изминения  smile 


Автор: Akella 6.6.2011, 08:48
и чооо

Автор: Zloxa 6.6.2011, 09:41
Rohoss
Цитата(Rohoss @  5.6.2011,  21:36 Найти цитируемый пост)
 В проектах, которые будут компилироваться в dll, будут определены классы, которые нужно будет использовать в основном *.exe проекте. Вот тебе и расширяемость. Ведь согласись, модульность - это очень важная часть расширяемости. 

Не удачный пример. Емнип, в Делфях подобная шнаяга реализуется с той же непринужденностью.

Цитата(Rohoss @  5.6.2011,  21:36 Найти цитируемый пост)
Ну а поддержка вытекает из всего этого  

Вероятно мы по разному понимаем понятие поддержки. По мне так разработка и поддержка имеют очень мало общего. Предложенная тобой схема расширения функционала, призвана облегчить(удешевить) дальнейшую разработку, развитие. Однако же, с точки зрения поддежки - чем гибче система, тем сложнее ее эксплуатация, тем больше компетенций требуется обслуживающему персоналу, тем более он дорог. Получается ты размазиваешь затраты на развитие проекта в области его эксплуатаци, пытаешься удешевить проект в одной, более краткосрочной фазе, за счет удорожания в другой - более долгосрочной.

Но и удешевление разработки - вопрос так же - не очевидный. Разработка интерфейса предполагает документирование, усложняется процесс тестирования и поддержания тестовой среды в рабочем состоянии, увеличиваетя порог входа в проект новичков, что увеличивает риски и стоимость разработки.
Цитата(Rohoss @  5.6.2011,  21:36 Найти цитируемый пост)
Ведь согласись, модульность - это очень важная часть расширяемости.

Это может показаться странно, но с тезисом я согласен. Просто нахожу что приведенные пример не бесспорно этот тезис демонстрирует.

Автор: Rohoss 6.6.2011, 10:22
Цитата(Zloxa @  6.6.2011,  09:41 Найти цитируемый пост)
Не удачный пример. Емнип, в Делфях подобная шнаяга реализуется с той же непринужденностью.

Вроде как нет smile . Если да, то просьба привести пример.

Цитата(Zloxa @  6.6.2011,  09:41 Найти цитируемый пост)
Вероятно мы по разному понимаем понятие поддержки. По мне так разработка и поддержка имеют очень мало общего. Предложенная тобой схема расширения функционала, призвана облегчить(удешевить) дальнейшую разработку, развитие.

Вообще да, я больше имел ввиду дальнейшее развитие. Потому, что скажем если это корпоративный софт - то его постоянно приходится развивать. Но с точки зрения поддержки тоже всё прекрасно, имхо. А с точки зрения эксплуатации пользователю пофиг что там за система. И если мы обнаружим баги в приложении, то в модульном приложении они правятся намного быстрее, это я отношу к поддержке.
 
Цитата(Zloxa @  6.6.2011,  09:41 Найти цитируемый пост)
Разработка интерфейса предполагает документирование, усложняется процесс тестирования и поддержания тестовой среды в рабочем состоянии, увеличиваетя порог входа в проект новичков, что увеличивает риски и стоимость разработки.

Zloxa, ну так извини, если у нас не будет интерфейса и документации мы вообще не имеем права соваться в большие проекты smile . Иначе, в конце концов, движущих частей станет насколько много, что мы просто не сможем с этим совладать. Что касается тестирования, то я честно, не знаю чем оно усложняется из за определения интерфейса  smile . 

Автор: Zloxa 6.6.2011, 10:48
Цитата(Rohoss @  6.6.2011,  10:22 Найти цитируемый пост)
 Иначе, в конце концов, движущих частей станет насколько много, что мы просто не сможем с этим совладать.

Это верно подмечено. Гибкость действительно не нужна там, где не нужна. А в случае инхауз разработки, она не нужна практически никогда. И приведенный тобой пример модульности врядли окажется полезен, если ты собираешься эти модули разрабатывать самостоятельно. Обычно этот подход используют для того, чтобы успокоить заказчика, предоставив возможность заниматься развитием системы третьим лицам. Это якобы должно минимизировать его риски.
Цитата(Rohoss @  6.6.2011,  10:22 Найти цитируемый пост)
А с точки зрения эксплуатации пользователю пофиг что там за система.

Под эксплуатацией я подразумевал службу эксплуатации. Т.е тех, кто настраивает пользователю окружение, принимает заявки на обслуживание, выполняет первичную диагностику проблем.
Цитата(Rohoss @  6.6.2011,  10:22 Найти цитируемый пост)
Zloxa, ну так извини, если у нас не будет интерфейса и документации мы вообще не имеем права соваться в большие проекты

Именно по этому не стоит мельчить и называть модулем то, что таковым не является. В отдельную библиотеку, мне думается, целесообразно выносить тот функционал, который может оказаться востребован более чем одним модулем, но целесообразность использования динамических библиотек для  расширения функционала, для меня не очевидна.

Цитата(Rohoss @  6.6.2011,  10:22 Найти цитируемый пост)
Вроде как нет  . Если да, то просьба привести пример.

Увы, я пять лет уже не писал на делфях, но точно помню, когда я был юн и глуп, тоже пытался реализовать эту концепцию средствами bpl, и, в первом приближении, это тоже казалось легко, просто и нужно. 

Автор: Rohoss 6.6.2011, 11:37
Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
Гибкость действительно не нужна там, где не нужна.

Тут я с тобой согласен  smile 

Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
А в случае инхауз разработки, она не нужна практически никогда. И приведенный тобой пример модульности врядли окажется полезен, если ты собираешься эти модули разрабатывать самостоятельно.

А тут нет smile . И даже если эти модули будешь разрабатывать самостоятельно, от этого всё равно получишь выигрыш. А если разработка ведётся группой, то несомненный выигрыш  smile . Думаю, не стоит полностью ориентироваться на мой пример - так как это даже не верхушка айсберга. В настоящих проектах в модулях даже содержатся сложные элементы управления, которые обладают логикой обработки данных, сервисы различного рода и тд...

Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
Под эксплуатацией я подразумевал службу эксплуатации. Т.е тех, кто настраивает пользователю окружение, принимает заявки на обслуживание, выполняет первичную диагностику проблем.

Ну уж простите, если такая служба есть, то есть, это не просто сисадмины, а служба внедрения, которая занимается установкой продукта, обучением персонала, то тут вообще проблем быть не должно. Людям за это деньги платят в конце то концов, они должны их хоть как-то отрабатывать.

Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
Именно по этому не стоит мельчить и называть модулем то, что таковым не является. В отдельную библиотеку, мне думается, целесообразно выносить тот функционал, который может оказаться востребован более чем одним модулем

Я думаю зависит от ситуации. Возьмём к примеру прикреплённый мной проект. У нас есть модуль, который умеет суммировать два числа, и тут нам понадобился функционал, который будем множить и вычитать. Вместо того, чтобы менять существующую библиотеку (которая суммирует), правильней будет создать ещё один отдельный модуль с функциями умножения и вычитания. Причины: документация по модулю уже написана и передана третьим лицам, персонал уже умеет обращаться с софтом. В таком случае, мы не изменяем приложения - мы его обновляем  smile 

Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
Увы, я пять лет уже не писал на делфях, но точно помню, когда я был юн и глуп, тоже пытался реализовать эту концепцию средствами bpl, и, в первом приближении, это тоже казалось легко, просто и нужно.

Может через bpl что-то отдалённо подобное и можно реализовать, вот только они чего-то не прижились. А через dll всё это выйдет такими геморроями, что и расширяемости не захочется smile  

Цитата(Zloxa @  6.6.2011,  10:48 Найти цитируемый пост)
когда я был юн и глуп, тоже пытался реализовать эту концепцию средствами bpl, и, в первом приближении, это тоже казалось легко, просто и нужно. 

Во всяком случае подобными схемами софт разрабатывают много команд. В общем, почти весь "крутой" софт модульный  smile 

Автор: Zloxa 6.6.2011, 12:31
Цитата(Rohoss @  6.6.2011,  11:37 Найти цитируемый пост)
Ну уж простите, если такая служба есть, то есть, это не просто сисадмины, а служба внедрения, которая занимается установкой продукта, обучением персонала, то тут вообще проблем быть не должно. Людям за это деньги платят в конце то концов, они должны их хоть как-то отрабатывать.

 smile Ты опять все путаешь. Это ну ни сколечко не внедренцы. Внедренцы как раз таки и занимаются тем, что переводят проект из фазы разработки, в фазу эксплуатации -  проводят обучение пользователей и эксплуатационных служб.

Цитата(Rohoss @  6.6.2011,  11:37 Найти цитируемый пост)
Во всяком случае подобными схемами софт разрабатывают много команд.

Да. Много мух не может ошибаться. Это тезис.  smile 

Цитата(Rohoss @  6.6.2011,  11:37 Найти цитируемый пост)
В настоящих проектах в модулях даже содержатся сложные элементы управления, которые обладают логикой обработки данных, сервисы различного рода и тд...

Целесообразность вноса в обособленное звено прикладного слоя, физическое отделение его от презентативного, это, мне кажесятся - совсем другой случай, не надо его сюда подмешивать. Ты говорил исключительно о расширении функционала.

Цитата(Rohoss @  6.6.2011,  11:37 Найти цитируемый пост)
Думаю, не стоит полностью ориентироваться на мой пример

Я о том, собственно, и толкую. Полезность продемонстрированного тобой подхода - сомнительна.

Цитата(Rohoss @  6.6.2011,  11:37 Найти цитируемый пост)
Может через bpl что-то отдалённо подобное и можно реализовать, вот только они чего-то не прижились

Тут ты не прав. Очень даже прижилось, даже сильнее чем следует, со всеми вытекающими. А вытекает, поверь мне, столько, что только успевай подтирать.  smile 

Желание придать гибкости каким бы то ни было системам, обуславливается, как правило, не полным представлением об их целевом назначении на этапе проектирования. В случае производства массового, коробочного софта - это стремление понятно, целевая аудитория многогранна, предоставление средств кастомизации призвано ее расширить. Но это исключительно марктинговая потребность, не техническая. С технической точки зрениея, требование универсализации, в этом случае, повлечет за собой серьезные издержки. 

В случае же  производства штучного софта, требование универсализации должно бы диктоваться извне, от заказчика, как я уже говорил, имея целью снизить его риски... С технической же точки зрения, профит от суррогатного усложнения системы с целью обеспечения дополнительных степеней свободы, при условии ясного понимания целевого назначения продукта и требований к нему.... мне совершенно не ясен. Ведь даже, казалось бы не значительная проблема, которая выстреливает единожды в год, умноженная уже на 350 инсталляций, становится повседневной  рутиной и черезмерная гибкость в таких случаях, из великого блага превращается в проклятье. А гибкость всегда достигается потерей прочности.

Резюмируя эти много букв, я пытался сказать что-то вроде : Требования универсализации практически всегда усложняют реализацию, потому они практически никогда не могут быть обусловлены технически. Технический специалист должен понимать, что реализуя универсалный подход, он всякий раз прогибается. Под аналитика ли, который не доделал свою работу до конца, под заказчика ли, который бздит что его кинут, под РПшника ли, который туп и не понимает как правильно распоряжаться бюджетом. Технический специалист должен стремиться производить все максимально просто и железобенно. Реализуюя требования универсализации, разраб уступает, соглашается на компромисс, потому в праве требовать компенсацию. Самостоятельно же стремиться к универсализации.... пожалуй, если только забавы ради, от скуки, ради красивой картинки.

Автор: Akella 6.6.2011, 13:02
От синтаксиса C, C++, C# в глазах рябит. Я имел ввиду от этих всех скобочек. Я смотрю на код C# и вижу, что несколько строчек кода приходтся размазывать на пол экрана по вертикали и горизонтали, чтобы код был более мнее читалбельным и нормально воспринимался мозгом.

Автор: Rohoss 6.6.2011, 13:07
Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Ты опять все путаешь. Это ну ни сколечко не внедренцы. Внедренцы как раз таки и занимаются тем, что переводят проект из фазы разработки, в фазу эксплуатации -  проводят обучение пользователей и эксплуатационных служб.

Тогда я не понимаю в чём проблема? Какая им разница что эксплуатировать, они всё равно не понимают что там

Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Да. Много мух не может ошибаться. Это тезис.  

Тут, имхо, дело в другом. Сложный софт стоит очень дорого, простой софт - очень дёшево или вообще ничего не стоит. Но разрабатывать сложный софт очень тёжело, и чтобы пойти на его разработку нужно много чем вооружится: хорошая среда разработки, хороший набор библиотек, хороший набор паттернов и возможности системы их использовать, ну и список можно продолжать... .net + vs + m$ даёт набор куда покруче чем делфи. Или фирма, которая за ним стоит

Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Целесообразность вноса в обособленное звено прикладного слоя, физическое отделение его от презентативного, это, мне кажесятся - совсем другой случай, не надо его сюда подмешивать. Ты говорил исключительно о расширении функционала.

Не другой случай, а более расширенный вариант данного случая. Расширения функционала это самый простой вариант использования, я ведь говорил, что мой пример это даже не верхушка айсберга. Я понимаю, что разделения функционала и презентационного слоя может показаться абсолютно разными вещами, но на самом всё состыковывается довольно логично и красиво.

Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Я о том, собственно, и толкую. Полезность продемонстрированного тобой подхода - сомнительна.

В большинстве случаев эти модули включаются статически. Но это не сильно меняет мой пример. В данном случаи, в примере нужно заменить только пару строчек кода, и будут использоваться только те библиотеки, которые мы вручную прописали. Это может быть очень удобно, так как во время разработки мы можем решить заменить один модуль на другой, и просто изменим пару строк кода и у нас всё будет прекрасно работать.

Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Желание придать гибкости каким бы то ни было системам, обуславливается, как правило, не полным представлением об их целевом назначении на этапе проектирования.

Ну а тебя это удивляет? smile Это было бы идеально, если бы мы в точности обладали знаниями всех требований, но: 
требования заказчика могут меняться даже во время разработки, 
зачастую заказчик хочет несколько новых фич, когда система готова, 
софт нужно развивать

Цитата(Zloxa @  6.6.2011,  12:31 Найти цитируемый пост)
Ведь даже, казалось бы не значительная проблема, которая выстреливает единожды в год, умноженная уже на 350 инсталляций, становится повседневной  рутиной и черезмерная гибкость в таких случаях, из великого блага превращается в проклятье.

Модульный софт имеет меньше проблем, нежели монолитный, проблемы в модульном софте решаются быстрее нежели в монолитном. Например, в приведённом мною примере мы попытаемя умножить и приложение упадёт, мы сразу, с большой степенью уверенности будем знать где искать проблему.

Добавлено через 2 минуты и 13 секунд
Цитата(Akella @  6.6.2011,  13:02 Найти цитируемый пост)
От синтаксиса C, C++, C# в глазах рябит.

Это дело привычки. Мне наоборот Делфи кажется расфуфыренным и мало информативным  smile 

Автор: Zloxa 6.6.2011, 13:20
Цитата(Rohoss @  6.6.2011,  13:07 Найти цитируемый пост)
 мы сразу, с большой степенью уверенности будем знать где искать проблему.

 smile 
И окажется она где-то в районе стыка. При накате версии кто-то где-то накосячил. Опыт показывает что 80% говна сочится именно в местах стыков. ))

Автор: Rohoss 6.6.2011, 13:34
Цитата(Zloxa @  6.6.2011,  13:20 Найти цитируемый пост)
Опыт показывает что 80% говна сочится именно в местах стыков. ))

То то и оно, что я так понимаю, этот опыт с Делфи. А вот эти "стыки" в .нете очень хорошо продуманы и проблема несостыковки весьма незначительна. Вот за что мне и нравится .нет, что ты можешь сконцентрироваться на разработки функционала, а всю срань за тебя делает инфраструктура .нет. Однако, среди делфистов находится много умников, которые считают, что они будут управлять памятью лучше чем это делает GC и  реализовывать прочую "крутизну" которая уже реализованная грамотными разработчиками серьёзных компаний. Однако эти навороченные делфисты считают что они всё сделают лучше. Вот откуда это говнище и течёт  smile 

Автор: Akella 6.6.2011, 14:12
Цитата(Rohoss @  6.6.2011,  13:07 Найти цитируемый пост)
От синтаксиса C, C++, C# в глазах рябит.

Это дело привычки. Мне наоборот Делфи кажется расфуфыренным и мало информативным  smile 


В чем же выражается расфуфыренность и малоинформативность?

Добавлено @ 14:13
ты просто хотел сказать что-то плохое, но нужных слов не нашёл smile  ?

Добавлено @ 14:14
Цитата(Rohoss @  6.6.2011,  13:34 Найти цитируемый пост)
То то и оно, что я так понимаю, этот опыт с Делфи. А вот эти "стыки" в .нете очень хорошо продуманы и проблема несостыковки весьма незначительна. Вот за что мне и нравится .нет,

Я ПОНЯЛ  smile  smile  smile  smile в  дотнте стыки - это самое главное ,чтобы ### не сочилось  smile

Добавлено @ 14:15
Потому что там его столько, что программы на дотнете тормознутее. Вот у меня программа Samsung Kies, мне непривычно с ней работать, т.к. она подторможивает.

Добавлено через 5 минут и 13 секунд
даже при том, что проц двухъядерный и памяти 2 гига

Автор: Zloxa 6.6.2011, 14:40
Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
Потому что там его столько, что программы на дотнете тормознутее.

user posted image
 smile 
 smile 

Цитата(Rohoss @  6.6.2011,  13:34 Найти цитируемый пост)
То то и оно, что я так понимаю, этот опыт с Делфи

Я сейчас говорил ни о делфи, ни о доднете. Я сейчас говорил исключительно о подходе. И целью имел не что либо дискредетировать, а предупредить и уберечь, заставить задуматься, скорректировать свою позицию относительно полезности универсальности. В профильных разделах я постоянно остерегаю новичков от использования EAV - с первого взгляда офигенно универсальной концепции хранения данных. Однако фиг кто убережется. Все предпочитают отгрести самостоятельно. Зато потом таки безумно приятно читать нечто вроде "http://zendframework.ru/forum/index.php?topic=1999.msg12927#msg12927", от своих былых опонентов.

Автор: Rohoss 6.6.2011, 14:42
Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
Потому что там его столько, что программы на дотнете тормознутее.

Ещё один считающий что .нет тормозит

Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
Вот у меня программа Samsung Kies, мне непривычно с ней работать, т.к. она подторможивает.

Хочешь на делфи программу которая будет тормозить на 10Гб оперативы?

Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
Я ПОНЯЛ         в  дотнте стыки - это самое главное ,чтобы ### не сочилось  

Это когда уже нечего сказать  smile 

Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
В чем же выражается расфуфыренность и малоинформативность?

В том, что место {} пол экрана занимают begin end :bed но думаю эту тему развивать не стоит, так как у каждого свои предпочтения. Я лишь хочу сказать, что привыкше к синтаксису C# делфистский синтаксис кажется плохим...

Цитата(Rohoss @  5.6.2011,  23:34 Найти цитируемый пост)
Просьба повторить всё так же легко и культурно на Делфи

Похоже приехали  smile  Решили что это и нафиг не надо, ну понятно, раз не можем - значит это никому не надо smile . Главное себя хорошо убедить в этом  smile

Добавлено через 5 минут и 26 секунд
Цитата(Zloxa @  6.6.2011,  14:40 Найти цитируемый пост)
Я сейчас говорил ни о делфи, ни о доднете.

А я говорю о делфи и о дотнете, и говорю о том, что в местах в которых в делфи течёт говнище в дотнете всё прекрасно работает

Цитата(Zloxa @  6.6.2011,  14:40 Найти цитируемый пост)
а предупредить и уберечь, заставить задуматься, скорректировать свою позицию относительно полезности универсальности.

При чём тут универсальность? smile  Я говорю о модульности

Автор: Zloxa 6.6.2011, 15:05
Цитата(Rohoss @  6.6.2011,  14:42 Найти цитируемый пост)
При чём тут универсальность?   Я говорю о модульности 

Ты создал универсальный модуль калькулятора, функционал которого наращивается модулями. Средствами унифицированного интерфеса. И, по неопытности, полагаешь что это удобно.

Цитата(Rohoss @  6.6.2011,  14:42 Найти цитируемый пост)
А я говорю о делфи и о дотнете, и говорю о том, что в местах в которых в делфи течёт говнище в дотнете всё прекрасно работает

Мне показалось, или ты уже припомнил что bplками предложенный тобой подход реализуется просто и не принужденно. Подход схожий,решения схожи. Проблемы - одинаковы. И, в своей сути, не имеют отношение к платформе. Исключительно к паттерну проектирования.

Автор: Rohoss 6.6.2011, 15:31
Цитата(Zloxa @  6.6.2011,  15:05 Найти цитируемый пост)
Мне показалось, или ты уже припомнил что bplками предложенный тобой подход реализуется просто и не принужденно.

Нет, я такого не говорил так же как и не отрицал что это возможно. Мне просто сделайте тоже и покажите как оно будет выглядеть. Я не удивлюсь если кто-то уже реализовал но стыдится показать smile 

Цитата(Zloxa @  6.6.2011,  15:05 Найти цитируемый пост)
Ты создал универсальный модуль калькулятора, функционал которого наращивается модулями.

Возможно наши с тобой понятия об универсальности не совпадают. Я не считаю что я создал универсальный калькулятор, я считаю что я создал расширяемый калькулятор. Да, и я полагаю что это удобно. Может это и по неопытности, но видишь ли, я использовал подход (точнее подобии шаблона подхода), который используется разработчиками мирового уровня. По большому счёту это не моё изобретение (как в делфи постоянно изобретают велосипед) и поэтому обвиняя меня в неопытности - ты обвиняешь в неопытности специалистов которые создали эти паттерны, поздравляю  smile 

И потом, никакого "унифицированного интерфеса" я не создавал. Это всё с делфи. В .нете это просто интерфейс. И "унифицированный" от слова уникальный а не универсальный.

Автор: Zloxa 6.6.2011, 15:49
Цитата(Rohoss @  6.6.2011,  15:31 Найти цитируемый пост)
я использовал подход (точнее подобии шаблона подхода), который используется разработчиками мирового уровня

Я лишь предложил тебе задуматься о причинах, побуждающих использовать этот подход, сопоставить профит с издержками, и оценить применимость к стоящим перед тобой задачами. И рекомендую задумываться над подобными вещами почаще. В предложенном тобой примере явного профита от подхода - нет. Область применения этого подхода ты явным образом не ограничиваешь, и мне не удается судить, слепо ли ты следуешь подсмотренным паттернам или же твое движение в этом направление обдуманно и осознано. Потому пытаюсь представить тебе к осмыслению несколько тезисов. К сожалению, мне не удается подобрать сколь нибудь внятный пример в рамках твоего кругозора, и ты просто не понимаешь о чем я толкую.

Ну и на счет аппеляции к мировым бестпрактис.... Сразу чувствуется, мало тебе доводилось в них окунатсья  smile

Добавлено через 4 минуты и 21 секунду
Цитата(Rohoss @  6.6.2011,  15:31 Найти цитируемый пост)
В .нете это просто интерфейс.

Интерфейс подразумевает унификацию работы с объектом. Посредством одного интерфейса ты можешь единообразно взаимодействовать с различного рода объектами, принадлежащих разным иерархиям и не состоящим в родстве. Разве в доднете это не так?

Автор: Rohoss 6.6.2011, 16:22
Цитата(Zloxa @  6.6.2011,  15:49 Найти цитируемый пост)
Интерфейс подразумевает унификацию работы с объектом. Посредством одного интерфейса ты можешь единообразно взаимодействовать с различного рода объектами, принадлежащих разным иерархиям и не состоящим в родстве. Разве в доднете это не так? 

Так  smile . Вот только в .нете гуиды возле интерфейсов не пишутся, чтобы его мега унифицировать smile . Но это наверное не сколько с делфи - сколько с ком связанно.

Цитата(Zloxa @  6.6.2011,  15:49 Найти цитируемый пост)
Потому пытаюсь представить тебе к осмыслению несколько тезисов. К сожалению, мне не удается подобрать сколь нибудь внятный пример в рамках твоего кругозора, и ты просто не понимаешь о чем я толкую.

Не о том ли что не нужно использовать петтерны для написания hello, world? Или о том что слишком много свободы - это зло? Это всё мы знаем smile 

Цитата(Zloxa @  6.6.2011,  15:49 Найти цитируемый пост)
Ну и на счет аппеляции к мировым бестпрактис.... Сразу чувствуется, мало тебе доводилось в них окунатсья

Возможно, однако остались только положительные воспоминания  smile . Для использования бест практик приходится достаточно времени уделить их изучению, однако, оказывается, всё это время десятерицей окупается smile 

Автор: Dik0n 6.6.2011, 17:37
Цитата

Ещё один считающий что .нет тормозит

Конечно тормозной, особенно если много графики в окне, все мельтешит и перерисовывается долго, твой пример из трех Edit кушает памяти больше чем проводник в Windows, а ты посмотри сколько он расширений загружает COM, ActiveX и т.д. Дак это я запустил только одну программу, которая ничего не делает уже 25 метров сожрала.
Я представляю если все проги на NET будут, один Фотошоп если его на нет перевести гига 4 будет жрать, про игры я вообще молчу.

ЗЫ: не знаю как у Вас, а у меня на компе не стоит по 8 гигов оперативки.

Автор: Frees 6.6.2011, 18:54
Dik0n, каждые 2 года производительность удваивается, тормоза, если они даже есть - временное явление..

Автор: Dik0n 6.6.2011, 20:49
Цитата(Frees @  6.6.2011,  18:54 Найти цитируемый пост)
Dik0n, каждые 2 года производительность удваивается, тормоза, если они даже есть - временное явление..

Ну да, если так пойдет, скоро напишут Net 2, который будет написан на Net и что-бы запустить обычную прогу, для распечатки документов на принтере, понадобится 6 ядерный комп с 16 гагами оперативки smile зато программы, будут писаться за считанные минуты и в две строчки кода.

Автор: Rohoss 6.6.2011, 21:04
Специально для умников, которым не нравится производительность в .нет: Можете почитать эту тему http://forum.vingrad.ru/forum/topic-283805/unread-1/hl/java+delphi/index.html . Там автор предлагает по соревноваться, вы пишете на Delphi/C++ а он Java/.Net . Правда автора уже нет на форуме, но при желании его можно найти smile Вот у вас прекрасный способ доказать тормузнутость .нета, а не только языком трепать  smile 

Автор: Keeper89 6.6.2011, 21:14
CodeMonkey уже как-то обсуждал "тормознутось". Чисто теоретически .NET-программы должны работать даже быстрее после первого запуска.

Добавлено через 1 минуту и 8 секунд
Цитата(Akella @  6.6.2011,  14:12 Найти цитируемый пост)
Потому что там его столько, что программы на дотнете тормознутее. Вот у меня программа Samsung Kies, мне непривычно с ней работать, т.к. она подторможивает.

Вот Nokia PC Suite у меня тормозит жутко. Но это же не значит что C++&QT отстой smile

Автор: Akella 7.6.2011, 12:02
Цитата(Rohoss @  6.6.2011,  14:42 Найти цитируемый пост)
Потому что там его столько, что программы на дотнете тормознутее.

Ещё один считающий что .нет тормозит


Я не сказал, что я так считаю, я сказал, что у меня личный опыт "общения" с программами, написанными на дотнете. Только не надо говорить, что те тормознутые программы были написаны тупыми программистами.

Добавлено через 2 минуты и 37 секунд
Цитата(Rohoss @  6.6.2011,  14:42 Найти цитируемый пост)
В том, что место {} пол экрана занимают begin end :

Ты меня так и не понял. Сами скобочки места не занимают.   Но если код форматировать, как в дельфи, сравнительно компактно, то код C# будет читаем с трудом. От этих скобочек будет мельтишить в глазах. А чтобы не мельтишило приходится код растягивать. Ну это я уже писал. Прошу - перечитай. Наверное опять не понял, да?

Добавлено через 4 минуты и 43 секунды
Цитата(Zloxa @  6.6.2011,  15:05 Найти цитируемый пост)
При чём тут универсальность?   Я говорю о модульности 

Ты создал универсальный модуль калькулятора, функционал которого наращивается модулями. Средствами унифицированного интерфеса. И, по неопытности, полагаешь что это удобно.


Я тоже пытался сделать так, чтобы программа была напичкана плагинами, aka модулями. Неудобно. Легче дописать что-то в программе и отправить новый экзешник. Хотя преимущество плагинов тоже имеет место быть.

Добавлено через 6 минут и 7 секунд
Цитата(Rohoss @  6.6.2011,  15:31 Найти цитируемый пост)
как в делфи постоянно изобретают велосипед

Что первое появилось, яйцо или курица дельфи или дотнет?

Добавлено через 8 минут и 47 секунд
Цитата(Dik0n @ 6.6.2011,  20:49)
Цитата(Frees @  6.6.2011,  18:54 Найти цитируемый пост)
Dik0n, каждые 2 года производительность удваивается, тормоза, если они даже есть - временное явление..

Ну да, если так пойдет, скоро напишут Net 2, который будет написан на Net и что-бы запустить обычную прогу, для распечатки документов на принтере, понадобится 6 ядерный комп с 16 гагами оперативки smile зато программы, будут писаться за считанные минуты и в две строчки кода.

Нет, я же говорил, что будет в IDE только одна кнопка "Сделать программу". Далее просто выбор типа программы с помощью небольшого мастера. smile

Добавлено через 9 минут и 22 секунды
Программисты не нужны будут как класс. Только Рохос и кнопка  smile

Добавлено через 10 минут и 21 секунду
Да, можно сказать, что все перешли с бейсика и ассемблера на языки высокого уровня и правильно сделали. Но что будет дальше .... хз... веб наверное.

Автор: Akella 7.6.2011, 12:22
Цитата(Rohoss @ 6.6.2011,  21:04)
Специально для умников, которым не нравится производительность в .нет: Можете почитать эту тему http://forum.vingrad.ru/forum/topic-283805/unread-1/hl/java+delphi/index.html . Там автор предлагает по соревноваться, вы пишете на Delphi/C++ а он Java/.Net . Правда автора уже нет на форуме, но при желании его можно найти smile Вот у вас прекрасный способ доказать тормузнутость .нета, а не только языком трепать  smile

Читал, но от этого используемые мною дотнет-программы НЕ стали работать быстрее.

Я не спорю, что какой-то там цикл на миллион итераций, может быть в дотнете отработает быстрее, чем дельфи, но я вижу и чувствую, что программы на дотнете тормознутее и жрут непомерное количество ресурсов  smile  smile  smile

Добавлено через 1 минуту и 8 секунд
Цитата(Keeper89 @  6.6.2011,  21:14 Найти цитируемый пост)
от Nokia PC Suite у меня тормозит жутко. Но это же не значит что C++&QT отстой smile 

А что это значит?

Добавлено через 1 минуту и 23 секунды
поясни уж тогда

Автор: Keeper89 7.6.2011, 12:46
Это значит, что надо соблюдать чистоту эксперимента - брать абсолютно идентичные (хотя бы по функционалу) приложения и сравнивать. В частности, я сомневаюсь, что если написать эту весчь от Нокии на Делфи, что-то сильно будет быстрее.

З.Ы. Ну, кто уже рискнет написать калькулятор? smile

Автор: Akella 7.6.2011, 13:21
Никто, нам главное потрындеть  smile 

Автор: Rohoss 7.6.2011, 13:38
Цитата(Akella @  7.6.2011,  12:02 Найти цитируемый пост)
Только не надо говорить, что те тормознутые программы были написаны тупыми программистами.

Я не говорю, но думаю ты сам догадался

Цитата(Akella @  7.6.2011,  12:02 Найти цитируемый пост)
Я тоже пытался сделать так, чтобы программа была напичкана плагинами, aka модулями. Неудобно.

Понятно что это совсем неудобно в Делфи. И потом, я ничего не говорил про плагины. Для плагинов в .нете отдельная, довольно мощная инфраструктура, которая позволяет приложению работать дальше правильно при падении плагина. А тот калькулятор это разработка на основе модулей. В данном случае не предусмотрена разработка третьими лицами. Хотя никто и не запрещает это делать

Цитата(Akella @  7.6.2011,  12:02 Найти цитируемый пост)
Что первое появилось, яйцо или курица дельфи или дотнет?

я говорил что у многих делфистов склонность к изобретению велосипедов. ты опять не понял  smile 

Цитата(Akella @  7.6.2011,  12:02 Найти цитируемый пост)
Программисты не нужны будут как класс. Только Рохос и кнопка  

Я не против. И представь, сколько я заработаю если буду писать программу за несколько минут. И пусть программа хоть и 5 Гб ОЗУ жрёт, оперативу купить дешевле чем содержать программистов. 
Кроме того, то о чём ты говоришь уже давно существует. Тот же интернет магазин или форум тебе не надо самому писать, ты его настраиваешь под себя тупо кнопками. Причём настроить можно насколько по разному, что может показаться что это совсем другой софт + в большинстве случаев в нём можно также редактировать код.

Автор: Zloxa 7.6.2011, 14:03
Цитата(Rohoss @  7.6.2011,  13:38 Найти цитируемый пост)
Понятно что это совсем неудобно в Делфи. 

 smile 
Неудобно не писать. Неудобно - обслуживать такую хрень. И для того чтобы мириться с этими неудобствами, как правило, нужны более веские основания нежели удобство отдельно взятого программиста и прикольность подхода. Как следствие, эта фишка весьма специфична и нисколь не показательна, а потому никак не может служить аргументом что доднет лучше.

Не ну правослово, до чего ж доднетчики таки твердолобы и близоруки, дальше своего носа ну ни зги не видят, а ударившись бошкой раз, продолжают добить снова и снова. Это мировой бестпрактис такой штоле?

Добавлено через 11 минут и 10 секунд
Кстати, а никто не может подскзать, кому надо отдаться чтобы можно было заходить в  форумы групп не по парямой ссылке?

Автор: Rohoss 7.6.2011, 14:18
Ну понятно, что может быть лучше сотни человек работающих над одним .exe  smile

Добавлено через 3 минуты и 3 секунды
Цитата(Zloxa @  7.6.2011,  14:03 Найти цитируемый пост)
Неудобно не писать. Неудобно - обслуживать такую хрень. И для того чтобы мириться с этими неудобствами, как правило, нужны более веские основания нежели удобство отдельно взятого программиста и прикольность подхода.

Я тебя уже вроде как просил назвать неудобство пользователя, который понятие не имеет, монолитное это приложение или составное.

Добавлено через 5 минут и 54 секунды
Ещё я бы попросил открыть папку Program Files (иногда она ещё называется Program Files (x86)), обычно она на компьютере есть, и внимательно посмотреть, сколько там составных приложений,  а сколько монолитных.

Автор: Rohoss 7.6.2011, 14:38
Цитата(Zloxa @  7.6.2011,  14:03 Найти цитируемый пост)
Кстати, а никто не может подскзать, кому надо отдаться чтобы можно было заходить в  форумы групп не по парямой ссылке?

В разделе делфи есть "клуб делфистов", так можно попасть в данную группу. А вообще, насколько я понимаю, очень сложно. Надо вступать в группу, потом искать этот список где-то в профиле. Жёстко в общем всё smile .

Автор: Keeper89 7.6.2011, 14:40
Rohoss, надо переписать форум на C#&ASP.NET и сразу станет заходить удобнее smile

Автор: Rohoss 7.6.2011, 14:52
Цитата(Keeper89 @  7.6.2011,  14:40 Найти цитируемый пост)
Rohoss, надо переписать форум на C#&ASP.NET и сразу станет заходить удобнее  

Лучше на делфи, тогда будет быстрее работать и меньше оперативы жрать  smile 

Автор: Keeper89 7.6.2011, 14:54
Или так smile

Автор: Zloxa 7.6.2011, 15:05
Цитата(Rohoss @  7.6.2011,  14:18 Найти цитируемый пост)
Я тебя уже вроде как просил назвать неудобство пользователя, который понятие не имеет, монолитное это приложение или составное.

А я тебе уже пояснял, что использование и обслуживание - разные вещи. Как я тебе могу это объяснить, если тебе просто не доводилось сталкивался с этим аспектом деятельности, для тебя он абстрактен и не понятен?
Цитата(Rohoss @  7.6.2011,  14:18 Найти цитируемый пост)
Ну понятно, что может быть лучше сотни человек работающих над одним .exe  

Цитата(Rohoss @  7.6.2011,  14:18 Найти цитируемый пост)
Ещё я бы попросил открыть папку Program Files (иногда она ещё называется Program Files (x86)), обычно она на компьютере есть, и внимательно посмотреть, сколько там составных приложений,  а сколько монолитных. 

Я упоминал, и не раз, но повторю еще, специально для тех, кто в доднете. Разделение на модули может быть обоснованным, однако удобство и изысканность подхода - не достаточные основания для того. В общем же случае разработка модульного приложения, это жертва удобством, насущная необходимость в том, не столь уж и часта, по этой причине приведенный тобой пример не может быть показателен, он затрагивает узкий, частный аспект разработки. Даже если бы на этом участке и стало бы очевидным преимущество, этот частный случай не может быть обобщен.

Добавлено через 7 минут и 26 секунд
А вот, кстати, подобия упомянутого тобой движка управления плугинами, я в базе делфи не припомню. Здесь можно было бы поговорить о преимуществах. Опять же, если бы не были столь редки случаи, когда профит от испльзования плугинов покрвывал бы издержки. 

Автор: Keeper89 7.6.2011, 15:26
Автор Тоталкомандера говорил как-то, что у него прибыль покрыла неудобства, чему он был несказанно рад. 

Автор: AKATAN 7.6.2011, 15:28
Цитата(Keeper89 @ 5.6.2011,  12:48)
AKATAN, все бы это хорошо, вот только с каких торрентов ты будешь скачивать Delphi, чтобы это было дешевле?

С тех, где присылают запороленные архивы, что открываются посредством платных СМС.  smile

Если заказчик в ТЗ (документ, подписанный обеими сторонами, а не бумажка "Я хочу...") не требует 
Цитата

"Все покупные и разработанные программные продукты должны быть приобретены законным путем, иметь необходимые сертификаты и использоваться в соответствии с условиями лицензионных соглашений."

то пиши на краденом ПО, краденом компе с проклятой ОС украденной у младенца в полночь, даже мышку и клаву укради - никому это не интересно. 
Я не знаю как обстоят дела с продажей ПО и программно-аппаратных комплексов в РФ. Может налоговой надо показывать и доказывать соблюдение лицензионного соглашения с разработчиком аудио-драйвера, который вы использовали для прослушивания музыки, во время написания кода. Но в Украине это не так.

Добавлено через 1 минуту и 8 секунд
Цитата(Frees @ 20.5.2011,  20:23)
Цитата(AKATAN @  18.5.2011,  19:24 Найти цитируемый пост)
Я возьму ТРЕХ молодых программистов Delphi за 4К на всех троих.

Java нынче в институтах учат, эти ТРОЯ и на Java с тем же успехом писать будут.


Цитата(AKATAN @  18.5.2011,  19:24 Найти цитируемый пост)
ДЕШЕВИЗНА

а разве Delphi дешевле Java?

Java нынче в институтах учат... Хе!  smile Подскажите как ВУЗ в Украине, что выпускает толковых Java кодеров.
Знаете как ТЯЖЕЛО найти адекватного программиста...
Хороших специалистов много. Стаж работы, мышление, навыки. Все на уровне! Также как и запросы по з/п.
А так сложилось что наши/ваши собратья по Delphi довольно не прихотливы к з/п, не смотря на довольно не плохие навыки (плюс большая страсть к "смежным" специальностям).
Может быть это мои предубеждения, может быть я жутко не прав и гореть мне в аду.

Цитата

Delphi дешевле Java?

Понятия не имею. Не сравнивал.
Кадры же дешевле.

оффтоп:
А что такое $1000 за лицензию?
Вы завезите радиомодем, производства NoName. В количестве 50 шт. На таможне вам любезно расскажут, что сертификаты производителя не соответствуют Украинским, что оборудование должно пройти сертификацию - 2-3 мес, $4000. Аааа... ЭМС не прошли? Давай еще $2000...
Вот на таких вещах и можно сделать себестоимость единицы продукта с $100 до $500 лишь на формальностях. И именно тут идет война, а не на экономии трехстах баксов...

Автор: Rohoss 7.6.2011, 15:34
Цитата(Zloxa @  7.6.2011,  15:05 Найти цитируемый пост)
А я тебе уже пояснял, что использование и обслуживание - разные вещи. Как я тебе могу это объяснить, если тебе просто не доводилось сталкивался с этим аспектом деятельности, для тебя он абстрактен и не понятен?

Похоже тех, кто имел с этим проблемы днём с огнём не с ищешь. Ты не путай .нет и сом. Это в сом бока с засираниям реестра и использованием не тех что нужно библиотек. В .нете проблема решена в частности за счёт жёсткой версионности.

Цитата(Zloxa @  7.6.2011,  15:05 Найти цитируемый пост)
по этой причине приведенный тобой пример не может быть показателен

Приведённый мной пример надуманный и мега упрощённый, понятное дело нет смысла разделять маленький калькулятор < 100 строчек кода на модули.

Цитата(Zloxa @  7.6.2011,  15:05 Найти цитируемый пост)
Разделение на модули может быть обоснованным, однако удобство и изысканность подхода - не достаточные основания для того.

Ну ты хоть согласен что модульное приложение проще разрабатывать, если конечно это большой проект?

Цитата(Zloxa @  7.6.2011,  15:05 Найти цитируемый пост)
А вот, кстати, подобия упомянутого тобой движка управления плугинами, я в базе делфи не припомню.

А я говорил про делфи? smile 
Цитата(Rohoss @  7.6.2011,  13:38 Найти цитируемый пост)
Для плагинов в .нете отдельная, довольно мощная инфраструктура, которая позволяет приложению работать дальше правильно при падении плагина.

Автор: Zloxa 7.6.2011, 15:43
Цитата(Keeper89 @  7.6.2011,  15:26 Найти цитируемый пост)
Автор Тоталкомандера говорил как-то, что у него прибыль покрыла неудобства, чему он был несказанно рад.

Дык тотал командеры и иже с ними - какой процент от всего понаписанного? 

Подавляющее большинство изветных мне программистов делфи, шрапа и даже жавы занимаются разработкой шедеврально уникальных биллингов, шедеврально уникальных собственных ЕРП, шедеврально уникального банковского софта... Массового продукта, для которого расширяемость третьимми лицами может являться конкурентным преимуществом, из моих, не пишит никто. Потому, экстраполируя, я полагаю, что доля таких разработок черезвычайно низка.

Rohoss, дружище, прости. Я тут фигни понаговорил, а, подумав, вдруг понял что, возможно я не до конца понял суть твоего примера. Скажи пожалуйста, чтобы твой калькулятор начал понимать операцию умножения и деления, нужно ли перекомпилить основной модуль? Или достаточно добавить новую библиотечку? Я думал что - второе.

Добавлено @ 15:45
Цитата(Rohoss @  7.6.2011,  15:34 Найти цитируемый пост)
А я говорил про делфи? 

ты говорил о доднете, а я не припомнил в делфе. Возможно есть наработки третьих сторон.... но тут хотя бы намек на преимущество есть, есть что обсудить, в отличии от того, что ты привел.

Автор: Rohoss 7.6.2011, 15:55
Цитата(Zloxa @  7.6.2011,  15:43 Найти цитируемый пост)
Массового продукта, для которого расширяемость третьимми лицами может являться конкурентным преимуществом, из моих, не пишит никто.

Цитата(Rohoss @  7.6.2011,  13:38 Найти цитируемый пост)
И потом, я ничего не говорил про плагины. Для плагинов в .нете отдельная, довольно мощная инфраструктура, которая позволяет приложению работать дальше правильно при падении плагина. А тот калькулятор это разработка на основе модулей. В данном случае не предусмотрена разработка третьими лицами. Хотя никто и не запрещает это делать


Цитата(Zloxa @  7.6.2011,  15:43 Найти цитируемый пост)
Скажи пожалуйста, чтобы твой калькулятор начал понимать операцию умножения и деления, нужно ли перекомпилить основной модуль?  

нет. но если его перекомпилить, он всё равно будет их понимать smile
Ты считаешь это излишним?

Цитата(Rohoss @  7.6.2011,  15:34 Найти цитируемый пост)
Ну ты хоть согласен что модульное приложение проще разрабатывать, если конечно это большой проект?


Добавлено через 4 минуты и 34 секунды
Цитата(Zloxa @  7.6.2011,  15:43 Найти цитируемый пост)
Подавляющее большинство изветных мне программистов делфи, шрапа и даже жавы занимаются разработкой шедеврально уникальных биллингов, шедеврально уникальных собственных ЕРП, шедеврально уникального банковского софта... Массового продукта, для которого расширяемость третьимми лицами может являться конкурентным преимуществом, из моих, не пишит никто.


А много мух не может ошибаться (c. Zloxa)

Автор: Zloxa 7.6.2011, 16:49
Цитата(Rohoss @  7.6.2011,  15:55 Найти цитируемый пост)
нет. но если его перекомпилить, он всё равно будет их понимать

Откуда основное приложение узнает что появился новый модуль?

Цитата(Rohoss @  7.6.2011,  15:55 Найти цитируемый пост)
Ты считаешь это излишним?

нет, я просто понял что я не понял того что ты пытался преподнести.

Добавлено через 1 минуту и 15 секунд
Цитата(Rohoss @  7.6.2011,  15:55 Найти цитируемый пост)
А много мух не может ошибаться (c. Zloxa) 

и к чему ты привел мою цитату я тоже не понял.

Автор: Keeper89 7.6.2011, 16:53
Там в какой-то специальный контейнер загружаются все длл из папки.

Автор: Rohoss 7.6.2011, 17:07
Цитата(Zloxa @  7.6.2011,  16:49 Найти цитируемый пост)
нет, я просто понял что я не понял того что ты пытался преподнести.

То, что модульное приложение в делфи и .нете это разные вещи. И что разработка модульных приложений на .нете ведётся легко и не принуждённо, но если ты будешь разрабатывать модульное приложение, то скорее всего ты получишь сколько гемора и г0внища, что пожалеешь что всё это затеял. что ты и пытался доказать, а я тебе пытался доказать что делфи это .нет, и что в .нете модульное приложение - это нормальная, здоровая практика.

Цитата(Zloxa @  7.6.2011,  16:49 Найти цитируемый пост)
Откуда основное приложение узнает что появился новый модуль?

Есть специальный контейнер, в который можно добавить как физические папки (которые будут сканироваться при старте аппа), так и прописать загрузку модулей с кода. 

Автор: Zloxa 7.6.2011, 17:11
Цитата(Rohoss @ 7.6.2011,  17:07)
Цитата(Zloxa @  7.6.2011,  16:49 Найти цитируемый пост)
Откуда основное приложение узнает что появился новый модуль?

Есть специальный контейнер, в который можно добавить как физические папки (которые будут сканироваться при старте аппа), так и прописать загрузку модулей с кода.

Откуда контейнер узнает какой экземпляр класса нужно создать? 
Я правильно понимаю что имя dll прописано в тэге буттона?

Автор: Rohoss 7.6.2011, 17:26
Цитата(Zloxa @  7.6.2011,  17:11 Найти цитируемый пост)
Я правильно понимаю что имя dll прописано в тэге буттона?

нет, опять мыслишь как делфист  smile

Добавлено через 2 минуты и 29 секунд
Цитата(Zloxa @  7.6.2011,  17:11 Найти цитируемый пост)
Откуда контейнер узнает какой экземпляр класса нужно создать? 

нужные классы метятся специальным атрибутом
Код

[Export(typeof(IOperation))]
public class AddOperation : IOperation

Автор: Keeper89 7.6.2011, 17:30
smile

Автор: Zloxa 7.6.2011, 19:23
Цитата(Rohoss @ 7.6.2011,  17:26)
Цитата(Zloxa @  7.6.2011,  17:11 Найти цитируемый пост)
Откуда контейнер узнает какой экземпляр класса нужно создать? 

нужные классы метятся специальным атрибутом
Код

[Export(typeof(IOperation))]
public class AddOperation : IOperation

Ничегошеньки не понял. Пожалуйста разъясни как делфисту.
 smile 

Когда вызывается 
Код

IOperation operation = (IOperation)btn.Tag;

На каком основании создается экземпляр AddOperation?

Добавлено через 2 минуты и 14 секунд
черт.. у мну дома делфи не стоит (((( 

Автор: Rohoss 7.6.2011, 19:47
Цитата(Zloxa @  7.6.2011,  19:23 Найти цитируемый пост)
Ничегошеньки не понял. Пожалуйста разъясни как делфисту.

Итак, есть некий http://msdn.microsoft.com/ru-ru/library/dd460648.aspx , который мы используем в нашем приложении подключив сборку System.ComponentModel.Composition к проекту. При старте приложения, он сканирует определённые места (всё это конфигурируется) и загружает сборки (длл). В них он ищет классы, помеченные атрибутом [Export(typeof(IOperation))] . Именно они (классы а не длл) и являются модулями для MEF. Когда уже прошла всё инициализация, список всех модулей, которые наследуют интерфейс IOperation мы можем получить в свойстве Operations нашего контейнера. Следующий момент, мы привязываем список классов, которые наследуют к свойству ItemsSource Листбокса. Так как у нас гуй WPFный, мы определяем шаблон для элементов лист бокса, у нас он очень простой в виде кнопки. Но в шаблоне мы также определяем, что для каждой сгенереной кнопки будет привязываться свойство Description интерфейса IOperation, и сам класс, который наследует этот интерфейс, и соответственно для него генерится кнопка, будет привязан к свойству тег кнопки. Вот так всё выглядит
Код

<ListBox Height="100" HorizontalAlignment="Left" Margin="26,64,0,0" Name="lb" VerticalAlignment="Top" Width="195">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Button Content="{Binding Description}" Tag="{Binding}" Click="Button_Click" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox> 

Соответственно, здесь
Цитата(Zloxa @  7.6.2011,  19:23 Найти цитируемый пост)
IOperation operation = (IOperation)btn.Tag;

мы не создаём AddOperation, а его получаем в виде интерфейса. И соответственно с ним работаем  smile

Добавлено через 10 минут и 58 секунд
Собственно говоря, мы можем ещё более извратится и в Description наследников IOperation содержать элементы управления и даже в этих модулях с ними работать, но это излишнее...

Автор: Akella 7.6.2011, 21:57
Цитата(Rohoss @  7.6.2011,  13:38 Найти цитируемый пост)
Только не надо говорить, что те тормознутые программы были написаны тупыми программистами.

Я не говорю, но думаю ты сам догадался

скажи это программистам корпорации Самсунг  smile

Добавлено через 2 минуты и 2 секунды
Цитата(Rohoss @  7.6.2011,  13:38 Найти цитируемый пост)
Программисты не нужны будут как класс. Только Рохос и кнопка  

Я не против. И представь, сколько я заработаю если буду писать программу за несколько минут

ты тоже не будешь нужен

любой тупорылый юзверь зайдет на сайт майкрософт и нажмёт кнопку  smile 

а то я сказал, что бы не расстаривался

Автор: Rohoss 7.6.2011, 22:11
Цитата(Akella @  7.6.2011,  21:57 Найти цитируемый пост)
ты тоже не будешь нужен

любой тупорылый юзверь зайдет на сайт майкрософт и нажмёт кнопку   

а то я сказал, что бы не расстаривался 

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

Цитата(Akella @  7.6.2011,  21:57 Найти цитируемый пост)
скажи это программистам корпорации Самсунг  

Хз, мож они просто аппарат глючный сделали, откуда мне знать где у них там бока  smile 

Автор: Zloxa 7.6.2011, 22:26
Rohoss, спасибо за интересный, познавательный рассказ. smile 
Хоть мне, на этом хеловорде, и сложно оценить полезность и применимость подхода, но эффектность демонстрации отрицать нелепо.

Уговорил, когда передо мною встанет задача разработки модульного приложения со сроком сдачи от года, я обязательно попробую ее реализовать на доднете.  smile 

Автор: Keeper89 7.6.2011, 22:26
Rohoss, а можешь сам привести альтернативу на Delphi? Ну мне просто интересно (сама реализация, а не можешь ли конкретно ты) smile

Автор: Akella 7.6.2011, 22:53
Цитата(Zloxa @  7.6.2011,  14:03 Найти цитируемый пост)
Кстати, а никто не может подскзать, кому надо отдаться чтобы можно было заходить в  форумы групп не по парямой ссылке?

в самом низу
http://forum.vingrad.ru/forum/delphi-kylix-pascal.html

или подведи курсор к ссылке (еще)

Добавлено @ 22:54
Цитата(Rohoss @  7.6.2011,  22:11 Найти цитируемый пост)
скажи это программистам корпорации Самсунг  

Хз, мож они просто аппарат глючный сделали, откуда мне знать где у них там бока  smile  


ПРИ ЧЕМ ЗДЕСЬ АППАРАТ

я о тормознутой программе, которая написана на дотнете!!!!! для винды, для компьютера, для обычного ноута или десктопа!

Добавлено @ 23:00
Цитата(Rohoss @  7.6.2011,  22:11 Найти цитируемый пост)
На самом деле, не смотря на то, что разработка становится всё проще, и казалось бы, пора уже написать весь софт, который можно представить. Только нужда в ПО всё больше и больше, но уже другие требования к качеству и функционалу.

само собой, плюс надо учесть производительнось

я админю крупное агентсво, которое сидело на десктопных программах, написанных на дельфи, при чем некоторые формы были очень, очень, очень сильно перегружены компонентами. Представь, что на одной форме кроме обычных кнопок и эдитов, было 4 грида, в которых было одновременно по несколько тысяч записей и всё это летало на довольно скромных конфигах железа (речь не о правильности проектирования, а о производительности программы).
и учти что программа работала, начиная от Win98, до win7 включительно

сомневаюсь, что программа, написанная на дотнете нормально бы работала


теперь переползли в веб (php+js) и база (веб-программа, так сказать) конечно же стала тормозить, как при создании форм, так и при загрузке записей, при том, что элементов было в несколько раз меньше

и пользователи (а их очень много) сразу это заметили и проявили большое недовольство

все хотели назад, в старую программу

пришлось тратить деньги на доп. железо, чтобы увеличить память компьютеров, которых немало

и заказчик тоже оказался не очень доволен

так что тормознутость программы имеет немаловажную роль и пользователю пофиг на чем оно там написано
т.е. дотнетчик должен это учитывать этот факт и предупредить пользователя о том, что железо должно быть соответствующее



а я об этом не беспокоюсь и спокойно отдаю пользователю программу, пусть у него там хоть 64 метра памяти

Автор: Keeper89 7.6.2011, 23:06
Цитата(Akella @  7.6.2011,  22:53 Найти цитируемый пост)
сомневаюсь, что программа, написанная на дотнете нормально бы работала 

Хватит уже сомневаться, напишите с Rohoss'ом на выходных маленькое приложение. например, для рядовых операций с БД и сравните. Это 2 часа, не больше.

Автор: Akella 7.6.2011, 23:09
да я ваще не понял, чё там надо писать и вообще нужно ли мне оно?

ну да, расширяемость - это круто, но я нонял, в чем крутизна для пользователя и программиста, поясните на пальцах, всю тему по диагонали, многабукаф

Автор: Keeper89 7.6.2011, 23:28
На пальцах - Rohoss говорит на C# можно писать лечге, гибче и универсальнее, ты говоришь, что все это не стоит той тормознутости, которая имеет место в каком то там Самсунге. Пример, что привел он - просто показатель интересного подхода, и мне, кстати, скажу еще раз, интересно увидеть это на Delphi.

Я вообще не вижу предмета спора, т.к. Вы спорите о том, что белое белее, а черное чернее, а еще и пытаетесь из разных цветов найти эталон. C# лучше в одном, Delphi в другом. И на мой взгляд (и не только), в целом первый лучше второго по многим показателям.

Я предлагаю. чтобы избежать бесполезных холиваров, сделайте тестовое приложение (типа для бизнеса) и мы посмотрим (по разным параметрам - производительности, сложности кода, времени разработки, простоты поддержки и т.д.).

Автор: Akella 7.6.2011, 23:31
Цитата(Keeper89 @  7.6.2011,  23:28 Найти цитируемый пост)
и мне, кстати, скажу еще раз, интересно увидеть это на Delphi.

вот тебе и карты в руки  smile

Добавлено через 1 минуту и 32 секунды
Цитата(Keeper89 @  7.6.2011,  23:28 Найти цитируемый пост)
Я вообще не вижу предмета спора, т.к. Вы спорите о том, что белое белее, а черное чернее, а еще и пытаетесь из разных цветов найти эталон. C# лучше в одном, Delphi в другом. И на мой взгляд (и не только), в целом первый лучше второго по многим показателям.

ну я же выше уже сказал - что мы тут только потрындеть  smile 

мне лень разбираться, что там нужно написать на дельфи, чтобы получилось, как у Рохоса  smile

Добавлено через 2 минуты и 20 секунд
Цитата(Keeper89 @  7.6.2011,  23:28 Найти цитируемый пост)
Я предлагаю. чтобы избежать бесполезных холиваров, сделайте тестовое приложение (типа для бизнеса) и мы посмотрим (по разным параметрам - производительности, сложности кода, времени разработки, простоты поддержки и т.д.). 

и кто за это будет платить? время - деньги

Добавлено через 5 минут и 51 секунду
кстати, представь что платить будут двое заказчиков, ты один из них  smile 
программа на дельфи будет дешевле, т.к. у дельфиста меньше зарплата  smile 

на чем ты закажешь программу, на дельфи или на дотнете?


мысль: если на дотенет всё так круто, быстро и красиво, то почему программисты на дотнете больше получают? ведь там легче программировать. И то, что разработчик на дельфи будет писать день, разработчик на сишарпе напишет за час... и где справедливость?

Автор: Keeper89 7.6.2011, 23:56
Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
и кто за это будет платить? время - деньги

Подтверждение своих слов бесценно smile

Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
на чем ты закажешь программу, на дельфи или на дотнете?

Честно говоря, мне будет пофиг, на чем оно написано.
Зависит от приложения, но в основном если я не буду сам ее поддерживать дальше, то закажу на C#.

Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
программа на дельфи будет дешевле, т.к. у дельфиста меньше зарплата  smile 

Только если ты подразумеваешь фриланс. Укомплектовать фирму с лицензией Delphi обойдется в немалую сумму.

Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
мысль: если на дотенет всё так круто, быстро и красиво, то почему программисты на дотнете больше получают? ведь там легче программировать. И то, что разработчик на дельфи будет писать день, разработчик на сишарпе напишет за час... и где справедливость? 

Чтобы не быть голословным, вот последние вакансии с хедхантера.
user posted image
user posted image

Это обманчивая простота. ПРофессионалы есть как в Delphi, так и в C# и их труд стоит дорого, а как показано на рисунках, примерно одинаково.

Расскажу секрет. По собственному опыту основная среда - Delphi 5-7 (ибо бизнес не покупает завтраки от Codegear/Embarcadero за большие деньги), а если и покупает, то чрезвычайно сложно сделать апгрейд своей крупной системы. Практически во всех вакансиях по есть 2 варианта - переписывание их шедевральной ИС (кучи макарон) на C# или поддержка этих макарон до победного конца со всевозможными затычками всяких там Юникодов и прочего.
Много, кстати, вакансий в банках - и там за эту **** мозгов предлагают хорошие деньги. Только появляются они на удивление часто, наверное не все выдерживают smile

C# дешевле, документированнее. современнее и т.п. и главное (!) с ним есть уверенность в завтрашнем дне, а это важно для крупного бизнеса.

И еще о тенденциях: за последний год сумма, предлагаемая за вакансии по Delphi возросла, а C# - это личное наблюдение.

Автор: Rohoss 8.6.2011, 00:19
Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
мысль: если на дотенет всё так круто, быстро и красиво, то почему программисты на дотнете больше получают?

ты сам ответил на свой вопрос  smile 
Цитата(Akella @  7.6.2011,  23:31 Найти цитируемый пост)
И то, что разработчик на дельфи будет писать день, разработчик на сишарпе напишет за час... и где справедливость?


Цитата(Keeper89 @  7.6.2011,  22:26 Найти цитируемый пост)
Rohoss, а можешь сам привести альтернативу на Delphi? Ну мне просто интересно (сама реализация, а не можешь ли конкретно ты)

Нет, я делфи года два не открывал  smile . Боюсь, если на делфи это и получится реализовать выйдет что-то страшное

Цитата(Keeper89 @  7.6.2011,  23:28 Найти цитируемый пост)
Я предлагаю. чтобы избежать бесполезных холиваров, сделайте тестовое приложение (типа для бизнеса) и мы посмотрим (по разным параметрам - производительности, сложности кода, времени разработки, простоты поддержки и т.д.). 

Я всё, сдаюсь. Злоха уже по крайней мере с одной позицией согласился - а это уже достижения. Не могу же я всех делфистов перевербовать. И тем более, чем больше будет программистов на .нете, тем меньше будет у них зп, так что я копаю себе могилу smile . Вообще, есть ведь ещё жаба, там вот зп по 4-5 k$, лучше туда переходить  smile 

Цитата(Akella @  7.6.2011,  22:53 Найти цитируемый пост)
теперь переползли в веб (php+js) и база (веб-программа, так сказать) конечно же стала тормозить, как при создании форм, так и при загрузке записей, при том, что элементов было в несколько раз меньше

и пользователи (а их очень много) сразу это заметили и проявили большое недовольство

все хотели назад, в старую программу

Ну а что вы хотели, что вебстраница будет лучше работать чем гуй? smile Вообще, моё имхо, пхп + javascript это ну а ж никак не корпоративная разработка  smile 

Автор: Rohoss 8.6.2011, 00:40
В общем давайте ещё маленький примерчик возможностей C# и на этом прекратим smile 
В http://forum.vingrad.ru/forum/topic-310936/view-all.html делфисты пытаются локализировать своё приложения, они качают сотни мегабайт компонентов, пробуют, подключают. У них что-то глючит, не работает, виснит. Теперь о том, как мы в дотнете решаем эту проблему: легко, быстро, удобно, беспощадно и без сторонних компонентов. И что мы получаем: 
1. приложение, которое может сменить язык на лету, без необходимости перезагрузки приложения.
2. элементы управления выравниваются в зависимости от размера текста
3. кто угодно сможет создать новый язык для приложения.

Что нам для этого нужно: два класса Language
Код

    public class Language
    {
        private Language(){}

        public Language(string resourceFile)
        {
            ResourceDictionary rd = new ResourceDictionary();
            rd.Source = new Uri(resourceFile, UriKind.Absolute);
            this.Resource = rd;

            if (rd.Contains("Name"))
            {
                this.Name = (string)rd["Name"];
                this.Culture = new CultureInfo((string)rd["Culture"]);
            }
        }

        public ResourceDictionary Resource { get; set; }

        public string Name { get; set; }

        public CultureInfo Culture { get; set; }

        public void Apply()
        {
            App.Current.Resources.MergedDictionaries.Add(this.Resource);
        }

    }


и LanguageManager
Код

public class LanguageManager
    {
        private DirectoryInfo languageDir = null;

        private static LanguageManager _instance = null;

        private List<Language> _languages = null;

        private Language _defoultLanguage = null;

        private LanguageManager()
        {
            string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
            string ld = Path.GetDirectoryName(appPath) + "\\Languages";
            languageDir = new DirectoryInfo(ld);

            _languages = GetAllLanguages();

            _defoultLanguage = GetSystemLanguage(_languages);

            if (_defoultLanguage == null)
            {
                _defoultLanguage = GetEnLanguage(_languages);
            }

        }

        private List<Language> GetAllLanguages()
        {
            List<Language> languages = new List<Language>();
            foreach (var lf in languageDir.GetFiles("*.xaml"))
            {
                Language lng = new Language(lf.FullName);
                languages.Add(lng);
            }
            return languages;
        }

        private Language GetSystemLanguage(List<Language> languages)
        {
            Language currLang = null;
            CultureInfo cultureInfo = CultureInfo.CurrentUICulture;

            foreach (var language in languages)
            {
                if (language.Culture.EnglishName == cultureInfo.EnglishName)
                {
                    currLang = language;
                }
            }
            return currLang;
        }

        private Language GetEnLanguage(List<Language> languages)
        {
            Language enLang = null;
            CultureInfo cultureInfo = new CultureInfo("en");
            foreach (var language in languages)
            {
                if (language.Culture.EnglishName == cultureInfo.EnglishName)
                {
                    enLang = language;
                }
            }
            return enLang;
        }


        public static LanguageManager Instance
        {
            get
            {
                if (_instance == null)
                {
                    _instance = new LanguageManager();
                }
                return _instance;
            }
        }

        public List<Language> AllLanguages
        {
            get { return _languages; }
        }

        public Language DefoultLanguage
        {
            get { return _defoultLanguage; }
        }
    }


а так же всё это мы инициализируем
Код

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            lbLanguages.ItemsSource = LanguageManager.Instance.AllLanguages;
            LanguageManager.Instance.DefoultLanguage.Apply();

            if (App.IsDesignTime)
            {
                ResourceDictionary rd = new ResourceDictionary();
                rd.Source = new Uri(@"bin/Debug/Languages/en.xaml", UriKind.Relative); 

                this.Resources.MergedDictionaries.Add(rd); 
            }

        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button btn = (Button)sender;
            Language lng = (Language)btn.Tag;
            lng.Apply();
        }
    }


Собственно практически и всё. Далее, в папке Languages у нас находятся переводы. Теперь, если мы будем расширять наш гуй, единственное что нам нужно это привязка к ключу, который должен быть в файлах перевода. Короче, что-то я запутался в рассказах, проще посмотреть на примере. Прикрепил архив с приложением и проектом отдельно

Автор: Rohoss 8.6.2011, 00:53
В общем, если вы хотите добавить новый язык к приложению, вы можете просто открыть папку Languages, скопировать или же en.xaml или ru.xaml, назвать его как-то откредактировать в текстовом редакторе и оставить в той же папке. Вот и всё, новый язык готов. Вот так будет выглядеть новый файл для Украинского языка
Код

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:sys="clr-namespace:System;assembly=mscorlib"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <sys:String x:Key="Name">uk</sys:String>
    <sys:String x:Key="Culture">uk</sys:String>
    
    <sys:String x:Key="Product">Продукт</sys:String>
    <sys:String x:Key="Book">Книга</sys:String>
    <sys:String x:Key="Pen">Ручка</sys:String>

    <sys:String x:Key="CompanyName">Ім’я компанії</sys:String>
    <sys:String x:Key="CompanyHystory">Історія компанії</sys:String>

</ResourceDictionary>


Если вам нужно добавить новый элемент управления, который будет локализироватся, вам всего лишь нужно в определить для него динамический ресурс
Код

<Button Content="{DynamicResource SuperButtonName}" />

Ну и дальше привязать ему значение в словарях
<sys:String x:Key="SuperButtonName">Да, вот текст кнопки на соответствующем языке</sys:String>
Вот и всё, и независимо в какой части приложения будет элемент управления, всё будет работать. При чём, если ключа не будет найдено в словаре соответствующему вашему языку, будет использоваться ключ из словаря по умолчанию. 
Кроме того, если язык вашей системы будет в списке определённых языков, он и будет использоваться по умолчанию  smile 


Автор: bems 8.6.2011, 05:21
простите за оффтоп, а как перестать получать топик в списке новых сообщений, когда имел неосторожность написать в него?

Автор: Dik0n 8.6.2011, 07:03
Цитата(bems @  8.6.2011,  05:21 Найти цитируемый пост)
простите за оффтоп, а как перестать получать топик в списке новых сообщений, когда имел неосторожность написать в него?

В своем профиле отпишись от темы...

Дальше по теме с переводом, не знаю чего у них там глючит, не охото вникать, все делается довольно просто, с написания небольшого класса, например в программе которая кстати, писалась для вас сишники, кто помнит Dev-C++ делается это вот так

Код

  TdevMultiLangSupport = class(TObject)
   private
    fLangList   : ToysStringList;
    fLangFile   : string;
    fCurLang    : string;
    fStrings    : TStringList;
    fDefaultLang: TStringList;
    fSelect     : boolean;
    function GetString(ID: integer): string;
    function GetLangName: string;
    constructor Create;
   public
    destructor Destroy; override;
    class function Lang: TdevMultiLangSupport;

    procedure CheckLanguageFiles;
    procedure SelectLanguage;

    function Open(const FileName: string): boolean;
    procedure SetLang(const Lang: string);

    function FileFromDescription(Desc: string): string;

    property Strings[index: integer]: string read GetString; default;//write SetString;
    property CurrentLanguage: string read GetLangName;
    property Langs: ToysStringList read fLangList write fLangList;
  end;

Use
Код

  Button.Caption := Lang[ID];


Теперь по поводу тормознутости C# а тормозит он из за отстойной медленной скорости в работе GUI
Вот давайте сравним добавление 1000000 записей в таблицу с 3 колонками
тут я конечно пошол на хитрость и использовал не стандартный контролл из VCL Вы тоже можете взять самый лучший контролл для таблиц.

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  T: dword;
begin
  T := GetTickCount;

  VirtualStringTree1.BeginUpdate;
  for I := 0 to 1000000 do
  begin
    VirtualStringTree1.AddChild(nil);
  end;
  VirtualStringTree1.EndUpdate;

  T := GetTickCount - T;

  Label1.Caption := Format('Времени затрачено: %d мс', [T]);
end;


Быстрое добавление(1 секунда с небольшим), плавный скроллинг, там сами на своем компе затестируете, жрет примерно 55 метров smile посмотрим что у Вас...
Для БД не буду ничего писать, так как программирование не заканчивается толко работой с базами данных.

В архиве исходник и .exe

Автор: Akella 8.6.2011, 09:58
Цитата(Keeper89 @  7.6.2011,  23:56 Найти цитируемый пост)
на чем ты закажешь программу, на дельфи или на дотнете?

Честно говоря, мне будет пофиг, на чем оно написано.


ты не понял вопроса - а вопрос был в цене, перечитай внимательно ещё раз условие. Вслух!

Автор: Zloxa 8.6.2011, 10:10
Цитата(Dik0n @  8.6.2011,  07:03 Найти цитируемый пост)
рограммирование не заканчивается толко работой с базами данных.

Да, согласен. smile  Программирование начинается с проектирования базы данных  smile  smile 

Цитата(Rohoss @  8.6.2011,  00:19 Найти цитируемый пост)
Ну а что вы хотели, что вебстраница будет лучше работать чем гуй?  Вообще, моё имхо, пхп + javascript это ну а ж никак не корпоративная разработка 

Увы, мало мальски подкованый технический специалист это понимает. Но менеджеры же.... . smile 

У нас все чаще наличие веб интерфейса появляется в требованиях к модулям. Почти все новые приложения штампуются двуличными - гуевыми и вебовыми. Пользоваться юзери предпочитают гуем, но без веба не происодит приемки заказчиком. Я попытался в тот веб окунутся, у меня опустились руки и я впал в уныние. В этом участвовать  у меня нет никакошенького желания. Много рутины при весьма малоудовлетворительном выхлопе. К тому еще, жавно уже витает в воздухе идея перевести фронтофисы на никсы+жабу+постгр+оо заместо винды+делфя+mssql+ms office. Якобы экономия на лицензиях составит шестизначную цифру дорарев в год и игра стоит свеч в жопе дирекции айти.

В общем управляющее звено стремится делаеть все, чтобы рядовой айтишник побольше заманался и ну никак не стремится оплачивать его комфорт и удобство  smile 

Автор: Keeper89 8.6.2011, 12:22
bems, В опциях темы - Подписка на тему - не это?

Добавлено через 3 минуты и 26 секунд
Цитата(Akella @  8.6.2011,  09:58 Найти цитируемый пост)
ты не понял вопроса - а вопрос был в цене, перечитай внимательно ещё раз условие. Вслух! 

А что, все ценой определяется? Мне молоко, которое просрочено будет завтра не нужно и за полцены.
А если без абстракций - на Веблансере, например, цены примерно одинаковы.

Автор: Rohoss 8.6.2011, 12:34
Цитата(Dik0n @  8.6.2011,  07:03 Найти цитируемый пост)
Дальше по теме с переводом, не знаю чего у них там глючит, не охото вникать, все делается довольно просто

Вот если не охота вникать, то тогда не стоит и говорить. Потому как требования там совсем другие нежели ты привёл.

По поводу тормознутости гуя - это вообще лол. Я не ходил по интернетах и не качал всякие компоненты, как ты, я просто использовал стандартный ЛисВью с ВПФ. Отрисовка милиона записай у меня заняла 00:00:00.0010000 (одну сотую секунды), десяти миллионов 00:00:00.0030002 (три сотых секунды) Не знают в делфи что такое виртуализация
Вот код
Код

public partial class MainWindow : Window
    {
        private List<MyData> million = null;

        private List<MyData> million10 = null;

        private List<MyData> million100 = null;

        public MainWindow()
        {
            InitializeComponent();
        }



        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var list = CreateMillion();

            DateTime dt1 = DateTime.Now;
            lv.ItemsSource = list;
            DateTime dt2 = DateTime.Now;
            TimeSpan ts = dt2 - dt1;
            textBox1.Text = ts.ToString();
        }

        private List<MyData> CreateMillion()
        {
            List<MyData> list = new List<MyData>();
            MyData myData = null;
            for (int i = 0; i < 1000000; i++)
            {
                myData = new MyData() {X = i, Y = i + 1, Z = i + 2};
                list.Add(myData);
            }
            return list;
        }

        private List<MyData> CreateMillion10()
        {
            List<MyData> list = new List<MyData>();
            MyData myData = null;
            for (int i = 0; i < 10000000; i++)
            {
                myData = new MyData() { X = i, Y = i + 1, Z = i + 2 };
                list.Add(myData);
            }
            return list;
        }


        private void button2_Click(object sender, RoutedEventArgs e)
        {
            var list = CreateMillion10();

            DateTime dt1 = DateTime.Now;
            lv.ItemsSource = list;
            DateTime dt2 = DateTime.Now;
            TimeSpan ts = dt2 - dt1;
            textBox1.Text = ts.ToString();
        }

    }

    public class MyData
    {
        public int X { get; set; }
        public int Y { get; set; }
        public int Z { get; set; }
    }

И сам проект прикреплю.(с ошибкой в названии)
Просто вот не понятно Dik0n, нафига триндеть если ты ничего не знаешь про данную систему?


Цитата(Zloxa @  8.6.2011,  10:10 Найти цитируемый пост)
У нас все чаще наличие веб интерфейса появляется в требованиях к модулям.

Ну я так понимаю это вообще мировая тенденция smile 

Цитата(Zloxa @  8.6.2011,  10:10 Найти цитируемый пост)
В общем управляющее звено стремится делаеть все, чтобы рядовой айтишник побольше заманался и ну никак не стремится оплачивать его комфорт и удобство   

Угу, просто некоторым ещё не дошло, что покупаю дорогие инструменты можно экономить. А им нужно бабло отложить прямо сейчас, и этим они ставят большие палки в колёса разработчикам.

Добавлено через 2 минуты и 55 секунд
Цитата(Keeper89 @  8.6.2011,  12:22 Найти цитируемый пост)
bems, В опциях темы - Подписка на тему - не это?

нет это не сработает  smile . похоже никак  smile 

Автор: Zloxa 8.6.2011, 12:56
Цитата(Rohoss @  8.6.2011,  12:34 Найти цитируемый пост)
 Не знают в делфи что такое виртуализация

Знают. Делфийский листвю, тоже умеет быть виртуальным. Правда связвать данные с контролом придется ивентом.
Для тривью такой же перфоманс достигаем?

Автор: cemick 8.6.2011, 12:59
Rohoss

Подскажи как в дотнете быстро написать БД приложение, состоящие из двух таблиц, где отношение между таблицами мастер-деталь.  Таблицы очень большие, миллионы записей, соответственно не хочется все прогружаться, и потому  записи из детали подгружать по мере необходимости.  Причем выходит так, что на этапе компиляции мы не знаем ни мастера, ни детали, запросы подгружаются в момент выполнения программы.

Я думаю в делфи с этим справлю за 4 минуты.

Автор: Zloxa 8.6.2011, 13:01
Цитата(Rohoss @  8.6.2011,  12:34 Найти цитируемый пост)
Угу, просто некоторым ещё не дошло, что покупаю дорогие инструменты можно экономить. 

Судя по тому что идет тенденция отказа от "удобства" в сторону дешевезны, до "некоторых" дошло как раз таки обратное. Однако не исключено что эта тенденция через некоторое время может опять изменить направление.

Добавлено @ 13:09
Цитата(cemick @  8.6.2011,  12:59 Найти цитируемый пост)
  Таблицы очень большие, миллионы записей, соответственно не хочется все прогружаться, и потому  записи из детали подгружать по мере необходимости. 

Я прекрасно знаю о чем ты толкуешь, но, во первых, если я не ошибаюсь, даже на делфи ты не получишь десять миллионов записей от MS SQLя по мере надобности. На сколько я знаю, так не умеет сам MS SQL, он отдает набор в фетч только после того как он полностью сформирован, чтобы как можно меньше держать блокировки по чтению. Выдавать фетч по запросу клиента могут не многие системы. Я знаю лишь об оракле. Возможно постгр и ФБ так умеют, они - версионники, у них блокировок по чтению нет. Так что эта плюха скорее к платформе БД и средствам доступа, но не к платформе разработки.

Во вторых - сам посуди, сколько времени понадобится пользователю, чтобы доскроллировать хотя бы до сотой тысячи, почему бы выборку и не ограничить, хоть и суррогатно?

Автор: Rohoss 8.6.2011, 13:18
Цитата(Zloxa @  8.6.2011,  12:56 Найти цитируемый пост)
Для тривью такой же перфоманс достигаем? 

Нет, вообще я никогда его не использовал, но только что посмотрел. Виртуализация по умолчанию отключена, её надо включать. При включенной миллион записей добавляется так же быстро, но при скролинге он ужасно тупит. Но собственно говоря и цели у тривью немного другие smile 

Автор: Zloxa 8.6.2011, 13:21
Цитата(Rohoss @  8.6.2011,  13:18 Найти цитируемый пост)
 Но собственно говоря и цели у тривью немного другие 

Dik0n продемонстриовал именно тривью. 

Автор: Rohoss 8.6.2011, 13:22
Кстати, по бд, а есть вообще для делфи адекватные ORM?

Автор: Zloxa 8.6.2011, 13:29
Rohoss, ОRM это вечный холивор между жабистами и датабазниками. Зачем ты эту тему приплетаешь к этому холивору? Он не принесет твоей стороне очков.  smile 

Автор: Rohoss 8.6.2011, 13:29
Цитата(Zloxa @  8.6.2011,  13:21 Найти цитируемый пост)
Dik0n продемонстриовал именно тривью.  

Ну я его пример не смотрел, поскольку у меня нигде нет установленного делфи. Но я догадываюсь, какой именно он использовал компонент, когда-то сам немого с ним сталкивался. Если это он, то он может работать и как тривью и как листвью... хотя какая в принципе разница. При желании в листвью ВПФ можно и раскрывающие списки делать и тд, потому я никогда и не использую тривью, мне он кажется просто номинальным...

Автор: cemick 8.6.2011, 13:36
Цитата(Rohoss @  8.6.2011,  12:34 Найти цитируемый пост)
            var list = CreateMillion();
            DateTime dt1 = DateTime.Now;
            lv.ItemsSource = list;
            DateTime dt2 = DateTime.Now;
            TimeSpan ts = dt2 - dt1;
            textBox1.Text = ts.ToString();

Что это за жесть??? Где тут тестирование ГУИ? Сначала формируется список потом присваивается ItemSource. Вот пример аналогичный делфовому на тест гуи:
[code=С#]
private void button1_Click(object sender, RoutedEventArgs e)
        {
            list = new List<MyData>();
           
            DateTime dt1 = DateTime.Now;
            CreateMillion();            
            DateTime dt2 = DateTime.Now;
            TimeSpan ts = dt2 - dt1;
            textBox1.Text = ts.ToString();
            
        }

        private List<MyData> CreateMillion()
        {
            MyData myData = null;
            for (int i = 0; i < 1000000; i++)
            {
                myData = new MyData() {X = i, Y = i + 1, Z = i + 2};
               lv.Items.Add(myData);
            }
            return list;
        }
[/code]

6 секунд, в 6!!! раз дольше

Добавлено через 6 минут и 44 секунды
Цитата(Zloxa @  8.6.2011,  13:01 Найти цитируемый пост)
Я прекрасно знаю о чем ты толкуешь, но, во первых, если я не ошибаюсь, даже на делфи ты не получишь десять миллионов записей от MS SQLя по мере надобности. На сколько я знаю, так не умеет сам MS SQL, он отдает набор в фетч только после того как он полностью сформирован, чтобы как можно меньше держать блокировки по чтению. Выдавать фетч по запросу клиента могут не многие системы. Я знаю лишь об оракле. Возможно постгр и ФБ так умеют, они - версионники, у них блокировок по чтению нет. Так что эта плюха скорее к платформе БД и средствам доступа, но не к платформе разработки.

В слишком глубоко подумали, а говорил не про порционную загрузку. А про клиентские средства. В делфи связать TDataSet'а раз плюнуть, при этом компоненты будут заботиться о рефреше детали. Кинул две таблицы, кинул DataSet, DataSoource, присвоил запросы, указал мастердасет и ключ. Компиляция. Приложение готово. 

Автор: Keeper89 8.6.2011, 13:45
cemick, мне кажется только ненормальный будет так заполнять в делфи список.

Автор: Akella 8.6.2011, 13:47
Цитата(Rohoss @  8.6.2011,  00:19 Найти цитируемый пост)
И то, что разработчик на дельфи будет писать день, разработчик на сишарпе напишет за час.

это было образно сказано ;) не льсти себе

Автор: Rohoss 8.6.2011, 13:49
Цитата(cemick @  8.6.2011,  13:36 Найти цитируемый пост)
Что это за жесть??? Где тут тестирование ГУИ? Сначала формируется список потом присваивается ItemSource. 

да нет, ты ошибаешься, это как раз и есть тестирования гуя. Сначала я создаю данные, а отрисовываются они во время привязки при lv.ItemsSource = list; А твой пример это создание данных в перемешку с прорисовкой гуя. 

Автор: Akella 8.6.2011, 13:50
Цитата(Rohoss @  8.6.2011,  00:19 Найти цитируемый пост)
Ну а что вы хотели, что вебстраница будет лучше работать чем гуй? smile

БЛИИИААААА
ДА ВЫ ЧЁ РЕБЯТА, ИЗВИНИТЕ ЗА ВЫРАЖЕНИЕ, ТУПИТЕ!!!??! Я О ДРУГОМ  smile  smile  smile  smile  smile  smile 

РЕЧЬ ШЛА О ПРОИЗВОДИТЕЛЬНОСТИ И ТОМ, ЧТО ЮЗЕРУ ПОХ НА ЧЁМ НАПИСАНО. ГЛАВНОЕ ЧТОБЫ РАБОТАЛО БЕЗ ГЛЮКОВ И БЫСТРО!

Автор: Keeper89 8.6.2011, 13:52
Rohoss в последнем посте сказал верно

Автор: Akella 8.6.2011, 13:52
Цитата(Rohoss @  8.6.2011,  00:40 Найти цитируемый пост)
В соседней теме делфисты пытаются локализировать своё приложения, они качают сотни мегабайт компонентов, пробуют, подключают.

За то у нас есть выбор! Мало того, в дельфи встроен ITE, если ты забыл  smile 

Только я не понял,о каких СОТНЯХ идёт речь?

Автор: cemick 8.6.2011, 13:53
Цитата(Keeper89 @  8.6.2011,  13:45 Найти цитируемый пост)
cemick, мне кажется только ненормальный будет так заполнять в делфи список. 

ну там же зашел разговор про тест ГУИ, а то что было первоначально не имеет ни какого отношения к 
Цитата(Rohoss @  8.6.2011,  12:34 Найти цитируемый пост)
Отрисовка милиона записай у меня заняла 00:00:00.0010000 (одну сотую секунды), десяти миллионов 00:00:00.0030002 (три сотых секунды)


Автор: Akella 8.6.2011, 13:54
Цитата(Rohoss @  8.6.2011,  00:40 Найти цитируемый пост)
Собственно практически и всё.

Не всё!
Нужно дать пользователю удобный и готовый инструмент для перевода. Возможность хранить данные в базе. И др.

Автор: Zloxa 8.6.2011, 13:57
Цитата(cemick @  8.6.2011,  13:36 Найти цитируемый пост)
указал мастердасет и ключ

Вот, кстати, в демухах видел, на практике же ни разу не удавалось пользовать )) На сколь нибудь реальных объемах, скролл мастера становится непооротливым, не эргономичным, приходится детали рефрешить ассинхронно и лапами. Я бы не стал это использовать как аргумент.... 

Судя по всему Вы действительно что-то понимаете в доднете? Там действительно все плохо с датааварью? Я слышал в адо.нет наконец то дорос до отмершего с БДЕ ништякового ништяка вроде ТUpdateSQL, позволяющего для набора данных самостоятельно сформировать запросы на добавление, модификацию, обновление и удаление записи. Мне этого так не хватало в обычном АДО. ((

Автор: cemick 8.6.2011, 13:57
Цитата(Rohoss @  8.6.2011,  13:49 Найти цитируемый пост)
Сначала я создаю данные, а отрисовываются они во время привязки при lv.ItemsSource


Глупость какая, там всегда отрисовываются только видимые записи, хоть миллиард захерачте

Автор: Keeper89 8.6.2011, 13:58
Akella, быстро и работало можно сделать и там и там, в чем вопрос?

Автор: Akella 8.6.2011, 13:58
Цитата(Zloxa @  8.6.2011,  10:10 Найти цитируемый пост)
Я попытался в тот веб окунутся, у меня опустились руки и я впал в уныние.

уныние - это смертный грех  smile 

Автор: Zloxa 8.6.2011, 14:01
Цитата(Akella @  8.6.2011,  13:50 Найти цитируемый пост)
РЕЧЬ ШЛА О ПРОИЗВОДИТЕЛЬНОСТИ И ТОМ, ЧТО ЮЗЕРУ ПОХ НА ЧЁМ НАПИСАНО. ГЛАВНОЕ ЧТОБЫ РАБОТАЛО БЕЗ ГЛЮКОВ И БЫСТРО! 

ПОХ НА ЮЗЕРА. РАБОТУ ОПЛАЧИВАЕТ ЗАКАЗЧИК. А УДОБСТВО МАРТЫШЕК - НЕ САМЫЙ СУЩЕСТВЕННЫЙ КРИТЕРИЙ ДЛЯ ТОГО, КТО ПЛАТИТ ДЕНЬГИ. МАСШТАБИРУЕМОСТЬ, ПОТДЕРЖИВАЕМОСТЬ, СТОИМОСТЬ РЕАЛИЗАЦИИ И ВЛАДЕНИЯ - КУДА БОЛЕЕ ВАЖНЫЕ КРИТЕРИИ. ЭТО ИНТЕРПРАЙЗ, ДЕТКА. ЗДЕСЬ ЮЗЕР - РЕСУРС.

Автор: Akella 8.6.2011, 14:02
Цитата(Rohoss @ 8.6.2011,  13:22)
Кстати, по бд, а есть вообще для делфи адекватные ORM?

оно?
http://www.instantobjects.org/
http://www.macrobject.com/en/dobject/
http://tiopf.sourceforge.net/Doc/overview/index.shtml
http://code.google.com/p/g-framework/
http://tiopf.sourceforge.net/
http://www.remobjects.com/da/delphi.aspx

Автор: Frees 8.6.2011, 14:08
Цитата(Zloxa @  8.6.2011,  17:01 Найти цитируемый пост)
ПОХ НА ЮЗЕРА. РАБОТУ ОПЛАЧИВАЕТ ЗАКАЗЧИК. А УДОБСТВО МАРТЫШЕК - НЕ САМЫЙ СУЩЕСТВЕННЫЙ КРИТЕРИЙ ДЛЯ ТОГО, КТО ПЛАТИТ ДЕНЬГИ. МАСШТАБИРУЕМОСТЬ, ПОТДЕРЖИВАЕМОСТЬ, СТОИМОСТЬ РЕАЛИЗАЦИИ И ВЛАДЕНИЯ - КУДА БОЛЕЕ ВАЖНЫЕ КРИТЕРИИ. ЭТО ИНТЕРПРАЙЗ, ДЕТКА. ЗДЕСЬ ЮЗЕР - РЕСУРС.

aimp, skype - писались для пользователя а не заказчика(хотя для делфи программ это скорее исключение чем правило)....

Автор: Akella 8.6.2011, 14:09
http://code.google.com/p/jazz-sdk/
http://code.google.com/p/delphiorm/

Автор: Frees 8.6.2011, 14:10
А кто правда думает, что однозначно лучший только 1 язык?

Автор: Rohoss 8.6.2011, 14:14
Цитата(cemick @  8.6.2011,  13:57 Найти цитируемый пост)
Глупость какая, там всегда отрисовываются только видимые записи, хоть миллиард захерачте 

Ну вот. А замем делать то что не нужно? Зачем отрисовывать то, что за пределема видимости?

Цитата(Akella @  8.6.2011,  14:02 Найти цитируемый пост)
оно?
http://www.instantobjects.org/ 

Там чёрти что smile Может оно как-то и выполняет функцию ОРМ

http://www.instantobjects.org/
Цитата

 object-oriented business solutions in Delphi

http://ru.wikipedia.org/wiki/ORM

Цитата(Zloxa @  8.6.2011,  14:01 Найти цитируемый пост)
ПОХ НА ЮЗЕРА. РАБОТУ ОПЛАЧИВАЕТ ЗАКАЗЧИК. А УДОБСТВО МАРТЫШЕК - НЕ САМЫЙ СУЩЕСТВЕННЫЙ КРИТЕРИЙ ДЛЯ ТОГО, КТО ПЛАТИТ ДЕНЬГИ. МАСШТАБИРУЕМОСТЬ, ПОТДЕРЖИВАЕМОСТЬ, СТОИМОСТЬ РЕАЛИЗАЦИИ И ВЛАДЕНИЯ - КУДА БОЛЕЕ ВАЖНЫЕ КРИТЕРИИ. ЭТО ИНТЕРПРАЙЗ, ДЕТКА. ЗДЕСЬ ЮЗЕР - РЕСУРС.

 smile 

Автор: cemick 8.6.2011, 14:14
Цитата(Frees @  8.6.2011,  14:10 Найти цитируемый пост)
А кто правда думает, что однозначно лучший только 1 язык? 

Может быть вы сможете доказать что Delphi не лучший язык?  smile

Добавлено через 1 минуту и 25 секунд
Rohoss
Хрен с ним с ORM, вы на мой ответ про простое приложение БД с Мастер-Деталью не ответили))

Автор: Zloxa 8.6.2011, 14:16
Akella, ты даешь гарантию адекватности приводимых тобой ОРМ?
/*ОРМ вообще это адекватно?*/ smile 

Автор: Rohoss 8.6.2011, 14:17
Цитата(Frees @  8.6.2011,  14:10 Найти цитируемый пост)
А кто правда думает, что однозначно лучший только 1 язык? 

Я например не утверждаю что однозначно. Просто для реализации большинства современных требований больше подходит .нет. Преимущества делфи над .нетом конечно же есть и их много, но со временем они просто становятся не актуальными  smile 

Автор: Keeper89 8.6.2011, 14:19
Точнее чем сказал Zloxa и не скажешь smile

Автор: Rohoss 8.6.2011, 14:20
Цитата(Akella @  8.6.2011,  14:02 Найти цитируемый пост)
оно?
http://www.instantobjects.org/
http://www.macrobject.com/en/dobject/
http://tiopf.sourceforge.net/Doc/overview/index.shtml
http://code.google.com/p/g-framework/
http://tiopf.sourceforge.net/
http://www.remobjects.com/da/delphi.aspx 

Это пост появился до того как я запостил smile . Но я спрашивал адекватных. Уровня Hibernate и Entity Framework

Добавлено через 42 секунды
Цитата(Zloxa @  8.6.2011,  14:16 Найти цитируемый пост)
Akella, ты даешь гарантию адекватности приводимых тобой ОРМ?
/*ОРМ вообще это адекватно?*/   

Мля, ну вы и постите реактивно  smile

Добавлено через 3 минуты и 44 секунды
Цитата(cemick @  8.6.2011,  14:14 Найти цитируемый пост)
Хрен с ним с ORM, вы на мой ответ про простое приложение БД с Мастер-Деталью не ответили)) 

Я ответ на этот вопрос не знаю и знать не хочу. Потому что примеры, которые я приводил основываются на реальных требованиях, а кто громче пёрднит, вы уж простите, меня мало интересует. Решение инопланетных задач - это не задача .нета. smile 

Автор: Zloxa 8.6.2011, 14:28
Цитата(Frees @  8.6.2011,  14:10 Найти цитируемый пост)
А кто правда думает, что однозначно лучший только 1 язык? 

Я не знаю кто как, в результате длительных холиворов с моими опонентами, я пришел к выводу, что за десять лет разрыва между делфей и доднетом, доднет смог пока лишь предложить интересную для меня, как разраба технологию - WPF. Причем интересна она мне лишь по той причине, что я не в зуб ногой о чем там, но все говорят что она весьма и весьма инновационна. Все остальные ставшие известными мне свистелки и перделки, конечно интересны, но не позволяют однозначно рассудить, что доднет, как платформа решений уровня предприятия - лучше. smile

Автор: cemick 8.6.2011, 14:33
Цитата(Rohoss @  8.6.2011,  14:20 Найти цитируемый пост)
Решение инопланетных задач - это не задача .нета. 

Инопланетных задач? Если это считать инопланетной задачей, тогда Дот.Нет только и годиться что писать калькулятор, покажите мне десктопное энтерпраиз решение на дот.нете? Все .NET десктоп продукты которые я знаю жуткие тормоза: VS, Evenote 3.5, Seesmic

Добавлено @ 14:39
Цитата(Zloxa @  8.6.2011,  14:28 Найти цитируемый пост)
WPF

WPF круто, но для бизнес приложений она как собаке пятая лапа, а то что сейчас есть это жуткий комок багов и глюков, в 5 фреймворке наконец то сделают дебагер для WPF, может ситуация измениться. 
Вообще это в стиле МС куча всего сделать клевого, но все до конца не довести.

Автор: Rohoss 8.6.2011, 14:50
Всё, Рохосс всё что сказать хотел уже сказал, и дальше прекращает тут что-то доказывать, ибо у него тоже есть ещё чем заняться smile .

Автор: Akella 8.6.2011, 14:55
Цитата(Frees @ 8.6.2011,  14:10)
А кто правда думает, что однозначно лучший только 1 язык?

в каком смысле?

Добавлено через 1 минуту и 29 секунд
Цитата(Rohoss @  8.6.2011,  14:20 Найти цитируемый пост)
Я ответ на этот вопрос не знаю и знать не хочу. Потому что примеры, которые я приводил основываются на реальных требованиях, а кто громче пёрднит, вы уж простите, меня мало интересует. Решение инопланетных задач - это не задача .нета. smile  


мастер-деталь - это инопланетная задача  smile  smile  smile  smile smile smile smile smile smile smile

Добавлено через 1 минуту и 49 секунд
инопланетная задача - это то, что ты привел про какую-то там расширяемость

Добавлено через 3 минуты и 11 секунд
Цитата(cemick @  8.6.2011,  14:33 Найти цитируемый пост)
Инопланетных задач? Если это считать инопланетной задачей, тогда Дот.Нет только и годиться что писать калькулятор,


РАСШИРЯЕМЫЙ КАЛЬКУЛЯТОР  smile

Добавлено через 5 минут и 10 секунд
Цитата(cemick @  8.6.2011,  14:33 Найти цитируемый пост)
Вообще это в стиле МС куча всего сделать клевого, но все до конца не довести.


Не успевают. Примером тому: Windows 95, Millenium, Vista, Office 2007. Это только самые распространённые.

Добавлено через 5 минут и 59 секунд
Цитата(Rohoss @ 8.6.2011,  14:50)
Всё, Рохосс всё что сказать хотел уже сказал, и дальше прекращает тут что-то доказывать, ибо у него тоже есть ещё чем заняться smile .

Да, во флейме и в песочнице работы много. А в пятницу за тебя всё сделает сама MS Studio ;)

Автор: cemick 8.6.2011, 15:35
Кто с мечом к нам прийдет, тот от меча и погибнет.(с) smile  

Закидали камнями тухлыми помидорами, победа!)))

Автор: Rohoss 8.6.2011, 15:57
Вот почему-то, когда с одними людьми можно всё обсудить, другие пытаются всё обосрать выдвигая свои неконструктивные умозаключений и убеждения

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
мастер-деталь - это инопланетная задача

Я не знаю как подгружать данные с бд по надобности, и этот вопрос меня мало волнует, потому что через БД в основном работаю с http://ru.wikipedia.org/wiki/Language_Integrated_Query а работу с бд в делфи считаю вообще анекдотом, но это моё личное мнение smile 

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
 Office 2007

Ещё офис обосри  smile , дальше уже некуда

Добавлено через 1 минуту и 16 секунд
Вот почему-то, когда с одними людьми можно всё обсудить, другие пытаются всё обосрать выдвигая свои неконструктивные умозаключений и убеждения

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
мастер-деталь - это инопланетная задача

Я не знаю как подгружать данные с бд по надобности, и этот вопрос меня мало волнует, потому что через БД в основном работаю с http://ru.wikipedia.org/wiki/Language_Integrated_Query а работу с бд в делфи считаю вообще анекдотом, но это моё личное мнение smile 

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
 Office 2007

Ещё офис обосри  smile , дальше уже некуда

Добавлено через 1 минуту и 20 секунд
Вот почему-то, когда с одними людьми можно всё обсудить, другие пытаются всё обосрать выдвигая свои неконструктивные умозаключений и убеждения

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
мастер-деталь - это инопланетная задача

Я не знаю как подгружать данные с бд по надобности, и этот вопрос меня мало волнует, потому что через БД в основном работаю с http://ru.wikipedia.org/wiki/Language_Integrated_Query а работу с бд в делфи считаю вообще анекдотом, но это моё личное мнение smile 

Цитата(Akella @  8.6.2011,  14:55 Найти цитируемый пост)
 Office 2007

Ещё офис обосри  smile , дальше уже некуда

Автор: Zloxa 8.6.2011, 16:03
Цитата(Rohoss @  8.6.2011,  15:57 Найти цитируемый пост)
 Linq

Линкью, кстати тоже вещ забавная.
Я прально понимаю, им можно жойнить коллекции?

Но вот как прослой между клиентским кодом и датабазой, он меня как то больно шибко уж сильно настораживает.

Автор: cemick 8.6.2011, 16:10
Цитата(Zloxa @  8.6.2011,  16:03 Найти цитируемый пост)
Но вот как прослой между клиентским кодом и датабазой, он меня как то больно шибко уж сильно настораживает. 

+100500
Вещь клевая, но легко можно прострелить себе ногу. И очень осторожно и уместно надо использовать.

Автор: Rohoss 8.6.2011, 16:39
Цитата(Zloxa @  8.6.2011,  16:03 Найти цитируемый пост)
Я прально понимаю, им можно жойнить коллекции?

Конечно  smile Можно даже выполнять операции присваивания в запросах.

Автор: Dik0n 8.6.2011, 17:04
Цитата

Отрисовка милиона записай у меня заняла 00:00:00.0010000 (одну сотую секунды), десяти миллионов 00:00:00.0030002 (три сотых секунды)

Ну так то и у нас доли секунды
Код

VirtualStringTree1.RootNodeCount := 1000000;

Цитата

Я не ходил по интернетах и не качал всякие компоненты

Вот и хорошо что у нас есть кучи компонентов, вот небольшой списочег VirtualStringTree только published свойств компонента smile  с ним можно решать любые инопланетные задачи smile 
http://my-soft.ucoz.ru/1.png

Автор: AKATAN 8.6.2011, 17:26
Цитата(Zloxa @ 8.6.2011,  14:01)
Цитата(Akella @  8.6.2011,  13:50 Найти цитируемый пост)
РЕЧЬ ШЛА О ПРОИЗВОДИТЕЛЬНОСТИ И ТОМ, ЧТО ЮЗЕРУ ПОХ НА ЧЁМ НАПИСАНО. ГЛАВНОЕ ЧТОБЫ РАБОТАЛО БЕЗ ГЛЮКОВ И БЫСТРО! 

ПОХ НА ЮЗЕРА. РАБОТУ ОПЛАЧИВАЕТ ЗАКАЗЧИК. А УДОБСТВО МАРТЫШЕК - НЕ САМЫЙ СУЩЕСТВЕННЫЙ КРИТЕРИЙ ДЛЯ ТОГО, КТО ПЛАТИТ ДЕНЬГИ. МАСШТАБИРУЕМОСТЬ, ПОТДЕРЖИВАЕМОСТЬ, СТОИМОСТЬ РЕАЛИЗАЦИИ И ВЛАДЕНИЯ - КУДА БОЛЕЕ ВАЖНЫЕ КРИТЕРИИ. ЭТО ИНТЕРПРАЙЗ, ДЕТКА. ЗДЕСЬ ЮЗЕР - РЕСУРС.

smile 

Смотря где, с кем и когда.
т.к. занимаюсь СКАДА системами, то говорю из собственного опыта: мартышка, в виде главного инженера (уполномоченного лица заказчика) диктует условия очень и очень жестко. Там кнопка, там график, а там ее быть не должно (часто приходится писать компоненты именно под нужды ОДНОГО заказчика).
Прибыль от продажи такого ПО не меньше, чем от продаж "серийного" ПО, где, как Вы сказали юзер - ресурс.

Автор: Rohoss 8.6.2011, 17:47
Цитата(Dik0n @  8.6.2011,  17:04 Найти цитируемый пост)
http://my-soft.ucoz.ru/1.png

Считаешь такой набор свойств есть гуд? Значит мало опыта ещё smile 

Цитата(Dik0n @  8.6.2011,  17:04 Найти цитируемый пост)
Вот и хорошо что у нас есть кучи компонентов, вот небольшой списочег VirtualStringTree только published свойств компонента   с ним можно решать любые инопланетные задачи

Работал я когда-то, давным давно с вашим VT, вроде так вы его называете. Компоненты хороши (если не ошибаюсь их там два), однако они рядом не стояли с ListView в WPF

Автор: Dik0n 8.6.2011, 18:20
Цитата(Rohoss @  8.6.2011,  17:47 Найти цитируемый пост)
однако они рядом не стояли с ListView в WPF

Пустые слова, где доказательства, вот зацени демку из стандартного набора, и сделай на WPF хоть что нибуть, что невозможно там.

Автор: cemick 8.6.2011, 18:43
Цитата(Dik0n @  8.6.2011,  18:20 Найти цитируемый пост)
Пустые слова, где доказательства, вот зацени демку из стандартного набора, и сделай на WPF хоть что нибуть, что невозможно там. 

На самом деле легко можно сделать что невозможно в VT. Но не в этом дело же. 
Концепция WPF: xaml +DataTemplate+ DataBinding сильна. Дело то в сырости WPF и инструментов разработки, общей заторможенности .Net.

Автор: Rohoss 8.6.2011, 18:44
Цитата(Dik0n @  8.6.2011,  18:20 Найти цитируемый пост)
Пустые слова, где доказательства

Всё давным давно доказано, почитай интернету. Я уже писал, что больше не буду тут примеры приводить, но если тебя этот вопрос действительно интересует, то ты можешь посмотреть как может выглядеть гуй с помощью ВПФ на просторах интернета.

Автор: cemick 8.6.2011, 18:54
Цитата(Rohoss @  8.6.2011,  18:44 Найти цитируемый пост)
Всё давным давно доказано, почитай интернету. Я уже писал, что больше не буду тут примеры приводить, но если тебя этот вопрос действительно интересует, то ты можешь посмотреть как может выглядеть гуй с помощью ВПФ на просторах интернета. 

Да но в энтерпрайзе он не нужен, в энерпрайзе не нужны эффекты вот в чем дело, нужно стандартное Windows приложение.  

Автор: Dik0n 8.6.2011, 19:14
Цитата(Rohoss @  8.6.2011,  18:44 Найти цитируемый пост)
Всё давным давно доказано, почитай интернету. Я уже писал, что больше не буду тут примеры приводить, но если тебя этот вопрос действительно интересует, то ты можешь посмотреть как может выглядеть гуй с помощью ВПФ на просторах интернета. 

Ну да полазил по гуглу посмотрел интерфейсы, ничего особенного, я тоже самое на VT делал.
Я даже VT под дизассемблер приспособил, дизассембелирование и отрисовка на лету с любого виртуального адреса.

http://my-soft.ucoz.ru/images/gg_dissasm_big.png

Автор: Frees 8.6.2011, 19:23
VT это GDI, а WPF - DirectX. свистелки и пирделки тут гораздо красивее можно сделать...


Автор: Rohoss 8.6.2011, 19:25
Цитата(cemick @  8.6.2011,  18:54 Найти цитируемый пост)
Да но в энтерпрайзе он не нужен, в энерпрайзе не нужны эффекты вот в чем дело, нужно стандартное Windows приложение.  

Тут вопрос спорный. Дело в том, что если софт разрабатывается для внутреннего заказчика, то понятное дело руководство не хочет тратится на красивый гуй и тд, так как ему пофиг на какие кнопки будет жать подчинённый. Однако, если софт для другой организации, или ещё лучше если для массовой продажи, то тут важный фактор человеческая психология. То есть, если человеку софт визуально понравится, он найдёт сам для себя обоснования чтобы его купить, даже пренебрегая при этом некоторый полезным функционалом. 

Автор: Frees 8.6.2011, 19:26
Цитата(cemick @  8.6.2011,  21:54 Найти цитируемый пост)
Да но в энтерпрайзе он не нужен, в энерпрайзе не нужны эффекты вот в чем дело, нужно стандартное Windows приложение.  

Сейчас еще модно стало Веб и всякие облака SaaS - тут Delphi совсем никак (или я неправ?)

Автор: Rohoss 8.6.2011, 19:29
Цитата(Rohoss @  8.6.2011,  19:25 Найти цитируемый пост)
Тут вопрос спорный. Дело в том, что если софт разрабатывается для внутреннего заказчика, то понятное дело руководство не хочет тратится на красивый гуй и тд, так как ему пофиг на какие кнопки будет жать подчинённый.

Хотя, тут вопрос тоже спорный. Человеку более приятно будет работать с более красивым софтом, а значит и уважение к компании будет выше и человек навряд ли перейдёт на другую работу, где он будет работать с унылым гуем. На самом деле это тоже играет роль, однако я не думаю что работодатели пост советского пространства это будут учитывать.

Добавлено через 2 минуты и 16 секунд
Однако, среди известных мне проектов (десктопа), которые разрабатываются в данный момент для западных компаний 80% это WPF

Автор: Akella 8.6.2011, 23:20
Цитата(Frees @ 8.6.2011,  19:26)
Цитата(cemick @  8.6.2011,  21:54 Найти цитируемый пост)
Да но в энтерпрайзе он не нужен, в энерпрайзе не нужны эффекты вот в чем дело, нужно стандартное Windows приложение.  

Сейчас еще модно стало Веб и всякие облака SaaS - тут Delphi совсем никак (или я неправ?)

;)
http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=delphi+%D0%BE%D0%B1%D0%BB%D0%B0%D0%BA%D0%B0#sclient=psy&hl=ru&source=hp&q=delphi+cloud&aq=3&aqi=g5&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=8a96674a9faec679&biw=1366&bih=649

Автор: Zloxa 9.6.2011, 09:22
Цитата(Rohoss @  8.6.2011,  19:25 Найти цитируемый пост)
Однако, если софт для другой организации, или ещё лучше если для массовой продажи, то тут важный фактор человеческая психология

Тут вопрос в действительности не такой уж и спорный. Ты наверно слышал о такой штуке, как пирамида потребностей? Так вот эстетические потребности находятся у вершины пирамиды, а физиологические потребности - в основании. Эта та самая причина, почему эстетиеский аспект рассматривается в последнюю очередь. Возьмем, к примеру, 1С Бухгалтерию и ОЕБС. 1С эргономичен, удобен, гибок. На нем и буху работать приятно и разрабатывать под него - легко и непринужденно, не даром в этой нише пригрелось столько бездарностей от программирования. ОЕБС - ужасен, не удобен, гибок как железобетон и грациозен как гипопотам. Бухи пьют валерьяну, работая на нем, разрабы зубовно скрежещут, допиливая его. А стоит ОЁБС не на один порядок дороже - почему? Потому что он масштабируем. И тот, для кого масштабируемость - базовая потребность, будет терпеть его таким, какой он есть. Жертвовать масштабируеостью ОЕБС ради эстетической привлекательности 1С, душевного здоровья бухгалтеров и удобства программистов, как - то нелепо, нет?

Потому я и говорю, эргономика безусловно важна, но она - отнюдь не главное и сравнивать эргономические характеристики следует далеко не в первую очрередь.

Автор: Keeper89 9.6.2011, 10:16
Ну не знаю, версии 1С что я видел (7.7), на мой взгляд те еще крокодилы. 

Автор: Zloxa 9.6.2011, 10:20
Keeper89, оебс уёбснее даже семерки  smile

Добавлено через 1 минуту и 35 секунд
Восьмерншный интерфейс 1Ски я нахожу достаточно милым и удобненьким. 

Автор: Rohoss 9.6.2011, 10:53
Я в пользу ВПФ приведу ещё один пример. Дело в том, что создавать на нём приложения, уровня вин-форм, совсем не сложно и это похоже на создание приложений в винформ. Так же кликнув два раза на кнопке вы создадите обработчик событий, так же вам доступен список свойств и событий в дизайнере. Буквально потратив пару дней по пару часов вы уже сможете на ВПФ делать ничем не хуже гуй чем на винформ. В таком случае, целесообразней будет выбрать платформу, которая имеет больший потенциал, а вдруг понадобится smile

Добавлено через 6 минут и 35 секунд
Кстати, вот специально для таких как Dik0n http://dl.dropbox.com/u/5353609/Site3DTemplate.html , которые могут сделать на VT всё что возможно на ВПФ (правда в данном случае это сильвелат, младший брат ВПФа), попробуйте повторить. Там внизу, где News, Company - это листбокс

Автор: Zloxa 9.6.2011, 11:08
Цитата(Rohoss @  9.6.2011,  10:53 Найти цитируемый пост)
в пользу ВПФ

против ВПФ вэтой ветке, на сколько я помню, двигался только один тезис - глючность низкая стабильность.

В пользу делфи у меня есть такой спорный довод - исходники vcl. Я на практике не однократно сталкивался с ситуацией, когда не могу добиться необходимого мне функционала от компонент. Походив по их исходному коду под отладчиком я, как правило, рассеивал свои недоумения. Зачастую эти недоумения возникали в виду недодосканального изучения документации, но бывало и такое, что мне казалось что недостаток вызыван ошибкой проектирования или же ошибкой реализации. Тогда я брал исходник нужного мне компонента, приводил его к должному для себя виду, пристегивал его к проекту. Тому, конечно, есть риск - неудобопортируемость. Но в 2011м году ожидать что доведется кудато портировать исходники для седьмй делфи - не приходится.

Полагаю на доднете, если вдруг, по каким то причинам не удается добиться ожидаемого функционала от компонента, найдется куда меньше пространства для маневра. Придется смириться с тем, что есть.

Автор: cemick 9.6.2011, 11:10
Цитата(Rohoss @  9.6.2011,  10:53 Найти цитируемый пост)
Кстати, вот специально для таких как Dik0n ссылко , которые могут сделать на VT всё что возможно на ВПФ (правда в данном случае это сильвелат, младший брат ВПФа), попробуйте повторить. Там внизу, где News, Company - это листбокс

Там какашка какая то, которую просто стыдно показывать. В делфи куча компонентов есть которые могут сделать вам красиво.  Если уж решили показывать интерфейсы, то приведи например вот такой http://demos.telerik.com/silverlight   Но в данном случае можно тогда посмотреть DevExpress VCL,  и я бы уже не сказал что между ними огромная пропасть

Автор: Zloxa 9.6.2011, 11:10
Цитата(Rohoss @  9.6.2011,  10:53 Найти цитируемый пост)
ссылко

ссыль битый smile

Добавлено через 1 минуту и 30 секунд
Цитата(cemick @  9.6.2011,  11:10 Найти цитируемый пост)
 DevExpress VCL

Если не ошибаюсь, девэкспрессы есть и для доднета...smile

Автор: cemick 9.6.2011, 11:13
Zloxa
И полностью поддерживаю. В Делфи НЕТ МАГИИ. Можно докапаться до самого низкого уровня, до ASM или WinAPI, контроль приложения полный. И при разработке это большой плюс.

Добавлено через 1 минуту и 31 секунду
Цитата(Zloxa @  9.6.2011,  11:10 Найти цитируемый пост)
ссыль битый 

Ссылка нормальная но туда лучше не заглядывать, я досих пор хочу это развидеть

Автор: Rohoss 9.6.2011, 11:20
Цитата(Zloxa @  9.6.2011,  11:08 Найти цитируемый пост)
Полагаю на доднете, если вдруг, по каким то причинам не удается добиться ожидаемого функционала от компонента, найдется куда меньше пространства для маневра.

В дотнете тоже есть отладчик и я бы не сказал что хуже чем в делфи. И исходники можно смотреть, есть утилита специальная.

Цитата(Zloxa @  9.6.2011,  11:08 Найти цитируемый пост)
против ВПФ вэтой ветке, на сколько я помню, двигался только один тезис - глючность низкая стабильность.

Ты имеешь ввиду высказывания семика? Я на это даже отвечать не захотел. На самом деле, в вс2010 нет проблем, в вс2008 они были. Есть маленькие неудобства, например, определив элементы управления в ХАМЛе дебагер нам не укажет строчку, в которой произошло исключение. Однако, из самого исключения можно более менее адекватно определить что не так. Короче, никаких глюков, которые мешали бы разрабатывать проект любой сложно - там нет. Что касается сильвелата, то там да, баг на баге и багом погоняет  smile

Добавлено через 2 минуты и 24 секунды
Цитата(Zloxa @  9.6.2011,  11:10 Найти цитируемый пост)
ссыль битый

нет, проверил. возможно у тебя просто плагин сильверлата не установлен

Добавлено через 4 минуты и 40 секунд
Цитата(cemick @  9.6.2011,  11:13 Найти цитируемый пост)
Ссылка нормальная но туда лучше не заглядывать, я досих пор хочу это развидеть 

ты пробовал кликнуть на кубик?

Автор: cemick 9.6.2011, 11:29
Цитата(Rohoss @  9.6.2011,  11:20 Найти цитируемый пост)
В дотнете тоже есть отладчик и я бы не сказал что хуже чем в делфи. И исходники можно смотреть, есть утилита специальная.

Я думаю  в этом большой  опыт? Во первых не исходники получаем, во вторых отладить часто их не возможно, и далеко не все можем отдисассемблировать  


Цитата(Rohoss @  9.6.2011,  11:20 Найти цитируемый пост)
Однако, из самого исключения можно более менее адекватно определить что не так. 

О-да, если в конструкторе контрола выскачил экспешен, то в дебагере мы получим сообщение не правильаная XAML разметка,  я бы не сказал что это помогает адекватно определить что  нет так.

Цитата(Rohoss @  9.6.2011,  11:20 Найти цитируемый пост)
ты пробовал кликнуть на кубик? 

О да!

Автор: Rohoss 9.6.2011, 12:21
Цитата(cemick @  9.6.2011,  11:29 Найти цитируемый пост)
О-да, если в конструкторе контрола выскачил экспешен, то в дебагере мы получим сообщение не правильаная XAML разметка,  я бы не сказал что это помогает адекватно определить что  нет так.


Код

        public UserControl1()
        {
            InitializeComponent();

            throw new Exception("баг в конструкторе");
        }


Цитата

System.Windows.Markup.XamlParseException произошло
  Message="Вызов конструктора для типа "WpfAppD.UserControl1", удовлетворяющего указанным ограничениям привязки, привел к выдаче исключения.": номер строки "5" и позиция в строке "28".
  Source=PresentationFramework
  LineNumber=5
  LinePosition=28
  StackTrace:
       в System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
       в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
       в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
       в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
       в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
       в WpfAppD.MainWindow.InitializeComponent() в c:\Users\Rohoss\Documents\Visual Studio 2010\Projects\WpfAppD\WpfAppD\MainWindow.xaml:строка 1
       в WpfAppD.MainWindow..ctor() в c:\users\Rohoss\documents\visual studio 2010\Projects\WpfAppD\WpfAppD\MainWindow.xaml.cs:строка 24
  InnerException: 
       Message=баг в конструкторе
       Source=WpfAppD
       StackTrace:
            в WpfAppD.UserControl1..ctor() в c:\users\Rohoss\documents\visual studio 2010\Projects\WpfAppD\WpfAppD\UserControl1.xaml.cs:строка 26
       InnerException: 


Извини, но мне тут всё понятно.

Мало того, дизайнер нам отображает ошибку до того, как мы попытаемся его скомпилировать

Автор: cemick 9.6.2011, 13:21
Цитата(Rohoss @  9.6.2011,  12:21 Найти цитируемый пост)
Извини, но мне тут всё понятно.


Видать поправили в SP1, действительно сейчас ОК. Ну и вообще в принципе  с SP1  студия стала гораздо стабильнее.  Что не может не радовать. 
Но все равно есть куча досадных вещей которые раздражают, взять хотя бы отсутствие вменяемого UML для студии. И вообще к чему только не прикоснешься везде траблы, хочешь использовать Unit тесты, выясниться что через CreateUnitTest нельзя создать тест для метода который был реализован в классе предке, но не перекрыт в текущем. И так к чему не прикоснешься. А без решарпера студия вообще пустышка, а с ним еще больший тормоз и падает. 

Автор: Rohoss 9.6.2011, 13:39
Я уже Злохе когда то говорил, что в .нете надо писать на .нете а не на делфи, и будет вам счастья  smile

Добавлено через 3 минуты и 49 секунд
.нет, это не какой-то навороченный делфи - это совсем другое, пока будете использовать .нет как делфи большой отдачи вы не добьётесь 

Автор: cemick 9.6.2011, 13:53
Цитата(Rohoss @  9.6.2011,  13:39 Найти цитируемый пост)
.нет, это не какой-то навороченный делфи - это совсем другое, пока будете использовать .нет как делфи большой отдачи вы не добьётесь  

Извините это как?

Автор: Dik0n 9.6.2011, 13:57
Программирование это искусство, а NET не дает свободы, а писать всю жизнь говн*код для баз данных, это не по мне... Даешь http://wasm.ru/  smile 

Автор: Zloxa 9.6.2011, 13:59
Цитата(Dik0n @  9.6.2011,  13:57 Найти цитируемый пост)
Программирование это искусство

Увы, это заблуждение школоты.

Добавлено через 7 минут и 25 секунд
Цитата(Rohoss @  9.6.2011,  13:39 Найти цитируемый пост)
Я уже Злохе когда то говорил

А я тебе тоже уже когда-то говорил, что когда я в 95м(или 96м) году впервые увидел делфи, я сразу понял что он лучше борланд паскаля и msvc. Это было очевидно. Чтобы понять это, не надо было писать на делфе год, как ты предлагаешь, чтобы понять преимущества доднета. Вывод. Преимущества доднета - не очевидны. Что тут не понятного?  smile 

Автор: cemick 9.6.2011, 14:15
Цитата(Zloxa @  9.6.2011,  13:59 Найти цитируемый пост)
Цитата(Dik0n @  9.6.2011,  13:57 )
Программирование это искусство

Увы, это заблуждение школоты.

 
Я бы не стал так уж про школоту,  вот скажите рисование  художником-аниматором-дизайнером рекламного плаката для заказчика для искусство или нет? Когда программирование становится драйвом и приносит удовольствие я думаю оно превращается в искусство, что с того, что ты зажат патернами и требованиями заказчика?  Если драйва и страсти нет, то надо что то менять.

Автор: Zloxa 9.6.2011, 14:35
cemick, на тему является ли программирование искусством, уже много нахоливарено. Суть моей позиции сводится к тому, что предмет искусства тем более ценен, чем несет больший отпечаток субъективизма автора. Наличие же суъективного отпечатка в программном коде это его недостаток, он обесценивает результат. В идеале, одна задача, решенная двумя хорошими программистами, с одинаковаыми критериями и исходными данными, должна решаться одинаково. Если же задача имеет более одного решения, она просто не достаточно четко поставлена.
Цитата(cemick @  9.6.2011,  14:15 Найти цитируемый пост)
рисование  художником-аниматором-дизайнером рекламного плаката для заказчика для искусство или нет? 

Если это и искуство, то искуством занимается скорее заказчик, используя художника как инструмент.

Автор: Dik0n 9.6.2011, 14:44
Цитата

Увы, это заблуждение школоты.

Zloxa, ну ну, я бы никогда не стал изучать программирование, если бы оно мне не приносило удовлетворение, с таким же успехом можно стоять за станком, работать менеджером, работать в банке и тд. и делать изо дня в день одно и тоже.

cemick, +++++

PS: Delphi тут не причем, низкоуровневое программирование намного интереснее...

Zloxa, Вы изучали программирование что-бы тупо зарабатывать деньги ? тогда мне Вас жаль...

Автор: Zloxa 9.6.2011, 14:46
Цитата(Dik0n @  9.6.2011,  14:44 Найти цитируемый пост)
Zloxa, Вы изучали программирование что-бы тупо зарабатывать деньги ? тогда мне Вас жаль... 

Нет, что вы.. Когда я, будучи романтично настроенным школьником учился программированию, я тоже наивно полагал, что это - исскусство.  smile 

Автор: Rohoss 9.6.2011, 14:51
Цитата(Dik0n @  9.6.2011,  14:44 Найти цитируемый пост)
Zloxa, Вы изучали программирование что-бы тупо зарабатывать деньги ? тогда мне Вас жаль... 

Не многие изучают программирования чтобы зарабатывать. Однако, приходят к этому в процессе.

Цитата(Dik0n @  9.6.2011,  14:44 Найти цитируемый пост)
PS: Delphi тут не причем, низкоуровневое программирование намного интереснее...

Кому как. Для меня низкоуровневое программирование это не интересное занятие, а вот когда результат твоего труда приносит радость людям, это радует.

Вообще, программирование, имхо, становится искусством при очень громадном объеме знаний, опыту и способностям. Когда люди разрабатывают что-то вроде ВПФ, ВСЛ, то это да - искусство. Однако же искусство с менее богатыми навыками разработки приводит к созданию глючного ###кода и изобретению никому ненужных велосипедов.
 

Автор: Dik0n 9.6.2011, 15:56
Цитата(Rohoss @  9.6.2011,  14:51 Найти цитируемый пост)
Кому как. Для меня низкоуровневое программирование это не интересное занятие, а вот когда результат твоего труда приносит радость людям, это радует.

 smile не знал что только высокоуровневое программирование может приносить пользу (радость) людям.

ЗЫ: если бы небыло операционных систем, драйверов - как бы Вы приносили радость людям ?

Автор: Akella 9.6.2011, 15:58
зато удалив код из обработчика события, Delphi сам удаляет событие и ссылку на событие у компонента, а в сишарпе студия не удаляет, приходится искать самому и удалять

Автор: cemick 9.6.2011, 16:42
Цитата(Akella @  9.6.2011,  15:58 Найти цитируемый пост)
зато удалив код из обработчика события, Delphi сам удаляет событие и ссылку на событие у компонента, а в сишарпе студия не удаляет, приходится искать самому и удалять 

А еще там нельзя перекрыть конструтор, т.е. он не может быть виртуальным. ..овно же ваш дот нет. Вот такой еще вброс)))

Автор: Zloxa 9.6.2011, 16:55
user posted image

Автор: cemick 9.6.2011, 17:29
Цитата(Rohoss @  9.6.2011,  14:51 Найти цитируемый пост)
Вообще, программирование, имхо, становится искусством при очень громадном объеме знаний, опыту и способностям. Когда люди разрабатывают что-то вроде ВПФ, ВСЛ, то это да - искусство. Однако же искусство с менее богатыми навыками разработки приводит к созданию глючного ###кода и изобретению никому ненужных велосипедов.

Причем тут искусство и опыт, студент на худграфе рисует картину это не искусство? Или потом вдруг через 30 лет, процесс который он выполняет при рисование картины внезапно становиться искусством. 
Цитата их вики:
Цитата

искусство - образное осмысление действительности; процесс или итог выражения[3] внутреннего или внешнего[4] мира творца в (художественном) образе; творчество, направленное таким образом, что оно отражает интересующее не только самого автора, но и других людей[5].


Чем же не программирование? Очень часто смотря на код некоторых проектов думаешь, OMG, что в голове было у этого человека)))  Очень даже отражение внутренного мира.

Автор: Frees 9.6.2011, 19:30
программирование не дает свободы, все делается в рамках технологий, правил, требований ....

свобода есть только в начале карьеры, когда делаешь для себя и не ограничен правилами(т.к. их не знаешь), а потом просто работа....

Автор: cemick 9.6.2011, 20:48
Цитата(Frees @  9.6.2011,  19:30 Найти цитируемый пост)
программирование не дает свободы, все делается в рамках технологий, правил, требований ....

свобода есть только в начале карьеры, когда делаешь для себя и не ограничен правилами(т.к. их не знаешь), а потом просто работа.... 

Просто работа? Просто не повезло

Автор: Dik0n 9.6.2011, 20:54
Цитата(cemick @  9.6.2011,  20:48 Найти цитируемый пост)
Просто работа? Просто не повезло 

cemick, Полностью с тобой согласен smile вот человек занимается своим любимым делом smile 

Автор: Zloxa 9.6.2011, 21:00
Цитата(cemick @  9.6.2011,  17:29 Найти цитируемый пост)
Причем тут искусство и опыт, студент на худграфе рисует картину это не искусство?

Картину можно написать оптимально? Термин "оптимальность" вообще к исскуству применим?
Цитата(cemick @  9.6.2011,  17:29 Найти цитируемый пост)
творчество, направленное таким образом, что оно отражает интересующее не только самого автора, но и других людей

Т.е. отражает субъективизм и рождает рефлексию. И как это применимо к программированию? Критерии оценки результатов деятельности программиста - формальны, а значит они не субъективны, объективны. Открывшаяся форма не должна побуждать пользователя к переживанию, он не должен задумываться над вопросом, что этим хотел сказать автор. Представляемая формой информация должна трактоваться исключительно однозначно. Где тут может быть уместна рефлексия - не понятно  smile 

Автор: Keeper89 9.6.2011, 21:01
Цитата(cemick @  9.6.2011,  16:42 Найти цитируемый пост)
А еще там нельзя перекрыть конструтор, т.е. он не может быть виртуальным. ..овно же ваш дот нет. Вот такой еще вброс))) 


Цитата(Zloxa @  9.6.2011,  16:55 Найти цитируемый пост)
user posted image 

Сижу смеюсь уже 5 минут =)

Автор: Dik0n 9.6.2011, 21:09
Что то мы отвлеклись, скоро мы будем писать под мак, линукс и кодегир нас не подведет... так что мы в минусе полюбому не окажемся.

Автор: Keeper89 9.6.2011, 21:13
Цитата(Dik0n @  9.6.2011,  21:09 Найти цитируемый пост)
Что то мы отвлеклись, скоро мы будем писать под мак, линукс и кодегир нас не подведет... так что мы в минусе полюбому не окажемся.

Думаю что жить в это время не доведется ни мне, ни тебе smile

Там 64-бита все никак не прикрутят.

Автор: Dik0n 9.6.2011, 21:17
Цитата(Keeper89 @  9.6.2011,  21:13 Найти цитируемый пост)
Там 64-бита все никак не прикрутят.

Не надо быть таким писимистом, тестирование идет полным ходом, осталось чуточку потерпеть smile 

Автор: Rohoss 9.6.2011, 21:19
Цитата(Dik0n @  9.6.2011,  21:17 Найти цитируемый пост)
Не надо быть таким писимистом, тестирование идет полным ходом, осталось чуточку потерпеть

Да откуда ты знаешь что там идёт smile доят вас и кормят завтраками

Автор: Keeper89 9.6.2011, 21:21
Rohoss, про доят подмечено верно.


Dik0n, я оптимист, просто жду более-менее законченный продукт, но не думаю что раньше XE3 он появится.

Автор: Rohoss 9.6.2011, 21:21
Цитата(Keeper89 @  9.6.2011,  21:01 Найти цитируемый пост)
Цитата(cemick @  9.6.2011,  16:42 )
А еще там нельзя перекрыть конструтор, т.е. он не может быть виртуальным. ..овно же ваш дот нет. Вот такой еще вброс))) 


Цитата(Zloxa @  9.6.2011,  16:55 )
user posted image 

Сижу смеюсь уже 5 минут =) 

Я вот думаю, если бы делфи поддерживал множественное наследование, это был бы вообще супер аргумент в руках семика  smile 

Автор: Dik0n 9.6.2011, 21:36
Цитата(Rohoss @  9.6.2011,  21:21 Найти цитируемый пост)
Я вот думаю, если бы делфи поддерживал множественное наследование, это был бы вообще супер аргумент в руках семика

Множественное наследование зло, во многих ли проектах оно тебе понадобилось ?
Мне достало слушать, на делфи дрова не напишешь, операционку тоже, будто вы каждый день операционки пишите smile 

Автор: Rohoss 9.6.2011, 21:52
Цитата(Dik0n @  9.6.2011,  21:36 Найти цитируемый пост)
Множественное наследование зло, во многих ли проектах оно тебе понадобилось ?

Вопрос не в том, просто от виртуального конструктора примерно же такой толк как и от множественного наследования.

Добавлено через 38 секунд
Цитата(Dik0n @  9.6.2011,  21:36 Найти цитируемый пост)
Мне достало слушать, на делфи дрова не напишешь, операционку тоже, будто вы каждый день операционки пишите 

Ты же вроде как низкоуровневым программированием собрался заниматься?

Автор: bems 9.6.2011, 22:10
Там что, действительно нет виртуальных конструкторов?!

Автор: Rohoss 9.6.2011, 22:21
Цитата(bems @  9.6.2011,  22:10 Найти цитируемый пост)
Там что, действительно нет виртуальных конструкторов?! 

В C# их нет, но они могут быть в других яп .нета, так как это искусственное ограничение C#.

Автор: bems 9.6.2011, 22:34
И не стесняются же smile

Автор: Dik0n 9.6.2011, 23:03
Цитата(Rohoss @  9.6.2011,  21:52 Найти цитируемый пост)
Ты же вроде как низкоуровневым программированием собрался заниматься?

Не собрался а занимаюсь!!!, и даже на делфи все прекрасно получается, асм вставки есть...

Автор: bems 9.6.2011, 23:07
Dik0n, не нужно писать драйвера на дельфи. Можно, но не нужно.

Автор: Dik0n 9.6.2011, 23:10
Вобщем давайте замутим что нибуть конструктивное, надоело языком чесать  smile

Добавлено через 1 минуту и 46 секунд
Цитата(bems @  9.6.2011,  23:07 Найти цитируемый пост)
Dik0n, не нужно писать драйвера на дельфи. Можно, но не нужно.

Писал и работало не хуже чем на Ц++ просто функции надоело переволить вотъ....

Автор: Rohoss 9.6.2011, 23:17
Похоже в .нете виртуальных конструкторов нет, но некоторые .нет яп за счёт извратов их таки используют http://prismwiki.embarcadero.com/en/Class_References

Автор: bems 9.6.2011, 23:18
ну дельфи призм-то ясно. Короче прогресс дутый, что впрочем и было известно

Автор: Rohoss 9.6.2011, 23:20
Цитата(Dik0n @  9.6.2011,  23:10 Найти цитируемый пост)
Вобщем давайте замутим что нибуть конструктивное, надоело языком чесать  

Ты уже придумал как реализовать http://dl.dropbox.com/u/5353609/Site3DTemplate.html на ВТ?

Автор: Dik0n 10.6.2011, 00:04
Цитата(Rohoss @  9.6.2011,  23:20 Найти цитируемый пост)
Ты уже придумал как реализовать такое на ВТ?

мне предлагает установить какуето фигню не буду! smile 

Автор: Keeper89 10.6.2011, 00:09
Цитата(Rohoss @  9.6.2011,  23:20 Найти цитируемый пост)
Ты уже придумал как реализовать такое на ВТ? 

У меня там вертятся пустые прямоугольники, так и должно быть?

Автор: Rohoss 10.6.2011, 00:18
Цитата(Dik0n @  10.6.2011,  00:04 Найти цитируемый пост)
мне предлагает установить какуето фигню не буду!

не ведись, а то вдруг тебе мелкософт троя впарит  smile 

Цитата(Keeper89 @  10.6.2011,  00:09 Найти цитируемый пост)
У меня там вертятся пустые прямоугольники, так и должно быть?

ну они не пустые, и не прямоуголиники а кубы. На них есть надписи. Нужен плагин для сильверлайта 

Автор: Keeper89 10.6.2011, 00:22
Цитата(Rohoss @  10.6.2011,  00:18 Найти цитируемый пост)
ну они не пустые, и не прямоуголиники а кубы. На них есть надписи. Нужен плагин для сильверлайта  

Да он у меня стоит, но вижу вот такое:
user posted image

Автор: Rohoss 10.6.2011, 00:27
Цитата(Keeper89 @  10.6.2011,  00:22 Найти цитируемый пост)
Да он у меня стоит, но вижу вот такое:

ну да, так и есть. только у тебя кубы не полностью видно, но может это скрин просто такой. интересно само поведение этих кубов, если на них кликнуть. хотя на самом деле это ВПФовский листбокс. представь какая там содержится логика и как всё это реализовать  smile 

Автор: Dik0n 10.6.2011, 00:28
Цитата(Rohoss @  10.6.2011,  00:18 Найти цитируемый пост)
ну они не пустые, и не прямоуголиники а кубы. На них есть надписи. Нужен плагин для сильверлайта

Как все сложно, а в чем фишка, ДиректХ типа рулит для десктоп приложений ? или что там ?

Автор: Keeper89 10.6.2011, 00:31
А, ну все ясно, вижу, в IE все работает, мой Firefox отказался это воспроизводить видимо )

Автор: cemick 10.6.2011, 09:27
Цитата(Zloxa @  9.6.2011,  21:00 Найти цитируемый пост)
Т.е. отражает субъективизм и рождает рефлексию. И как это применимо к программированию? Критерии оценки результатов деятельности программиста - формальны, а значит они не субъективны, объективны. Открывшаяся форма не должна побуждать пользователя к переживанию, он не должен задумываться над вопросом, что этим хотел сказать автор. Представляемая формой информация должна трактоваться исключительно однозначно. Где тут может быть уместна рефлексия - не понятно   

Ну а кто сказал что мы говорим про интерфейсы, да даже там не все так однозначно.  Хороши те картины где не надо долго задумываться, что хотел сказать автор, это относиться что Шишкину что к Ван Гогу. Одного взгляда достаточно что бы прочувствовать момент, понять настроение автора, но это ли является ключевым признаком искусства?  Я бы больше акцентировал на 
Цитата

образное осмысление действительности
 В этом плане процесс решения задачи, перенос идеи в формализованное представление в алгоритм, структуру есть искусство. Тут сложно отрицать что у нас нет свободы, этой свободы у нас часто больше чем у любого художника, иначе бы любая мазня ценилась, а так художник тоже зажат в рамки требований. Есть гение которые выходят за рамки.  Реализация этого формализованного представления возможно уже является инженерией.

Добавлено @ 09:31
Цитата(Rohoss @  9.6.2011,  21:52 Найти цитируемый пост)
Вопрос не в том, просто от виртуального конструктора примерно же такой толк как и от множественного наследования.

Множественное наследование вещь удобная, но вредная и опасная.  Но вот чем же вам не угодил виртуальный конструктор?

Добавлено @ 09:39
Цитата(Rohoss @  10.6.2011,  00:27 Найти цитируемый пост)
ть. хотя на самом деле это ВПФовский листбокс. представь какая там содержится логика и как всё это реализовать    

Высокий уровень абстракции вообще в дот.нете является как его достоянием так и бедой. Никто вообще не отрицает что WPF в принципе как идея клевая, но на практике его преимущества часто не востребованы или даже вредны. У него гибкость только в том, что любой объект может являться контейнером для любого другого объекта, а все эффекты анимация и прочее так же нуждается в программирование. А часто ли в команде разработчиков десктоп WPF приложений работает и дизайнер в бленде? Когда потребуется на практике создать интерфейс с вращающимися кубами, я думаю это будет не самой большой проблемой в Delphi.

Автор: Zloxa 10.6.2011, 09:50
Цитата(cemick @  10.6.2011,  09:27 Найти цитируемый пост)
Хороши те картины где не надо долго задумываться, что хотел сказать автор, это относиться что Шишкину что к Ван Гогу.

Выходит Мона Лиза - не хороша. Ее улыбка  на столько не формальна, что даже не до конца ясно есть ли она, не говоря уже о том, что она означает. 
Цитата(cemick @  10.6.2011,  09:27 Найти цитируемый пост)
 В этом плане процесс решения задачи, перенос идеи в формализованное представление в алгоритм, структуру есть искусство

Еще раз повторю тезис. Десять идеальных программистов, решающих одну идеальную задачу, имеющую одно идеальное решение, должны решить ее одинаково. Любое отклонение от идеального решения - признак не компетентности программиста. О каком исскустве тут может идти речь? В тоже время десять пейзажистов, рисуя пейзаж, в идеале, нарисуют десять разных картин, и каждая будет иметь свое настроение. Да что уж говорить, десять домохозяек, варя борщ по одному рецепту, из одних продуктов сварят десять разных борщей. Получается даже в борще больше простора для творчества и самовыражении, нежели в программировании.

Автор: cemick 10.6.2011, 09:57
Цитата(Zloxa @  10.6.2011,  09:50 Найти цитируемый пост)
Любое отклонение от идеального решения - признак не компетентности программиста.

Идеальных решений не бывает, как и идеальных программистов.  Если бы 10 программистов идеально бы решали  задачи, уверен что уже бы запрограмили бы идеального робота, который всегда бы идеально решал задачу.   [Задумался] А бывают идеальные художники? 

Автор: Zloxa 10.6.2011, 10:12
Цитата(cemick @  10.6.2011,  09:57 Найти цитируемый пост)
Идеальных решений не бывает, как и идеальных программистов. 

Да. И именно по этому овнокод.ру постоянно пополняется самыми высокохудожественными произведениями программистского искусства. Ведь это действительно творческий процесс - делать не как надо, так, как никому нормальному в голову не прийдет, но чтоб, тем не менее, еще и работало. И это тот самый случай, когда произведение несет отпечаток субъекта автора. И этот тот самый случай, когда созерцающий задумается "а что этим хотел сказать автор".

Автор: cemick 10.6.2011, 10:24
Ладно, вернем разговор в прежнее русло)))


Rohoss 
В доказательство предыдущих слов что VS овно, создаем у класса свойство, в геттере организуем, например, бесконечную рекурсию. В коде вызов созданного свойства не делаем. Запускаем дебагер, случайно наводим мышкой на свойство. Получаем обрушение дебагера.  Вообще "Unable step" это моя одна из любимых ошибок в студии. 

Автор: Rohoss 10.6.2011, 10:25
Цитата(cemick @  10.6.2011,  09:27 Найти цитируемый пост)
Но вот чем же вам не угодил виртуальный конструктор?

Я их никогда не использовал, но разве нельзя догадаться про подводные камни? Конструктор существует чтобы инициализировать класс, если вы перекрываете его в наследнике, вам нужно держать в голове реализацию предка. А класс предок должен быть в некотором смысле чёрным ящиком для наследника. В методе это куда ни шло, но на конструктор, как я уже говорил, возлагается инициализация. Вы не согласны что его перекрывать опасно? Да, я понимаю, если над этими двумя классами будет работать один разработчик да ещё и в один период времени, то всё ок, но так бывает далеко не всегда. Какой-то вася перекроет инициализацию вашего виртуального конструктора и где-то это такими боками вылезет. Неужели только я понимаю что виртуальный конструктор - зло? Нет бы, если бы ещё он представлял функционал, который неудобно или невозможно заменить, а нет же. Если вы посмотрите, то даже в с++ их нет. Что то мне подсказывает, что в делфи на уровне машинного кода они имеют такую же извращённую реализацию как в делфи призм на уровне ил.

Цитата(cemick @  10.6.2011,  09:27 Найти цитируемый пост)
Высокий уровень абстракции вообще в дот.нете является как его достоянием так и бедой. Никто вообще не отрицает что WPF в принципе как идея клевая, но на практике его преимущества часто не востребованы или даже вредны. У него гибкость только в том, что любой объект может являться контейнером для любого другого объекта, а все эффекты анимация и прочее так же нуждается в программирование. А часто ли в команде разработчиков десктоп WPF приложений работает и дизайнер в бленде? Когда потребуется на практике создать интерфейс с вращающимися кубами, я думаю это будет не самой большой проблемой в Delphi.

О ВПФ я с вами дискутировать не буду  smile 

Автор: Zloxa 10.6.2011, 10:27
cemick

Код

Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 
Connected as u1
 
SQL> select 1 from dual
  2  union
  3  select 1 from dual order by dbms_random.value
  4  /
 
select 1 from dual
union
select 1 from dual order by dbms_random.value
 
ORA-03113: end-of-file on communication channel
Process ID: 3556
Session ID: 28 Serial number: 13


Значит ли это что оракл - овно?

Автор: Rohoss 10.6.2011, 10:29
Цитата(Zloxa @  10.6.2011,  10:12 Найти цитируемый пост)
Да. И именно по этому овнокод.ру постоянно пополняется самыми высокохудожественными произведениями программистского искусства. Ведь это действительно творческий процесс - делать не как надо, так, как никому нормальному в голову не прийдет, но чтоб, тем не менее, еще и работало. И это тот самый случай, когда произведение несет отпечаток субъекта автора. И этот тот самый случай, когда созерцающий задумается "а что этим хотел сказать автор".

Вот вот  smile 

Автор: Zloxa 10.6.2011, 10:30
Вспомилось вдруг вот вспоминаю какой глючный и тормозной был четвертый делфи.  smile

Добавлено через 24 секунды
Rohoss - посторвун smile 

Автор: Rohoss 10.6.2011, 10:35
Цитата(cemick @  10.6.2011,  10:24 Найти цитируемый пост)
Rohoss 
В доказательство предыдущих слов что VS овно, создаем у класса свойство, в геттере организуем, например, бесконечную рекурсию. В коде вызов созданного свойства не делаем. Запускаем дебагер, случайно наводим мышкой на свойство. Получаем обрушение дебагера.  Вообще "Unable step" это моя одна из любимых ошибок в студии.  

Хз, я не занимаюсь изобретением способов завалить дебагер - это наверное удел искусства  smile

Добавлено через 1 минуту и 24 секунды
Цитата(Zloxa @  10.6.2011,  10:30 Найти цитируемый пост)
Rohoss - посторвун

Ты тоже  smile

Добавлено через 2 минуты и 24 секунды
Вообще наверное надо свалить с винграда хотя бы на недельку, а то дела совсем не идут  smile

Добавлено через 6 минут и 21 секунду
А интересно, как назвать искусством то, когда ты получаешь задание через ТФС, а менеджер даже не поднимет ж0пу чтобы прийти тебе рассказать что ему надо  smile 

Автор: cemick 10.6.2011, 10:48
Цитата(Zloxa @  10.6.2011,  10:27 Найти цитируемый пост)
Значит ли это что оракл - овно? 


Я так понимаю вопрос не требует ответа? Доказательство вы привели сами))

Цитата(Rohoss @  10.6.2011,  10:35 Найти цитируемый пост)
Хз, я не занимаюсь изобретением способов завалить дебагер - это наверное удел искусства  


Не то что бы я специально изобретаю, но бывает так что когда за день получишь 20 раз Unable Step, то это начинает напрягать.


Автор: Akella 10.6.2011, 11:04
Лет 5-6 назад мой товарищ, просидевший на дельфи 14! лет, перешёл на дотнет. За собой потянул ещё 2х своих программеров. Все довольны как слоны! Я тоже думал перейти. Но 5 моих проектов на дельфи я бы не смог перенести на дотнет. При том, что нужно было поддерживать существующих пользователей. Просто не смог бы разорваться, при том что я ещё и сисьадминю  smile. Думаю, что правильно сделал. Дельфи всё равно на месте не стоит, но мне и моим пользователям пока что хватает D2007. Много хороших и интересных компонент есть, которые экономят массу времени.

Я бы на дотнет перешёл бы ради веба. Т.к. чувствую, что основные свои проекты нужно переносить в веб. Почему на дотнет, а не на php? Да всё просто: для дотнета есть такие замечательные вещи, как FastRepors и DevExpress smile

Добавлено через 4 минуты и 22 секунды
И да, я считаю, что Delphi - это действительно RAD!

Автор: Rohoss 10.6.2011, 11:10
Цитата(Akella @  10.6.2011,  11:04 Найти цитируемый пост)
Да всё просто: для дотнета есть такие замечательные вещи, как FastRepors и DevExpress  

От фаст-репорта только положительные ощущения, а вот от DevExpress воротит smile
Веб ещё не плохой в джаве, вроде получше дотнета  smile

Добавлено через 1 минуту и 9 секунд
А пхп имхо не серьёзно, я бы не стал с ним связываться  smile  

Автор: Akella 10.6.2011, 11:17
Цитата(Rohoss @  10.6.2011,  11:10 Найти цитируемый пост)
Веб ещё не плохой в джаве, вроде получше дотнета  smile

но там нет ни фаста, ни девок

Добавлено через 51 секунду
а для дельфи девки очень даже хороши, стабильно, красиво, быстро smile

Автор: Rohoss 10.6.2011, 11:44
Цитата(Akella @  10.6.2011,  11:17 Найти цитируемый пост)
но там нет ни фаста, ни девок

вот уж мне делфисты, ни шага без компонент  smile 

Цитата(Akella @  10.6.2011,  11:17 Найти цитируемый пост)
а для дельфи девки очень даже хороши, стабильно, красиво, быстро

там я их как раз и видел. а для .нета перед переустановкой винды установил посмотреть, после переустановки их уже не ставил. Может там для АСП.НЕТа что то нормальное и есть, но за них платить придётся... Нужно сначала разобраться, стоит ли оно того...

Автор: Rohoss 10.6.2011, 12:27
Ещё по поводу виртуального конструктора, если уж на то пошло, правильно делается таким образом:
Внутри конструктора вызываем виртуальный метод, и если надо то мы перегружаем этот метод. Таким образом, логика инициализации, необходимая всегда для работы класса у нас всегда присутствует, а специальная инициализация определяется отдельно, вот пример
Код

    public class MyClass
    {
        protected int _x = 0;
        protected int _y = 0;

        public MyClass()
        {
            _x = 5;
            Initialize();
        }

        protected virtual void Initialize()
        {
            _y = 10;
        }

        public void Show()
        {
            MessageBox.Show(_x + " " + _y);
        }
    }

    public class MyClass2 : MyClass
    {
        protected override void Initialize()
        {
            _y = 20;
        }

    }


.....................................
            new MyClass().Show();
            new MyClass2().Show();

Вот это правильно  smile

Добавлено через 4 минуты и 9 секунд
А если уж у нас совсем кровь из носа, так хочется заставить разработчика наследников реализовывать логику инициализации, мы можем закрыть конструктор по умолчанию и в доступном конструкторе передавать делегат
Код

    public class MyClassA
    {
        public delegate void InitDelegate();

        private MyClassA()
        {
        }

        public MyClassA(InitDelegate initDelegate)
        {
            initDelegate.Invoke();
        }

    }


Добавлено через 4 минуты и 48 секунд
Так что существование виртуального конструктора в делфи является его бесспорным минусом  smile 

Автор: Zloxa 10.6.2011, 12:48
Цитата(Akella @  10.6.2011,  11:04 Найти цитируемый пост)
Лет 5-6 назад мой товарищ, просидевший на дельфи 14!

забавно, получается товарищ подсел на делфи 19-20 лет назад. А первый резлиз делфи был, емнип в 95м  smile

Добавлено через 2 минуты и 51 секунду
Цитата(Rohoss @  10.6.2011,  12:27 Найти цитируемый пост)
Внутри конструктора вызываем виртуальный метод

Он должен вызываться у предка. Если же предок не подсуетился - како быть?
С делегатом, я так понимаю то же самое?  Вызов делегата должен происходить в конструкторе предка?

Добавлено через 7 минут и 27 секунд
С другой стороны.. что-то я на вскидку не могу припомнить, где это можно использовать. Емнип эта шняга используется в проекте при инициализации формы, но чем вызвана необходимость такого подхода, почему нельзя сделать просто form.creatе, хоть убей припомнить не могу  smile 

Автор: Rohoss 10.6.2011, 12:58
Цитата(Zloxa @  10.6.2011,  12:48 Найти цитируемый пост)
Он должен вызываться у предка. Если же предок не подсуетился - како быть?

никак. нужно проектировать заранее. вот скажи мне пожалуйста, какое ты имеешь право убить базовую реализацию инициализации? Может вам ещё дать возможность убивать приватные методы? Ведь программирование - это не только возможности но и ограничения, если мы будем убивать что попало то получится какая-то каша. А способ, как менять логику конструктора, если есть необходимость я привёл.

Добавлено через 4 минуты и 9 секунд
Цитата(Akella @  10.6.2011,  11:04 Найти цитируемый пост)
Лет 5-6 назад мой товарищ, просидевший на дельфи 14! лет, перешёл на дотнет. За собой потянул ещё 2х своих программеров. Все довольны как слоны! Я тоже думал перейти. Но 5 моих проектов на дельфи я бы не смог перенести на дотнет

А ты когда на них смотришь не появляется желание убить их? Когда то я работал с одним коллегой в делфи, потом мы с ним больше года не виделись, а я за это время перелез на .нет полностью, когда встретил этого человека и когда сказал ему что ушёл на .нет, он посмотрел на меня так, как вроде хотел забить меня на смерть камнями, ну и дальше общение не состоялось  smile 

Автор: Zloxa 10.6.2011, 13:09
Rohoss, ну да.. ты тоже горазд использовать тот самый риторический прием, когда то,что не знаешь как использовать преподносишь как ненужное. И тут я с тобой полностью согласен. 

Друзья, сравнивая различные инструменты надо сравнивать их эффективность решения задач. Когда мы сравниваем две дрели, нам имеет смысл обратить внимание на длину кабеля питания, но если срвнивать дрель и шуруповерт, нелепо утверждать что шуруповерт хуже потому что у него нет кабеля. Так и тут. Важно не столько наличие/отсутствие какогото механизама, а его целевое назначение. Я вот не смог припомнить случая, когда без виртуального конструктора не обойтись. Иначе, я бы обязательно спросил у Рохосса как ту же самую проблему решить срдествами шарпа. Может быть кто нибудь другой сможет нормально сформулировать вопрос? 

Автор: cemick 10.6.2011, 13:15
Rohoss
Ну всегда можно как то обойти проблему, кто бы спорил, но отсутствие виртуального конструктора идет в разрез общей логики.
А вот это
Цитата(Rohoss @  10.6.2011,  12:27 Найти цитируемый пост)
Так что существование виртуального конструктора в делфи является его бесспорным минусом 

вообще ни чем не обоснованное заявление. Всегда использовалось, никогда проблем не вызывало. Я так и не понял чем плох виртуальный конструктор, и чем это отличается от обычного виртуального метода, и там и там можно набедакурить при желание. 
А уж приводить С++ в пример, что там это его нет, дак это вообще  smile 

Автор: Zloxa 10.6.2011, 13:25
Цитата(cemick @  10.6.2011,  13:15 Найти цитируемый пост)
Я так и не понял чем плох виртуальный конструктор, и чем это отличается от обычного виртуального метода, и там и там можно набедакурить при желание.

Не можешь показать на пальцах, где может оказаться полезным создание экзепляра неведомого класса? smile Т.е. случая, котда програмный код абстрагирован от осознания того, какой именно класс он создает.

Добавлено через 34 секунды
В смысле... если я конечно правильно понимаю назначение виртуального констрктора.

Автор: cemick 10.6.2011, 13:30
Цитата(Zloxa @  10.6.2011,  13:25 Найти цитируемый пост)
Не можешь показать на пальцах, где может оказаться полезным создание экзепляра неведомого класса?  Т.е. случая, котда програмный код абстрагирован от осознания того, какой именно класс он создает. 

 Ну скажем такой код
Код

  TAClass = class
  private
     FValue: String;
  public
    constructor Create(value: string); overload; virtual;
  end;

  TBClass = class(TAClass)
  private
     FValue1: String;
     FValue2: String;
  public
    constructor Create(value1:string; value2: string); overload; virtual;
  end;

  TCClass = class(TBClass)
  protected
     Fxz: TObject;
  public
    constructor Create(value: string); overload; override;
  end;

constructor TAClass.Create(value: string);
begin
  FValue := value;
end;

{ TBClass }

constructor TBClass.Create(value1:string; value2: string);
begin
  Create(value1 + value2);
  FValue1 := value1;
  FValue2 := value2;
end;

{ TCClass }

constructor TCClass.Create(value: string);
begin
  inherited Create(value);
  Fxz := TObject.Create;
end;

begin

b := TCClass.Create('áëà-áëà-áëà', 'qwerty');



Автор: Zloxa 10.6.2011, 13:35
cemick, увы, я не понял твоего примера... ((( Во первых он слишком абстрактен, а во вторых я таки делфист а не шарпист. Мне интересна не синтаксическая конструкция, мне интересна причина, по какой это удобно и полезна. Если ты еще не понял, для меня крайняя польза этой фичи - не очевидна. Решая задачи на делфи с 95го по 2007й год, не могу припомнить, чтобы у меня возникала потребность в пдобном. Вот виртуальные деструкторы то - да. Но конструкторы же  smile 

Автор: Akella 10.6.2011, 13:56
Цитата(Zloxa @  10.6.2011,  12:48 Найти цитируемый пост)
Лет 5-6 назад мой товарищ, просидевший на дельфи 14!

забавно, получается товарищ подсел на делфи 19-20 лет назад. А первый резлиз делфи был, емнип в 95м


а паскаль?

Добавлено через 2 минуты и 9 секунд
Rohoss
Цитата(Rohoss @  10.6.2011,  12:58 Найти цитируемый пост)
Когда то я работал с одним коллегой в делфи, потом мы с ним больше года не виделись, а я за это время перелез на .нет полностью, когда встретил этого человека и когда сказал ему что ушёл на .нет, он посмотрел на меня так, как вроде хотел забить меня на смерть камнями, ну и дальше общение не состоялось  smile  

да, с предателями всегда так  smile  шутка

не, я с ними общаюсь нормально, пару лет назад приходил к ним в контору с пивком, но пивко они не пили, потому как были все в программировании  smile  smile , пригласили пивка попить называется  smile 

Автор: Zloxa 10.6.2011, 13:58
ну надо же.. еще не совсем делфи забыл.  smile 

Я так понимаю речь идет о чем то подобном. О возможности создавать экзепляр класса, абстрагируясь от типа класса средствами переменной классового типа. 
Код

program Project1;
{$APPTYPE CONSOLE}
  type a = class
     constructor Create;virtual;
   end;

  type b = class (a)
     constructor Create;
   end;

  type c = class (a)
     constructor Create;override;
   end;

{ a }
constructor a.Create;
begin
  writeln('a.create');
end;
{ b }
constructor b.Create;
begin
  writeln('b.create');
end;
{ c }
constructor c.Create;
begin
  writeln('c.create');
end;

type aclass = class of a;
var
  cls : aclass;
  obj : a;
begin
  cls := a;
  obj := cls.Create; // a.create
  cls := b;
  obj := cls.Create; // a.create, конструтор b.create не переопределен
  cls := c;
  obj := cls.Create; // c.create, конструтор с.create переопределен
  readln;
end.



Эта фишка используется в VCL. Как минимум, при создании формы приложения:
Код

Application.CreateForm(TForm1, Form1);


Я помню были времена, когда я мог ответить на вопрос, почему именно так, почему нельзя было сделать просто Form1.Create. Сейчас я на этот вопрос ответить затруднился бы (((

Добавлено @ 13:59
Цитата(Akella @  10.6.2011,  13:56 Найти цитируемый пост)
а паскаль?


А паскаль это не Делфи. Паскаль и делфи это очень большая разница. 

Автор: Akella 10.6.2011, 14:04
Кстати это человек тоже у нас на форуме был и звали его Balu  smile

Добавлено через 24 секунды
http://forum.vingrad.ru/users/Balu  smile

Добавлено через 2 минуты и 48 секунд
Rohoss, скажи, а на WPF можно написать веб приложение. Например, онлайн программу для риэлторов? Можно ли там использовать фаст и девок?

Добавлено через 7 минут и 38 секунд
Не бейте меня братья-дельфисты, но однажды я даже читал Троелсена  smile мало что понял, т.к. склад ума у мну дельфийский, не смог абстрагивароваться

Автор: cemick 10.6.2011, 14:17
Цитата(Zloxa @  10.6.2011,  13:58 Найти цитируемый пост)
Эта фишка используется в VCL. 

Да!

Добавлено @ 14:20
Цитата(Akella @  10.6.2011,  14:04 Найти цитируемый пост)
Rohoss, скажи, а на WPF можно написать веб приложение. Например, онлайн программу для риэлторов? Можно ли там использовать фаст и девок?

Там будет не совсем WEB, там будет файлик браузером грузиться и запускаться как декстоп приложение. Если про веб, тогда уж SL. Концепция та же, только все "лишнее" обрезано.

Добавлено @ 14:24


Rohoss 

Ну а то что статические классы не могут быть виртуальными? Позор!

Автор: Zloxa 10.6.2011, 14:32
Цитата(cemick @  10.6.2011,  14:17 Найти цитируемый пост)
Цитата(Zloxa @  10.6.2011,  13:58 )
Эта фишка используется в VCL. 

Да!

Ну это я, как бы, - не спрашивал.
Спрашивал я - другое. На другое ответа нет. Коли так, чем вызваны сокрушения остутствием фичи? smile 

Автор: Akella 10.6.2011, 15:05
Цитата(cemick @  10.6.2011,  14:17 Найти цитируемый пост)
Там будет не совсем WEB, там будет файлик браузером грузиться и запускаться как декстоп приложение. Если про веб, тогда уж SL. Концепция та же, только все "лишнее" обрезано.

мну интересует установка доп. компонент, как в delphi, например, FastReports, DevExpress, etc.

Автор: cemick 10.6.2011, 15:07
Цитата(Akella @  10.6.2011,  15:05 Найти цитируемый пост)
ну интересует установка доп. компонент, как в delphi, например, FastReports, DevExpress, etc. 

Все ОК с этим. 
У FR вроде даже есть вебовский редактор шаблонов.

Автор: Akella 10.6.2011, 15:27
Т.е. для сильверлайт можно установить и девок и фаст? smile 

Автор: Zloxa 10.6.2011, 15:43
Цитата(cemick @  10.6.2011,  13:30 Найти цитируемый пост)
 Ну скажем такой код

Понял, спасибо большое. /*не буду акцентироать на том, что радикальное изменения содержимого поста не только напоминает отказ от ранее сказанного, но и еще может оказатья незамеченным для той целевой аудитории, ради которой он пишется.*/
Может быть я уже отупел со временем, но я не сразу понял в чем фишка, и маленький коментарий к коду, с вашей стороны - о том, что, при создании типа С, в конструкторе TBClass.Create(value1,Value2) вызывается конструктор Create(value) класса C а не класса B, как было бы, будь он не виртуален -  не повредила бы ))
 

Автор: bems 10.6.2011, 21:25
Цитата(Rohoss @  10.6.2011,  10:25 Найти цитируемый пост)
если вы перекрываете его в наследнике, вам нужно держать в голове реализацию предка
это нужно не больше, чем с виртуальным методом экземпляра.
Цитата(Rohoss @  10.6.2011,  10:25 Найти цитируемый пост)
Если вы посмотрите, то даже в с++ их нет
И это должно что-то означать? smile
В си++ вообще фигово с объектной моделью. При эксцепшне в конструкторе (например) там сразу вешайся

Цитата(Rohoss @  10.6.2011,  10:25 Найти цитируемый пост)
Что то мне подсказывает, что в делфи на уровне машинного кода они имеют такую же извращённую реализацию как в делфи призм на уровне ил
Принципиальных отличий от реализации для экземпляров нет, но вместо ссылки на экземпляр нужна ссылка на класс. 
Полная аналогия с виртуальными методами объектов, и проблемы тут только у новичков, которые вообще не догнали еще зачем нужны виртуальные методы (любые)

Ну а то что ты считаешь что это не нужно, потому что в дотнете этого нет, так это типичная точка зрения дотнетчика smile

Автор: Akella 12.6.2011, 08:42
Про множественное наследование. А разве его нельзя реализовать через интерфейсы? Я таким не занимался, поэтому только спрашиваю.

Автор: bems 12.6.2011, 09:55
Akella, не совсем. С интерфейсами можно добиться тех же удобств при использовании класса, но не получить всех тех противоречий и неопределенностей.

Автор: Keeper89 12.6.2011, 14:58
Вот еще что. Т.к. в последних версиях много классов слизано с НЕТа, прискорбно отметить, что я вот сижу и читаю справку по ним где бы вы думали - не в справке Embarcadero, а в MSDN. Вот так.

Автор: Akella 13.6.2011, 09:55
Значит можно применить последовательное наследование?
Сначала унаследовать от класса А, а потом от класса В.

Автор: bems 13.6.2011, 13:06
Немного не понял, можно на примере?

Автор: Akella 13.6.2011, 19:11
Наверное нельзя  smile , ступил я

Добавлено через 6 минут и 30 секунд
хотя...
Код

type
  TForm4 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;


type
  TForm5 = class(TForm4)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TForm6 = class(TForm5)
  private
    { Private declarations }
  public
    { Public declarations }
  end;


Теперь TForm6 наследует всё от TForm4 и TForm5. Или это не то?

Автор: bems 13.6.2011, 19:30
Это не множественное. Множественное это TForm6 = class(TForm5, TForm4)
Это не предусмотрено, только реализация интерфейсов

Автор: cemick 13.6.2011, 21:47
Цитата(Keeper89 @  12.6.2011,  14:58 Найти цитируемый пост)
Т.к. в последних версиях много классов слизано с НЕТа, прискорбно отметить, что я вот сижу и читаю справку по ним где бы вы думали - не в справке Embarcadero, а в MSDN. Вот так. 

У MSFT всегда была неплохая справка. Хотя вот тут вполне достаточно информации http://docwiki.embarcadero.com/VCL/en/SysUtils.TStringBuilder, правда они сами отсылают на MSDN.

Автор: k0rvin 14.6.2011, 01:04
Цитата(bems @ 12.6.2011,  09:55)
Akella, не совсем. С интерфейсами можно добиться тех же удобств при использовании класса, но не получить всех тех противоречий и неопределенностей.

о каких противоречиях и неопределенностях речь?

Автор: Akella 14.6.2011, 09:49
Тем не менее получилось так, что TForm6 наследует всё от TForm4 и TForm5. Разве нет? Просто написано по другому  smile 

Автор: Keeper89 14.6.2011, 10:25
Akella, пример, что ты привел, не совсем удачный. Попробуй сделать вот такой: ru.m.wikipedia.org/wiki/Множественное_наследование

Автор: Akella 14.6.2011, 10:45
Какой "вот такой"?

Добавлено через 49 секунд
Ну используйте тогда Class Helpers

Автор: bems 14.6.2011, 10:51
Цитата(Akella @  14.6.2011,  09:49 Найти цитируемый пост)
Тем не менее получилось так, что TForm6 наследует всё от TForm4 и TForm5. Разве нет? 
но при этом TForm5 обязана наследоваться от TForm4
Гибрид ужа и ежа уже не сделать smile

Цитата(k0rvin @  14.6.2011,  01:04 Найти цитируемый пост)
о каких противоречиях и неопределенностях речь? 

Например есть родитель А, потомки B1 и B2 и внучек С унаследованный и от B1 и от B2, и нужно вызвать метод объявленный в А на объекте С. Enjoy ur multiple inheritance 

Да, да, в плюсах можно указать явно какой метод имеется в виду. Но это нужно делать все время при использовании! лютая жесть

Автор: Akella 14.6.2011, 10:55
Цитата(bems @  14.6.2011,  10:51 Найти цитируемый пост)
и нужно вызвать метод объявленный в А на объекте С.


Class Helpers или нет?

Автор: bems 14.6.2011, 10:58
Akella, да речь о языках где есть множественное наследование. В хелперах запрещены поля и виртуальные методы, они почти ничего не могут. 
Просто функция, которая оперирует только членами некоего объекта, но не может быть сделана методом этого класса (например когда класс чужой) гораздо красивше смотрится объявленной в хелпере, тогда её можно вызывать как метод объекта. На большее хелперы не претендуют

Автор: Akella 14.6.2011, 11:02
Мне множественное наследование пока не пригодилось, да и Class Helpers тоже. Наверное я пока не дорос до такого уровня smile программиста.

Автор: Keeper89 14.6.2011, 12:52
Я хелперы использовал, мне пригодилось и  понравилось )

Автор: Keeper89 14.6.2011, 17:56
Rohoss, а что там в шарпе с настройками? Есть какое то общее и красивое решение?

Автор: cemick 14.6.2011, 20:44
С удивлением обнаружил что вот это http://www.auslogics.com/en/software/ похоже написано на Delphi  http://spb.job.ru/seeker/job/detail/default.aspx?jadid=2139075

Автор: Keeper89 14.6.2011, 21:20
Цитата(cemick @  14.6.2011,  20:44 Найти цитируемый пост)
С удивлением обнаружил что вот это http://www.auslogics.com/en/software/ похоже написано на Delphi  http://spb.job.ru/seeker/job/detail/defaul...x?jadid=2139075 

Это фирма так часто имеет вакансии, что их текучка кадров пугает сразу  smile 

Автор: Akella 14.6.2011, 22:41
cemick, а что удивительного?

Автор: cemick 14.6.2011, 22:59
Цитата(Akella @  14.6.2011,  22:41 Найти цитируемый пост)
cemick, а что удивительного? 

Наверное ничего, какими то продуктами давно пользовался, а тут первый раз увидел их вакансию.  Да и не так много приличных Delphi вакансий в Петербурге.  Практически все приличные компании в которые можно напроситься делфи программистом перечисляются на пальцах одной руки. 

Автор: Keeper89 14.6.2011, 23:50
cemick, а что ты понимаешь под приличностью?

Автор: Akella 14.6.2011, 23:51
да, все хотят жабу и дотнет

Автор: k0rvin 15.6.2011, 07:04
Цитата(bems @ 14.6.2011,  10:51)
Например есть родитель А, потомки B1 и B2 и внучек С унаследованный и от B1 и от B2, и нужно вызвать метод объявленный в А на объекте С. Enjoy ur multiple inheritance

так а в чем проблема-то? в C этот метод перекрывается?

Автор: bems 15.6.2011, 10:07
Цитата(k0rvin @  15.6.2011,  07:04 Найти цитируемый пост)
так а в чем проблема-то? в C этот метод перекрывается? 
Он может быть перекрыт и в В1 и в В2

Автор: Rohoss 15.6.2011, 13:05
По поводу виртуального конструктора. Раз вы ему находите применения - это замечательно, однако я бы не хотел чтобы он существовал в C#, потому как язык программирования - это не только набор возможностей, а и набор ограничений. Причём последние не менее важны. И насколько хорош яп - зависит от того, в каком месте возможности, а в каком ограничения. 

Цитата(cemick @  10.6.2011,  14:17 Найти цитируемый пост)
Ну а то что статические классы не могут быть виртуальными? Позор!

Ну а как могут быть виртуальными методы не экземпляра а класса? Где логика? smile 

Вообще, у меня тут не было цели доказывать что .нет круче делфи, так как имхо, тут даже говорить не о чём. Я хотел просто указать на одно из преимуществ .нета (да и наверное и жабы тоже), такое как модульность, которое почему-то все упускают из виду - а это очень важно и позволяет разрабатывать приложения уже другого уровня. Единственный кто высказывался на этом форуме по этому поводу, так это Лазин, царство ему небесное. Вообще, для использования модульности в .нете не обязательно использовать меф, юнити или тому подобные, даже простая ссылка на сборку в вс даёт возможность работать с библиотекой как и с часть своего приложения.

Цитата(Keeper89 @  14.6.2011,  17:56 Найти цитируемый пост)
Rohoss, а что там в шарпе с настройками? Есть какое то общее и красивое решение?

С какими настройками? Ты такое имеешь ввиду? Что то вроде такого
Код

    public class ClassA
    {
        public void Method1()
        {
        }
    }

    public static class ClassB
    {
        public static void Method2_Ext(this ClassA classA)
        {
        }
    }

ClassA classA = new ClassA();
classA.Method2_Ext();

А в в .нет 4.0, с появлением DLR появилось сколько возможностей для подобных издевательств над членами класса, что мало не покажется  smile 

Цитата(Akella @  10.6.2011,  14:04 Найти цитируемый пост)
Rohoss, скажи, а на WPF можно написать веб приложение. Например, онлайн программу для риэлторов? Можно ли там использовать фаст и девок?

Вообще для веба в .нете предполагается сильверлайт. Это облегчённая версия ВПФа - ориентированная на веб. Однако, я бы на твоём месте использовал бы АСП.НЕТ вот по каким причинам:
1. Для сильверлайта нужен плагин, и не каждый юзер его установит, кто-то не захочет, у кого-то мозгов не хватит - а ты потеряешь клиента.
2. Сильверлайт глючный, и сильвелайт это не .нет (то что он разрабатывается на c# in vs ещё не делает его .нетом). Если слой представления на нём создать можно - то бизнес логику я бы не рискнул.
3. Поисковые боты очень плохо работают с СЛ, поэтому раскрутка твоего сайта будет проблематичной.
Что касается АСП.НЕТ то на нём конечно трудно сделать такое же красивое и интерактивное приложение как на СЛ, но зато оно будет работать с любом браузере и в любой ОС (хоть с андроида), на нём свободно можно реализовывать бизнес-логику любого уровня и в нём можно использовать девок. Что касается репортинга, то тут не могу ничего сказать, так как .нете с ним не сталкивался. А вот существуют ли девки для СЛ я не знаю, но я бы их там не использовал.
Так что если хочешь дёшево и сердито - тогда АСП.НЕТ, однако, если хочешь круто и нафуфыренно, можно было бы сделать так:
Делаешь WCF сервис - он как раз и будет содержать логику работы твоего приложения и работать с бд. Дальше - создаёшь сайт на АСП.НЕТ, который использует бизнес логику с WCF сервиса. На сайте делаешь кнопку "Сильверлайт версия". То есть, при желании пользователь сможет использовать сильверлайт версию сайта, которая будет использовать логику с WCF. Так как обработка данных СЛ приложения будет происходить в WCF, СЛ будет использоваться только для взаимодействия с пользователем, а с этим, даже не смотря на свою глючность справится. Кроме того, ты можешь ещё и сделать ВПФ приложение, которое так же будет использовать WCF сервис smile . Таким образом, тебе не придётся разрабатывать бизнес логику в каждом типе приложений, а будешь использовать единожды разработанную. Кроме того, если ты вынесешь бизнес логику на сервис, такую систему будет очень трудно взломать. злоумышленники не будут иметь представления ни о структуре твоей бд, ни о том как устроен процесс работы твоего приложения. Несколько классов для работы приложений сервис выдал и до свидания smile  



Автор: cemick 15.6.2011, 13:27
Цитата(Rohoss @  15.6.2011,  13:05 Найти цитируемый пост)
Ну а как могут быть виртуальными методы не экземпляра а класса? Где логика?

Вообще то VMT принадлежит не объекту а классу, если мне память не изменяет.

Автор: Rohoss 15.6.2011, 13:38
Цитата(Rohoss @  15.6.2011,  13:05 Найти цитируемый пост)
С какими настройками? Ты такое имеешь ввиду? Что то вроде такого

Кстати, ещё очень удобная штука есть, модификатор класса partial, позволяющей классу быть реализованным в нескольких файлах. Практический смысл я нахожу в двух случаях: 1. кодогенераторы. то есть, когда твой класс генерится самой вс или сторонними утилитами. В таком случае кодогенератор при каждой кодогенерации не будет перезаписывать весь класс, а только часть класса, содержащаяся в определённом файле, и твои изменения не будут перезаписанные при каждой кодогенерации. 2. когда нужна своя версия класса для каждой платформы. Например, есть класс для вывода сообщения, расположенный в файле Messager.cs. В таком случае, если я разрабатываю для платформы WPF, мне нужно будет включить в проект файл Messager.WPF.cs, если консольное приложение то  Messager.Console.cs и тд...

Добавлено через 6 минут и 28 секунд
Цитата(cemick @  15.6.2011,  13:27 Найти цитируемый пост)
Вообще то VMT принадлежит не объекту а классу, если мне память не изменяет. 

Скорее всего да, но дело не в этом. Само определение "метод класса" о чём говорит? 

Автор: cemick 15.6.2011, 13:47
Цитата(Rohoss @  15.6.2011,  13:38 Найти цитируемый пост)
Скорее всего да, но дело не в этом. Само определение "метод класса" о чём говорит?  

"Метод класса" говорит что это метод класса   smile  

Автор: Rohoss 15.6.2011, 13:48
в .нете запрещено наследовать статические классы...

Добавлено через 1 минуту и 10 секунд
Цитата(cemick @  15.6.2011,  13:47 Найти цитируемый пост)
"Метод класса" говорит что это метод класса

Именно, класса а не его наследника

Автор: Keeper89 15.6.2011, 15:07
Под настройками я имел ввиду настройки приложения smile  

Автор: Rohoss 15.6.2011, 15:17
Цитата(Keeper89 @  15.6.2011,  15:07 Найти цитируемый пост)
Под настройками я имел ввиду настройки приложения    

Конечно vs и инфраструктура .нет предлагает очень красивое решение, но писать мне тут уже влом  smile , можно почитать в инете http://msdn.microsoft.com/ru-ru/library/0zszyc6e.aspx

Добавлено через 7 минут и 25 секунд
Цитата(Rohoss @  15.6.2011,  15:17 Найти цитируемый пост)
Конечно vs и инфраструктура .нет предлагает очень красивое решение, но писать мне тут уже влом   , можно почитать в инете Параметры приложения 

Это вам не ини-файлы  smile 

Автор: cemick 15.6.2011, 16:32
Цитата(Rohoss @  15.6.2011,  15:17 Найти цитируемый пост)
Это вам не ини-файлы    

Вот это к чему было сказано? Или вы думаете что в делфи все через ini файлы?

Добавлено @ 16:33
Цитата(Rohoss @  15.6.2011,  13:48 Найти цитируемый пост)
Именно, класса а не его наследника 

Сами то поняли что сказали?

Автор: Rohoss 15.6.2011, 17:22
Цитата(cemick @  15.6.2011,  16:32 Найти цитируемый пост)
Вот это к чему было сказано? Или вы думаете что в делфи все через ini файлы?

нет, не думаю. думаю, что в делфи рантайм никуда не годится. и думаю, раз никуда не годится рантайм то и сериализация никуда не годится. а раз никуда не годится сериализация - значит нет красивого способа хранить сложные типы в файлах/потоках. а если нет возможности легко хранить в файлах/потоках сложные типы - то с хранением настроек получим лишнюю головную боль и лишние телодвижения.

Автор: bems 15.6.2011, 19:28
Цитата(Rohoss @  15.6.2011,  13:48 Найти цитируемый пост)
Именно, класса а не его наследника

дотнетчики не слышали что "унаследован значит является"?

Автор: k0rvin 15.6.2011, 19:52
Цитата(bems @ 15.6.2011,  10:07)
Он может быть перекрыт и в В1 и в В2

так а чем тут поможет одиночное наследование (A -> B -> C)?

Автор: bems 16.6.2011, 10:22
в нем такая противоречивая ситуация невозможна в принципе.

Автор: cemick 16.6.2011, 10:34
Цитата(Rohoss @  15.6.2011,  17:22 Найти цитируемый пост)
нет, не думаю. думаю, что в делфи рантайм никуда не годится. и думаю, раз никуда не годится рантайм то и сериализация никуда не годится. 

Что значит никуда не годится рантайм, что под этим подразумеваете? 
А на счет сериализации зря вы так думаете, хотя я в делфи практически не сталкивался с надобностью сериализации, но вроде как если имеем TPersistant и TComponent то проблем нет, плюс есть  DBXJSONReflect или TJvAppXMLFileStorage. Я думаю есть, кто на счет этого может больше сказать. Что касаться .NET, ну да, там более красиво это сделано, возможности атрибутов плюс продуманные готовые интерфейсы делают сериализацию проще и непринужденнее,  но вот со сложными типами тоже можно намучаться(что называется плавали, знаем). Хотя вот даже просто возможность скопировать поток в поток появилась только  в 4 фреймворке.

Автор: k0rvin 16.6.2011, 12:42
Цитата(bems @ 16.6.2011,  10:22)
в нем такая противоречивая ситуация невозможна в принципе.

так, еще раз
Цитата

Например есть родитель А, потомки B1 и B2 и внучек С унаследованный и от B1 и от B2, и нужно вызвать метод объявленный в А на объекте С. Enjoy ur multiple inheritance

как одиночное наследование поможет вызвать метод, объявленный в A?

Автор: bems 16.6.2011, 15:12
k0rvin, или это я плохо объясняю, или не знаю даже...

В классе А объявлен виртуальный метод. Он или публичный, или вызывается из какого-то публичного метода. Он наследуется всеми потомками и может быть вызван как метод потомка - прямо если публичный или косвенно, если нет. Унаследуем от А классы В1 и В2, в каждом из которых метод перекрыт по своему. Можно вызывать B1.Method() или B2.Method() и получить разное поведение. 

При наличии множественного наследования, возможно унаследовать класс С от двух родителей B1 и B2. Поскольку А является предком С, то имея экземпляр С можно вызвать наш метод. Противоречие заключается в том, что не понятно какая реализация должна быть вызвана: из В1 или из В2  

При отсутствии множественного наследования С наследуется или от В1 или от В2, но не от обоих сразу, поэтому противоречия не возникает.

Автор: k0rvin 16.6.2011, 18:02
и компилятор укажет на это противоречие и потребует от программиста явно указать какой из методов должен использоваться в C. так в C++. так в Delphi при реализации классом двух интерфейсов с одинаковыми методами. а в CLOS, например, используется precedence-list, т.е. по-умолчанию в данном случае будет использоваться B1

Автор: cemick 16.6.2011, 20:27
Цитата(k0rvin @  16.6.2011,  18:02 Найти цитируемый пост)
и компилятор укажет на это противоречие и потребует от программиста явно указать какой из методов должен использоваться в C. так в C++. так в Delphi при реализации классом двух интерфейсов с одинаковыми методами. а в CLOS, например, используется precedence-list, т.е. по-умолчанию в данном случае будет использоваться B1 

Из вики я узнал что это называется проблемой ромба)) 
Вообще вот список проблем множественного наследования, из вики:
  • семантическая неопределенность часто совокупно представляется как Проблема ромба.
  • отсутствует возможность явного многократного наследования от одного класса
  • порядок наследования изменяет семантику класса
  • Множественное наследование в языках с конструкторами в стиле C++/Java усиливает проблему наследования конструкторов и последовательностей конструкторов, таким образом создавая проблемы с поддержкой и расширяемостью в этих языках. Объекты в отношениях наследования со значительно отличающимися методами конструирования довольно трудны для реализации в рамках парадигмы последовательности конструкторов.

И правильно в сад его, слишком много неопределенностей вносит

Автор: Keeper89 16.6.2011, 21:27
Тут холивар, а вы теории обсуждаете =)

Автор: k0rvin 16.6.2011, 21:59
Цитата(cemick @ 16.6.2011,  20:27)
Из вики я узнал что это называется проблемой ромба)) 
Вообще вот список проблем множественного наследования, из вики:

  • семантическая неопределенность часто совокупно представляется как Проблема ромба.
  • отсутствует возможность явного многократного наследования от одного класса
  • порядок наследования изменяет семантику класса
  • Множественное наследование в языках с конструкторами в стиле C++/Java усиливает проблему наследования конструкторов и последовательностей конструкторов, таким образом создавая проблемы с поддержкой и расширяемостью в этих языках. Объекты в отношениях наследования со значительно отличающимися методами конструирования довольно трудны для реализации в рамках парадигмы последовательности конструкторов.

И правильно в сад его, слишком много неопределенностей вносит

как хорошо, что CLOS лишена этих проблем =)

Автор: Akella 16.6.2011, 22:58
да нафиг нужно это множественное наследование

Автор: Keeper89 16.6.2011, 23:44
Затем чтобы удобнее делать некоторые вещи, как с интерфейсами в Делфи.

Автор: Akella 19.6.2011, 08:41
а ещё кроме обновлений самой винды, нужно тянуть сотни мегабайт обновлений дотнета, причем для разных версий.

Добавлено через 26 секунд
ну конечно... это уже ведь не забота программиста )))

Автор: Keeper89 19.6.2011, 17:24
Akella, это такой вброс сейчас был? =)
Если есть инет, размер установщика крайне мал (http://www.microsoft.com/downloads/ru-ru/details.aspx?displaylang=ru&FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992), если же обычный - http://www.microsoft.com/downloads/ru-ru/details.aspx?familyid=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=ru.
Я это все к тому, что не так уж и много ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)