Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой язык больше похож на Delphi? 
:(
    Опции темы
LamerTM
Дата 31.7.2009, 14:57 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Вопрос: 

Какой язык больше всего похож на Delphi, но при этом имеет возможность определять типы в модуле в произвольном порядке (типы, ссылающиеся друг на друга), возможность определять в разных модулях классы и типы ссылающиеся друг на друга. Делать все это совершенно произвольно, без ограничений на порядок объявлений.


При этом  нужно чтобы были конкретные от Delphi свойства:

- Визуальное программирование под винду. Чтобы можно было бросить готовую кнопку (listbox, combobox, memo, etc) на форму и писать обработчики.
- ООП со всеми примочками (виртуальные функции, наследование и т.п.). Желательно: чтобы были свойства (properties), но это не критично.
- Компилированная программа должна работать очень быстро. Т.е. язык не должен быть интерпретируемым.
- Ну и вообще как можно больше похожестей на Delphi. Идеал - Delphi с возможностью определять ссылающиеся друг на друга типы в разных модулях. Но я так понимаю, что такого делфи нет.

Спрашиваю потому что пишу на Delphi и столкнулся с тем, что нельзя объявить ссылающиеся друг на друга классы в разных модулях. В связи с этим появилась мысль перейти на другой язык, без подобных ограничений. Ну и конечно если кто-то скажет как это сделать в Delphi, то это будет просто замечательно. smile 
PM MAIL   Вверх
ТоляМБА
Дата 31.7.2009, 15:12 (ссылка) |    (голосов:15) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004




Цитата(LamerTM @  31.7.2009,  17:57 Найти цитируемый пост)
Какой язык больше всего похож на Delphi

Английский!
PM   Вверх
Alexeis
Дата 31.7.2009, 17:05 (ссылка) |    (голосов:9) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




  Вопрос похож на - "Миня вчера прижало дверьми автобуса, посоветуйте автобус без дверей" smile .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LamerTM
Дата 31.7.2009, 17:29 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Alexeis @ 31.7.2009,  17:05)
Вопрос похож на - "Миня вчера прижало дверьми автобуса, посоветуйте автобус без дверей" smile .

Абсолютно верно. Именно в этом вопрос и состоит. Я не мазохист и наслаждений от прижатия дверями не испытываю.
PM MAIL   Вверх
Alexeis
Дата 31.7.2009, 17:36 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Цитата(LamerTM @  31.7.2009,  16:29 Найти цитируемый пост)
Именно в этом вопрос и состоит. Я не мазохист и наслаждений от прижатия дверями не испытываю. 

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LamerTM
Дата 31.7.2009, 17:52 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Alexeis @ 31.7.2009,  17:36)
Цитата(LamerTM @  31.7.2009,  16:29 Найти цитируемый пост)
Именно в этом вопрос и состоит. Я не мазохист и наслаждений от прижатия дверями не испытываю. 

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

Мнение кучи людей для меня не является критерием истины.
Именно свою маленькую проблему я и хочу решить. Глобальные меня не волнуют. Я же не собираюсь заставлять всех ездить в автобусах без дверей.
PM MAIL   Вверх
Lazin
Дата 31.7.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re




Delphi это lol smile
PM MAIL Skype GTalk   Вверх
LamerTM
Дата 31.7.2009, 18:01 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Lazin @ 31.7.2009,  17:55)
Delphi это lol smile

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

Сейчас тестанул C#. Можно классы в разных модулях объявить, как мне нужно. Но... время работы компилированного кода в 2 раза ниже, чем в Delphi (простой цикл выполняется в 2 раза дольше). Жесть.
PM MAIL   Вверх
wester
Дата 31.7.2009, 19:25 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




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

а чем С_два_креста не по нраву ? 


PS дельфи это и правда lol smile
PM MAIL   Вверх
Alexeis
Дата 31.7.2009, 19:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Lazin, в С++ заголовки могут ссылаться друг на друга циклически?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
LamerTM
Дата 31.7.2009, 20:02 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(wester @ 31.7.2009,  19:25)
LamerTM
давно пришел к утверждению что скорость работы программы зависит от кривизны рук кодера вне зависимости от среды... 

а чем С_два_креста не по нраву ? 


PS дельфи это и правда lol smile

Написал код в C#:


Код

        private void button1_Click(object sender, System.EventArgs e)
        {
            DateTime dd=DateTime.Now;
            int i;
            int k=0;
            for(i=0;i<1000000000;i++) k=k+1;
            TimeSpan f=DateTime.Now-dd;


            button1.Text=f.ToString();
            Text =k.ToString();
        }


Я допускаю что руки кривые. Это мой первый код на С# в моей жизни.


И такой же на делфи:

Код

procedure TForm1.Button1Click(Sender: TObject);
var       i, k: Integer;
          dt: TDateTime;
begin
          dt := Now;
          k := 0;
          for i := 0 to 1000000000 do k := k + 1;
          Caption := IntToStr(k);
          Button1.Caption := IntToStr(MilliSecondsBetween(Now, dt));
end;


Время выполнения последнего в 2 раза меньше.

Как написать код (прямыми руками) на C#, чтобы он работал хотя бы сопоставимое время?





PS.
Извиняюсь, вы имели ввиду C++ ? 
Просто у меня его нет. И никогда не было. Изучал в универе, но то было так... называлось Borland C++. Короче, как Borland Pascal. Ни окон тебе, ни кнопочек, ни прочей лабуды.
На C++ можно писать приложения как на делфях? Есть какая-нибудь версия C++, чтобы так же просто, без заморочек на интерфейс, писать программы? Ну как Делфи, только вместо паскаля чтобы был С++ (и классы в разных модулях ссылающиеся друг на друга smile  smile  smile )?

Это сообщение отредактировал(а) LamerTM - 31.7.2009, 20:17
PM MAIL   Вверх
mr.Anderson
Дата 31.7.2009, 20:17 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко




Насчет ссылок в классах не знаю, не занимался этим на плюсах, а вообще C++ Builder.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 31.7.2009, 20:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Cheloveck
Дата 31.7.2009, 20:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула




LamerTM, с такими запросами на C++ лучше не обращать внимание. Я бы посоветовал Visual Basic.Net smile


--------------------
user posted image
PM Jabber   Вверх
LamerTM
Дата 31.7.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(diadiavova @ 31.7.2009,  20:21)
LamerTM, В шарпе(точнее в дотнете) вызов метода ToString у структур связан с достаточно затратной операцией боксинга, не думаю, что в дельфях есть что-то подобное. А если так, то эти коды нельзя считать эквивалентными. Попробуй в цикле просто выполнить какую-нибудь матеметическую операцию и присвоить её результат какой-нибудь переменной.

Я неправильно понимаю код? Интересно.

Основное время выполняется строка: for(i=0;i<1000000000;i++) {k=k+1;}.

Если ее закомментить, то время выполнения падает до нуля. Остальные процедуры (ToString, Now, MilliSecondsBetween) выполняются один раз и на результат не влияют (что подтверждается падением времени вычислений до нуля если кроме них ничего нет). Или в С# в цикле неявно вызывается ToString smile ?
PM MAIL   Вверх
diadiavova
Дата 31.7.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




Цитата(LamerTM @  31.7.2009,  21:37 Найти цитируемый пост)
Я неправильно понимаю код?

Извиняюсь, это я невнимательно прочитал. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
wester
Дата 31.7.2009, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




Код

private void button1_Click(object sender, System.EventArgs e)
        {
            DateTime dd=DateTime.Now;
            int i; // можно иннициализировать в цикле (int i = 0;....)
            int k=0; 
            for(i=0;i<1000000000;i++) k=k+1; 
            TimeSpan f=DateTime.Now-dd; // зачем плодить обьекты в куче ?
            button1.Text=f.ToString();  // ужас какая затратная операция , потому что каждый раз она преобразует pbject в тип int
            Text =k.ToString(); // и нельзя это как нибудь сократить 
        }

ну а так в принципе замечаний по коду нет  smile 
PM MAIL   Вверх
LamerTM
Дата 31.7.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(mr.Anderson @ 31.7.2009,  20:17)
а вообще C++ Builder.

Еще слышал про Microsoft Visual C++ (вроде так). Это не то? Там какая-то принципиальная разница есть?
PM MAIL   Вверх
mr.Anderson
Дата 31.7.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко




LamerTM, это совершенно разные вещи. Builder - клон Delphi, с дополнительными багами и другим языком как основой. MS VC++ - вообще другая вещь, я ее видел вплоть до 6-й версии - это бред, никаких визуальных редакторов, разработка в целом чистым WinAPI и MFC, что бред. И она сейчас трансформировалась в MS VS, насколько я в курсе, в которой на C# в том числе пишут. А если хочешь клон Delphi - это C++ Builder. Он, начиная с 2007, идет в комплекте с дельфой (RAD Studio 2007+).


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Cheloveck
Дата 31.7.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула




Цитата(mr.Anderson @  31.7.2009,  23:32 Найти цитируемый пост)
Builder - клон Delphi, с дополнительными багами

+1

Цитата(mr.Anderson @  31.7.2009,  23:32 Найти цитируемый пост)
MS VC++ - вообще другая вещь, я ее видел вплоть до 6-й версии - это бред, никаких визуальных редакторов, разработка в целом чистым WinAPI и MFC, что бред.

Эмм... вообще-то в студии есть редактор диалгов визуальный. Можно интегрировать Qt вместе с его редактором форм. MFC и WinAPI далеко не обязательно, я в последнее время пишу на STL + boost, и только графику на чём-то другом.

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



--------------------
user posted image
PM Jabber   Вверх
Alexeis
Дата 1.8.2009, 10:23 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




  Ребята ну глупость же менять язык только потому что невозможны циклические ссылки в заголовках.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
wester
Дата 1.8.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




LamerTM
потестил код , а разве две секунды это много ?


PM MAIL   Вверх
LamerTM
Дата 1.8.2009, 12:12 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Alexeis @ 1.8.2009,  10:23)
Ребята ну глупость же менять язык только потому что невозможны циклические ссылки в заголовках.

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

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

Добавлено @ 12:18
Цитата(wester @ 1.8.2009,  10:37)
LamerTM
потестил код , а разве две секунды это много ?

Не 2 секунды, а в 2 раза медленее. 10-30% я еще могу простить. 100% - однозначно язык фтопку. Я лучше все буду писать в одном модуле на делфях, чем удобно но тормозно на C#. Такие вот у меня приоритеты. Скорость для меня очень важна. Я очень много вычисляю, вычисления длятся иногда часами. На C# вместо 30 минут код будет выполняться час.

Это сообщение отредактировал(а) LamerTM - 1.8.2009, 12:21
PM MAIL   Вверх
mr.Anderson
Дата 1.8.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко




LamerTM, почитай в сторону unsafe-кода на C#.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 1.8.2009, 16:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград




Цитата(LamerTM @  1.8.2009,  11:12 Найти цитируемый пост)
Я там конечно посмотрю что еще можно сделать. Конечно в крайнем случае я всю программу забью в один модуль на несколько МБ кода. Но это будет последнее что я сделаю на этом языке. Если конечно не обнаружу ошибку в своих логических рассуждениях.

  Да ну зачем? Делается абстрактный класс или интерфейс в общем модуле, потом от него наследуются либо как от главного либо как от второго предка. Это мощный механизм инкапсуляции позволяющий строить максимально гибкие приложения. Посмотри на структуру VCL куча модулей с продуманной структурой и ни где нет необходимости циклического включения. Наоборот даже много классов прячется в Imlementation чтобы сокрыть детали реализации и оставить максимально простой интерфейс.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Alkash
Дата 1.8.2009, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /




Погляди в сторону Delphi Prism.


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
unicuum
  Дата 1.8.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 16.3.2005
Где: Рашка




Цитата(LamerTM @  31.7.2009,  14:57 Найти цитируемый пост)
Какой язык больше всего похож на Delphi

Brainfuck smile


--------------------
user posted image
обычный день на винграде
PM   Вверх
diadiavova
Дата 2.8.2009, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




Цитата(LamerTM @  1.8.2009,  13:12 Найти цитируемый пост)
Не 2 секунды, а в 2 раза медленее. 10-30% я еще могу простить. 100% - однозначно язык фтопку. Я лучше все буду писать в одном модуле на делфях, чем удобно но тормозно на C#. Такие вот у меня приоритеты. Скорость для меня очень важна. Я очень много вычисляю, вычисления длятся иногда часами. На C# вместо 30 минут код будет выполняться час.

Честно говоря озадачил ты меня своими тестами так, что я сам засел за тестирование. Дельфей у меня нет поэтому написал на C++.
Создал 2 консольных приложения на С++ под Win32 и на шарпе. Сначала результаты были какими-то странными. Ощущение было такое, что на плюсах операции выполняются мгновенно а на шарпе тормозят так, что дождаться результатов просто невозможно. Дело дошло до того, что я написал на плюсах.
Код

void test1()
{
    double l = 0;
    for(int i = 0; i < 1000000000; i++)
    {
        for(int j = 0; j < 1000000000; j++)
        {
            for(int k = 0; k < 1000000000; k++)
            {
                l++;
            }
            l = 0;
        }
    }
    cout<<l;
}

и время выполнения было равно нулю. Понятно, что это "дело рук" компилятора, который просто оптимизировал код.

Второй тест 

Код

void test2()
{
    double l = 0;
    for(int i = 1; i <= 10; i++)
    {
        for(int j = 0; j < 1000000000; j++)
        {
                l++;
        }
        l = l / i;
    }
    cout<<l;
}


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

А вот третий тест
Код

void test3()
{
    double k = 0;
    for(double i = 0; i < 100000000; i++)
    {
        k = k + sin(i);
    }
    cout << k;
}


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

Так что с выводами ты возможно поспешил smile Хотя для того, чтобы судить о чём-то моих тестов тоже недостаточно.

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


Код

// SpeedTest.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <string.h>
#include <math.h>
using namespace std;
void test1()
{
    double l = 0;
    for(int i = 0; i < 1000000000; i++)
    {
        for(int j = 0; j < 1000000000; j++)
        {
            for(int k = 0; k < 1000000000; k++)
            {
                l++;
            }
            l = 0;
        }
    }
    cout<<l;
}

void test2()
{
    double l = 0;
    for(int i = 1; i <= 10; i++)
    {
        for(int j = 0; j < 1000000000; j++)
        {
                l++;
        }
        l = l / i;
    }
    cout<<l;
}


void test3()
{
    double k = 0;
    for(double i = 0; i < 100000000; i++)
    {
        k = k + sin(i);
    }
    cout << k;
}
int _tmain(int argc, _TCHAR* argv[])
{
    int x;
    int k = 0;
    cout << "Win32 speed test \n\r";
    clock_t startTime,endTime;
    startTime = clock();
    //test1();
    //test2();
    test3();
    endTime = clock();
    printf_s("\n\r Used time :    %2.3f seconds\n\r",(double)(endTime - startTime)/CLOCKS_PER_SEC);
    cout<<k;
    cin >> x;
    return 0;
}



Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SpeedTestCLR
{
    class Program
    {
        static int test2()
        {
            double l = 0;
            for (int i = 1; i <= 10; i++)
            {
                for (int j = 0; j < 1000000000; j++)
                {
                    l++;
                }
                l = l / i;
            }
            return 0;
        }

        static void test3()
        {
            double k = 0;
            for (double i = 0; i < 100000000; i++)
            {
                k = k + Math.Sin(i);
            }
        }

        static void Main(string[] args)
        {
            double k = 0;
            Console.WriteLine("CLR speed test");
            var sw = System.Diagnostics.Stopwatch.StartNew();
            //test2();
            test3();
            Console.WriteLine("Used time :    {0} seconds", (double)sw.ElapsedMilliseconds/1000);
            Console.WriteLine(k);
            Console.ReadKey();
        }
    }
}



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Lazin
Дата 2.8.2009, 08:21 (ссылка) |  (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re




тема - lol smile
PM MAIL Skype GTalk   Вверх
LamerTM
Дата 2.8.2009, 15:43 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Alexeis @ 1.8.2009,  16:47)
  Да ну зачем? Делается абстрактный класс или интерфейс в общем модуле, потом от него наследуются либо как от главного либо как от второго предка. Это мощный механизм инкапсуляции позволяющий строить максимально гибкие приложения. Посмотри на структуру VCL куча модулей с продуманной структурой и ни где нет необходимости циклического включения. Наоборот даже много классов прячется в Imlementation чтобы сокрыть детали реализации и оставить максимально простой интерфейс.

Не понял о чем это, но похоже это какое-то извращение. Мне надо было вставить одну ссылку. А тут столько писать. Да еще модули дополнительные. Вот в упор не понимаю зачем они. С точки зрения здравого смысла не понимаю. Хотя с точки зрения компилятора делфи они может быть и необходимы.

"Абстрактный класс", "наследуются", "от предка", хм... так все же классы потомки TObject. Ну я тормоз. Можно определить поле как TObject. А потом обращаться к нему через as. Будет как через ass, но на первое время сойдет. Геморно конечно и неудобно, и даже слегка извращенно, но по крайней мере новых модулей делать не надо и код в кашу смешивать тоже.




diadiavova

Функция Sin сложная и скорее всего написана в обоих языках на асме. Отсюда другие резалты. В том коде что ты привел, бОльшую часть времени будет выполняться функция sin, то есть команды асма (или как она там реализована), а не команды тестируемого языка. Если функция синуса написана на чистом C#, то я сильно удивлюсь.
PM MAIL   Вверх
diadiavova
Дата 2.8.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




Цитата(LamerTM @  2.8.2009,  16:43 Найти цитируемый пост)
Функция Sin сложная и скорее всего написана в обоих языках на асме.

И что с того? На шарпе в релизе этот тест на моём компе показал 223 миллисекунды, а на плюсах - 7,5 ... СЕКУНД (примерно в 35 раз медленнее).
В конечном итоге какая разница что и как реализовано? Если ты пишешь на языке, то используешь те возможности, которые он предоставляет. Тебе нужны вычисления? Пожалуйста - дотнет выполняет их довольно быстро. В каких-то других ситуациях может и тормозит, но зато там масса других вкусностей присутствует, а даром ничего не даётся - за удобство разработки чем-то жертвовать приходится.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LamerTM
Дата 2.8.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(diadiavova @ 2.8.2009,  16:04)
И что с того? На шарпе в релизе этот тест на моём компе показал 223 миллисекунды, а на плюсах - 7,5 ... СЕКУНД (примерно в 35 раз медленнее).
В конечном итоге какая разница что и как реализовано? Если ты пишешь на языке, то используешь те возможности, которые он предоставляет. Тебе нужны вычисления? Пожалуйста - дотнет выполняет их довольно быстро. В каких-то других ситуациях может и тормозит, но зато там масса других вкусностей присутствует, а даром ничего не даётся - за удобство разработки чем-то жертвовать приходится.

Когда нужны функции библиотек языка - это одно. Когда нужен быстрый язык для реализации своих функций - это другое. Я не использую синусы. Я использую только примитивные операции (+-*/) с типами int и double, максимум Round, Trunc и Power.



Купил сегодня Borland Developer Studio 2006. За 200 рублей. Надеюсь оно того стоит. smile 



Цикл на C# [ for(i=0;i<1000000000;i++) k=k+1; ] компилится в это:

inc dword ptr [ebp-0x18]
inc dword ptr [ebp-0x14]
cmp [ebp-0x14],0x3b9aca00
jl 0x.....




Цикл на Delphi7 [for i := 0 to 1000000000 do k := k + 1;] компилится в это:

inc ebx
dec eax
jnz $-04

(Аж слезы навернулись smile )



Цикл на Delphi 2006 :

inc ebx
dec eax
jnz $-04

(то же что Delphi7  smile  smile )



C++Builder (BDS2006)

inc dword ptr [ebp-$38]
inc dword ptr [ebp-$34]
cmp [ebp-$34],$3b9aca00
jl $00401bf9

 smile 



Все это как бы неиллюзорно намекает, что Delphi рвет всех на части. По крайней мере на этом простом цикле. При этом C++Builder каким-то чудесным образом генерит код аналогичный C#, как по самому коду, так и по тормознутости.
200 рублей на ветер. Ну хоть делфю апргейднул, а то была Delphi7.

Цикл и инкремент это еще не все операторы, однако тендеция налицо.
Что-то похоже моя идея найти более крутой язык слегка обламывается. 
PM MAIL   Вверх
wester
Дата 2.8.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




LamerTM
ну и на чем остановились ?))


PS по одному циклу полагать что он обходит C++ с дотнетом как минимум странно
а вообще пишите на асме если так важна скорость , я думаю он удовлетворит ваши потребности

PM MAIL   Вверх
LamerTM
Дата 2.8.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(wester @ 2.8.2009,  17:04)
LamerTM
ну и на чем остановились ?))


PS по одному циклу полагать что он обходит C++ с дотнетом как минимум странно
а вообще пишите на асме если так важна скорость , я думаю он удовлетворит ваши потребности

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

На чем остановился... да вот на том что надо будет думать как жить дальше на делфи, как обходить эти извраты что понаставили его создатели. Не эти бы ограничения, была бы конфетка.
PM MAIL   Вверх
diadiavova
Дата 2.8.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




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

Вот пример, добавь в приведённую программу ещё один тест
Код

void test4()
{
    double k = 0;
    for(double i = 0; i < 100000000; i++)
    {
        k = k*k/i;
    }
    cout<<k;
}


Код

       static void test4()
        {
            double k = 0;
            for (double i = 0; i < 100000000; i++)
            {
                k = k * k / i;
            }
        }


На моём компе плюсы показывают 1,168 секунд, а шарп - 1,068. Не 35 раз, конечно, но всё же. Кстати в дебаге шарп тормозит, а плюсы показывают одинаковые результаты. На дельфях проверить не могу.



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
diadiavova
Дата 2.8.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




В последнем примере ошибку нашёл
Код

void test4()
{
    double k = 0;
    for(double i = 1; i <= 100000000; i++)
    {
        k = k*k/i;
    }
    cout<<k;
}

Код

       static void test4()
        {
            double k = 0;
            for (double i = 1; i <= 100000000; i++)
            {
                k = k * k / i;
            }
        }


Это чтобы на ноль не делить, работает быстрее, но шарп всё равно даёт немного лучшие результаты.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LamerTM
Дата 2.8.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




diadiavova

О, это уже интереснее. C# порвал делфю! 

Код делфи:

Код

procedure TForm1.Button1Click(Sender: TObject);
var       i: Integer;
          k: Double;
          dt: TDateTime;
begin
          dt := Now;
          k := 0;
          for i := 1 to 100000001 do k := k * k / i;
          Caption := FloatToStr(k);
          Button1.Caption := IntToStr(MilliSecondsBetween(Now, dt));
end;


На C#:

Код

private void button1_Click(object sender, System.EventArgs e)
        {
            DateTime dd=DateTime.Now;
            double k = 0;
            for (double i = 1; i < 100000001; i++)
            {                  
                k = k * k / i;
            }
            TimeSpan f=DateTime.Now-dd;


            button1.Text=f.ToString();
            Text =k.ToString();
        }
}



Резалты:
делфи: 1608 мс (запуск экзешника такой же)
С#: в дебагере 1.75, запуск екзешника - 1.14

Да, ты прав, тут надо целое исследование проводить.
PM MAIL   Вверх
wester
Дата 2.8.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




LamerTM
да зачем исследование , просто есть JIT компиляция и непосредственная компиляция на платформу типа C++ и дельфи
PM MAIL   Вверх
diadiavova
Дата 2.8.2009, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




Экзешник надо именно из папки Release запускать.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
LamerTM
Дата 2.8.2009, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(diadiavova @ 2.8.2009,  18:01)
Экзешник надо именно из папки Release запускать.

Папка Release это где?



Я вот тут подумал, что код не эквивалентен. В С# перебирается Double, а на Delphi - Integer. Double там нельзя. Из-за чего там еще одна переменная получается.

Но все равно C# рвет старую делфи. А с D2006 вровень. (у меня C# из BDS2006, если что)

Код

procedure TForm1.Button1Click(Sender: TObject);
var       i, c, cc: Integer;
          k: Double;
          dt: TDateTime;
begin
          dt := Now;
          k := 100;
          c := 0;
          cc := 0;
          for i := 1 to 100000001 do
          begin

            if c = 0 then
            begin
              k := k * i;
              c := 1;
            end else
            begin
              k := k / i;
              c := 0;
            end;
            cc := cc + 1;

          end;
          Caption := FloatToStr(k)+' '+IntToStr(cc);
          Button1.Caption := IntToStr(MilliSecondsBetween(Now, dt));
end;


Код

private void button1_Click(object sender, System.EventArgs e)
        {
            DateTime dd=DateTime.Now;
            double k=100;
            int c=0;
            int cc=0;
            for (int i = 1; i <= 100000001; i++)
            {

                if (c==0) { k = k * i; c=1;} else {k = k / i;c=0;}
                cc = cc+1;
                

            }
            TimeSpan f=DateTime.Now-dd;


            button1.Text=f.ToString();
            Text =k.ToString()+' '+cc.ToString();
        }


Резалты:

Delphi 7 - 1563 ms
D2006 - 1000 ms
C# - 1.031 s
PM MAIL   Вверх
Akella
Дата 2.8.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




Цитата(LamerTM @  2.8.2009,  16:55 Найти цитируемый пост)
Цикл на Delphi7 [for i := 0 to 1000000000 do k := k + 1;] компилится в это:

Я где-то читал, что так лучше:

Код

[for i := 0 to 1000000000 do Ink(k)

PM MAIL   Вверх
LamerTM
Дата 2.8.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(Akella @ 2.8.2009,  19:00)
Я где-то читал, что так лучше:

Код

[for i := 0 to 1000000000 do Ink(k)

Код генерится один и тот же. Да и как там из тех трех асмовских команд можно сделать лучше, мне, например, не понятно.
PM MAIL   Вверх
diadiavova
Дата 2.8.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте




Цитата(LamerTM @  2.8.2009,  19:58 Найти цитируемый пост)
Папка Release это где?

В BDS - не знаю. В VS создаётся два варианта ехешника: один для отладки, другой - как есть, первый запускается не сам по себе, а под контролем дедаггера, естественно на этом производительность падает дальше некуда.
Цитата(LamerTM @  2.8.2009,  19:58 Найти цитируемый пост)
Я вот тут подумал, что код не эквивалентен. В С# перебирается Double, а на Delphi - Integer. Double там нельзя. Из-за чего там еще одна переменная получается.

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

Добавлено через 43 секунды
Цитата(LamerTM @  2.8.2009,  19:58 Найти цитируемый пост)
у меня C# из BDS2006, если что

Думаю - без разницы.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neweraser
Дата 3.8.2009, 15:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008




Цитата(unicuum @  1.8.2009,  23:21 Найти цитируемый пост)
Какой язык больше всего похож на Delphi
Brainfuck 

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


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Lazin
Дата 3.8.2009, 15:27 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re




господа, вы кажется не учитываете то, что программа на C# - управляемая, тоесть, там весь код - ненативный, и этот код работает быстрее того, что создает компилятор delphi, что говорит о том, что компилятор delphi - очень плохо оптимизирует код
а BDS2006 видимо уже тоже создает .NET приложение, поэтому результат так похож на C#

Добавлено через 1 минуту и 32 секунды
это какбэ намекает нам на то, что Delphi, это lol smile

Это сообщение отредактировал(а) Lazin - 3.8.2009, 15:27
PM MAIL Skype GTalk   Вверх
LamerTM
Дата 11.9.2009, 09:56 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Сегодня выяснилось что работа с Clipboard в C# в 3-5 раз медленнее чем в Delphi. Интересно, где еще в C# такие тормоза. Лучше бы знать это сразу, а не после того как мегабайт исходников напишу.
PM MAIL   Вверх
Lazin
Дата 11.9.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re




Цитата(LamerTM @  11.9.2009,  09:56 Найти цитируемый пост)
а не после того как мегабайт исходников напишу
1Мб исходников?
допустим ты нажимаешь клавишу 1 раз в секунду, тогда, что-бы написать 1Мб исходников, тебе потребуется более 12 часов непрерывной работы smile
PM MAIL Skype GTalk   Вверх
NightmareZ
Дата 12.9.2009, 01:17 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006




Ааааа!!!! Тема доставляет.

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

Жгите дальше, я подписался.


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
Rohoss
Дата 12.9.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix




Среди ИТ-шников ооочень не редки случаи фанатизма. Но в некоторых он достигает умопомрачительных высот  smile 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
RockClimber
Дата 13.9.2009, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре




Цитата(LamerTM @  31.7.2009,  18:01 Найти цитируемый пост)
Умные делфисты предлагают "продумать структуру". В переводе на русский: свалить весь код в один модуль.

Вот если честно, не очень верится, что умные делфисты советовали свалить весь код в один модуль (вот если не секрет, конечно, можно ссылку, где это советовали?). Если же "свалить все в один модуль" - это единственное, что приходит в голову автору, то могу только поддержать вариант "прекратить развитие программы".
Кстати, циклические ссылки в Delphi делать можно. Модуль 1 ссылается на модуль 2 в разделе interface, а модуль 2 на модуль 1 - в разделе implementation. Этакая "получиклическая" ссылка. Точно не помню, но вроде должно работать.
Есть еще visual basic, там все модули друг друга видят одновременно, и более того, их друг от друга скрыть просто нельзя (максимум, сделать приватные методы и переменные).

Лирическое отступление:
Когда Ахматова показала свои первые стихи мужу, тот посоветовал ей заняться танцами. Однако она своего добилась и получила признание вовсе не в балете. Автор топика пока находится на стадии таких вот "первых стихов", имхо...

Добавлено через 4 минуты и 8 секунд
Цитата(LamerTM @  2.8.2009,  16:55 Найти цитируемый пост)
Купил сегодня Borland Developer Studio 2006. За 200 рублей. Надеюсь оно того стоит.

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

Добавлено через 6 минут и 16 секунд
Ах да, проблема должна быть сформулирована не "как сделать-таки циклическую ссылку" а "какая еще структура данных может решить мою задачу".


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
LamerTM
Дата 13.9.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(RockClimber @  13.9.2009,  00:24 Найти цитируемый пост)
Вот если честно, не очень верится, что умные делфисты советовали свалить весь код в один модуль (вот если не секрет, конечно, можно ссылку, где это советовали?).

http://programmersforum.ru/showthread.php?p=303360
http://www.aspfree.com/c/a/.NET/The-Delphi...guage-Part-2/3/

Цитата(RockClimber @  13.9.2009,  00:24 Найти цитируемый пост)
Если же "свалить все в один модуль" - это единственное, что приходит в голову автору, то могу только поддержать вариант "прекратить развитие программы".

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

Цитата(RockClimber @  13.9.2009,  00:24 Найти цитируемый пост)
Кстати, циклические ссылки в Delphi делать можно. Модуль 1 ссылается на модуль 2 в разделе interface, а модуль 2 на модуль 1 - в разделе implementation. Этакая "получиклическая" ссылка. Точно не помню, но вроде должно работать.

Не будет работать. Классы имеют ссылки друг на друга в своем объявлении, которое в интерфейсной части. Для таких вещей в делфи придуманы предварительные объявления классов. Но они работают только внутри одного модуля. А для классов в разных модулях такое не придумали.


Цитата(RockClimber @  13.9.2009,  00:24 Найти цитируемый пост)
Ах да, проблема должна быть сформулирована не "как сделать-таки циклическую ссылку" а "какая еще структура данных может решить мою задачу".

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


Цитата(RockClimber @  13.9.2009,  00:24 Найти цитируемый пост)
Есть еще visual basic, там все модули друг друга видят одновременно, и более того, их друг от друга скрыть просто нельзя (максимум, сделать приватные методы и переменные).

Я на C# остановился. Почти портировал одну свою небольшую программку. Приятный язык конечно. Только клипбоард что-то тормозит. Думаю как его можно ускорить.
PM MAIL   Вверх
NightmareZ
Дата 13.9.2009, 13:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006




Цитата(LamerTM @  13.9.2009,  08:44 Найти цитируемый пост)
Программу я еще несколько месяцев назад решил переписать всю заново, с нуля. В любом случае буду это делать. Вопрос был только в том, на каком это будет языке.


Что за программа? Мне для себя, поржать.


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
Artemon
Дата 13.9.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск




LamerTM, это ваш код ?

Код

define("_WINDOWS_",file_exists("c:\autoexec.bat") ? TRUE : FALSE);



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
RockClimber
Дата 13.9.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре




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


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
LamerTM
Дата 13.9.2009, 15:56 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(RockClimber @ 13.9.2009,  15:42)
LamerTM, по приведенным выше ссылкам только вопросы про циклические ссылки и никаких попыток объяснить, зачем они нужны.

А какая разница зачем они нужны. Есть задача сделать циклические ссылки. А для чего - это к вопросу не относится.
PM MAIL   Вверх
NightmareZ
Дата 13.9.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006




Цитата(LamerTM @  13.9.2009,  15:56 Найти цитируемый пост)
А какая разница зачем они нужны.


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


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
LamerTM
Дата 13.9.2009, 17:26 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




Цитата(NightmareZ @ 13.9.2009,  16:52)
Разница большая. Есть подозрение, что ты жутко тупишь. Ибо я за семь лет программирования самых разных задач на самых разнообразных языках ни разу не встречал необходимости создать "циклические ссылки".

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


PS
В 23 года 7 лет программирования ?  smile Это с 16 лет что-ли? smile Я себе таким макаром могу и побольше срок написать. Мне 27, я пишу с 12 лет. У меня тогда стаж 15 лет. smile  На самых разных языках и компах. Мечтал стать программистом когда-то. Но это всё в прошлом. Таки меня потянуло на воспоминания. smile
PM MAIL   Вверх
NightmareZ
Дата 13.9.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006




Цитата(LamerTM @  13.9.2009,  17:26 Найти цитируемый пост)
Ну если у тебя были задачи только из университета, то конечно.Впрочем, я уже понял что у крутых программеров, которые не тупят, ничего более сложного, чем кидать на форму компоненты, не было.


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

FlowchartBuilder - редактор диаграмм.
Применяемые средства: C#, VB.NET, F#.

user posted image  user posted image


Bulldozer - редактор карт высот.
Применяемые средства: C#.

user posted image


MakarovPhysics2 - комплекс физических программ (версия 2).
Применяемые средства: изначально писал на Delphi, но сейчас перевёл разработку на C#.

user posted image  user posted image

Можешь глянуть ещё моё портфолио на фриланс.ру:  http://freelance.ru/users/NightmareZ

Цитата(LamerTM @  13.9.2009,  17:26 Найти цитируемый пост)
В 23 года 7 лет программирования ?

Представляешь, да, я с 16 лет работал программистом.

Цитата(LamerTM @  13.9.2009,  17:26 Найти цитируемый пост)
Я себе таким макаром могу и побольше срок написать. Мне 27, я пишу с 12 лет. У меня тогда стаж 15 лет.

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


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
LamerTM
Дата 13.9.2009, 20:33 (ссылка)   | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 11.3.2006




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

Цитата(NightmareZ @  13.9.2009,  19:49 Найти цитируемый пост)
ты же в это время онанировал на Бритни Спирс.

Безосновательный переход на личности. Ты что видел как я онанировал на Бритни Спирс? Нет. Значит выдумал. Может ты и всё остальное выдумал (про коммерческие проекты свои)? smile И к чему эти оскорбления? Я тебя оскорблял? Детсад.

Ну я надеюсь ты хотя бы поржал, а то ведь подписывался? smile 
PM MAIL   Вверх
Lazin
Дата 13.9.2009, 20:47 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re




а у меня 22 сантиметра, losers smile
PM MAIL Skype GTalk   Вверх
RockClimber
Дата 13.9.2009, 20:53 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре




Дальше говорить бесполезно, сдаюсь.
Я пацтолом.
 smile 


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
Akella
Дата 14.9.2009, 10:22 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант




smile
PM MAIL   Вверх
Shaggie
Дата 14.9.2009, 11:26 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space




Цитата(LamerTM @  13.9.2009,  20:33 Найти цитируемый пост)
Я считаю программирование простым занятием, тут нечем выпендриваться.

Тогда понятно, отчего такие вопросы появляются. И про циклические ссылающиеся классы, и про наиболее дельфеобразные языки.

Цитата(LamerTM @  2.8.2009,  15:43 Найти цитируемый пост)
Не понял о чем это, но похоже это какое-то извращение. Мне надо было вставить одну ссылку. А тут столько писать. Да еще модули дополнительные. Вот в упор не понимаю зачем они. С точки зрения здравого смысла не понимаю. Хотя с точки зрения компилятора делфи они может быть и необходимы.

"Абстрактный класс", "наследуются", "от предка", хм... так все же классы потомки TObject. Ну я тормоз. Можно определить поле как TObject. А потом обращаться к нему через as. Будет как через ass, но на первое время сойдет. Геморно конечно и неудобно, и даже слегка извращенно, но по крайней мере новых модулей делать не надо и код в кашу смешивать тоже.

Ну конечно, что нет ничего проще и тупее программирования. Тут и спорить не о чем.

Цитата(LamerTM @  31.7.2009,  18:01 Найти цитируемый пост)
Умные делфисты предлагают "продумать структуру". В переводе на русский: свалить весь код в один модуль.

А вы у них спросили перевод на русский, или он сам собой придумался? Предложение-то вовсе не лишено смысла. Alexeis уже посоветовал решение с продуманной архитектурой, поразмысли над ним. Это лучше, чем флудотроллинг разводить.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
ConstantinXXX
Дата 20.9.2009, 21:31 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)




Кто считает что Делфи лол, тот просто не умеет кодить, это типа если сказать что китайский лучше чем английский. Выразить свои эмоции можно как на китайском так и на английском, проблемма может заключаться только в недостаточном знание одного из языков. Так и тут. 
А как вам такая идея, нет универсального языка! ;) Кодер не говорит я умею юзать C++ или Делфи, он говорит а на каком языке надо? ;)

Если скорость работы проги не зависит от рук, то:
Цитата

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

заюзай асм. smile

Если вы говорите что делфи это лол, то как вам Бейсик? ;)

Кому интересно почитайте вот это: http://orencode.info/forum/showthread.php?t=2458
думаю мнение о том что с++ круче делфи, а делфи круче бейсика у вас пропадет. ;)


Это сообщение отредактировал(а) ConstantinXXX - 20.9.2009, 21:33
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
wester
Дата 20.9.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




ConstantinXXX
про японский язык и эмоции.... если оба собеседника знают английский зачем нужен китайский ?))

и кодер вообще чаще всего молчит , так как чаще всего говорят что надо и как , а как это будет РЕАЛЬНО реализоваться заказчику очень часто бывает все равно , главное что бы работало 

pureBasic это вообще какой то страх божий, по сравнению с ним любой BrainFuck кажется намного проще 
PM MAIL   Вверх
ConstantinXXX
Дата 20.9.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)




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

А насчет пуребейсика чет недопонял, хочешь сказать что вот это: http://orencode.info/forum/showthread.php?t=1076

лучше чем pureBasic  smile 
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
wester
Дата 21.9.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




ConstantinXXX,
угу, именно так 
после pureBasic , человек с нулевым опытом программирования вообще не поймет , что такое утечки памяти и зачем нужны всякие классы и методы  
это так сказать кузница всяких ###-кодеров, которые вместо for будут цепочки goto и прочие перлы
BrainFuck хотя бы показывает что есть ячейки памяти и как с ними работать 
PM MAIL   Вверх
ConstantinXXX
Дата 21.9.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)




wester, а зачем новичку это? smile
Думаю у начинающих и так проблем будет докучи, и без всяких утечек памяти и т.п. ;)
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
DeadLine
Дата 21.9.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мыслитель
**


Профиль
Группа: Завсегдатай
Сообщений: 736
Регистрация: 16.2.2006
Где: Готем




Повторюсь с началом темы,но английский
PM   Вверх
wester
Дата 21.9.2009, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




ConstantinXXX
начинающему до поры незачем , но такие поделки как pureBasic , портят весь будущий стиль написания программ 
PM MAIL   Вверх
ConstantinXXX
Дата 21.9.2009, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)




wester, да чем же pureBasic вам не нравиться? =)
Я тоже думал что бейсик это фигня, но после вот этих статей:

http://orencode.info/forum/showthread.php?t=2458
http://orencode.info/forum/showthread.php?t=2528
http://orencode.info/forum/showthread.php?t=2493
http://orencode.info/forum/showthread.php?t=2461

сменил свое мнение, если бы было свободное время начал бы юзать его (для саморазвития). ;)
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
wester
Дата 21.9.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




ConstantinXXX
таки не увидел ничего выдающегося , скажи ради чего нужно знать основы pureBasic? 

 читал листинги и думал что с таким диалектом семейство basic-подобных языков очень сильно отупело и застопорилось
PM MAIL   Вверх
ConstantinXXX
Дата 21.9.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 27.5.2006
Где: U.S.A. :-)




wester, я просто показал альтернативу. smile
Я лично начинал программирование с VB.net. Потом самостоятельно перебрался на делфи, а потом понеслось, php, асм, html smile и т.д. 
Так что не надо говорить что например делфи хуже чем с++ и т.п., smile
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info
PM MAIL WWW   Вверх
wester
Дата 21.9.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009




ConstantinXXX
сам начинал с pascal , еще со школьной скамьи , сейчас крепко засел за C#))

во многих аспектах delphi конечно хуже.... хотя скорее это во мне говорит отвращение ко всем паскалеподобным языкам))
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.3021 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.