На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++

Страницы: (117) « Первая ... 3 4 [5] 6 7 ...  116 117  ( Перейти к последнему сообщению )  
> Delphi vs C++ , Часть 1
    Цитата Flex Ferrum @
    Ну так ведь это - не первая такая тема. :)

    Какое это имеет отношение к данной теме? Предлагаю вести обсуждение в рамках данной темы. Можем бенчмарки провести, я очень даже за.
      Цитата Smike @
      Можем бенчмарки провести, я очень даже за.

      Бенчмарки чего? Предлагай.

      Добавлено
      Кстати, это предложение может иметь интересное продолжение. Подбираем бенчмарки. Проводим их. После чего выкладываем в нашу wiki и даем линк с главной страницы. В конце концов, программисты мы, али нет? :)
        Можно попробовать провести бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent. В принципе реализуемы такие связки:
        Delphi + OpenGLComponent
        Builder + OpenGLComponent
        VC++ + Glut
          Кстати, был один "бенчмарк". Где-то в алгоритмах вроде различные реализации умножения матриц сравнивали. Были реализации на и на Делфи, и на Сях.
            Цитата Мяут
            бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent

            ага.. и по лесу в танке катаемся..
            вот семпл из MS-ишной справки по OpenGL, портированый (хотя точнее сказать скопипасшеный, с самыми минимальными правками) на дельфу, еще хрен знает когда.

            ExpandedWrap disabled
              program accnot;
              uses opengl, glaux;
              var
                 mat_ambient   : array [1..4] of GLfloat = ( 1.0, 1.0, 1.0, 1.0 );
                 mat_specular  : array [1..4] of GLfloat = ( 1.0, 1.0, 1.0, 1.0 );
                 light_position: array [1..4] of GLfloat = ( 0.0, 0.0, 10.0, 1.0 );
                 lm_ambient    : array [1..4] of GLfloat = ( 0.2, 0.2, 0.2, 1.0 );
              procedure myinit;
              begin
                  glMaterialfv(GL_FRONT, GL_AMBIENT, @mat_ambient);
                  glMaterialfv(GL_FRONT, GL_SPECULAR, @mat_specular);
                  glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
                  glLightfv(GL_LIGHT0, GL_POSITION, @light_position);
                  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @lm_ambient);
                  
                  glEnable(GL_LIGHTING);
                  glEnable(GL_LIGHT0);
                  glDepthFunc(GL_LESS);
                  glEnable(GL_DEPTH_TEST);
              end;
               
              var
                  torus_diffuse : array [1..4] of GLfloat = ( 0.7, 0.7, 0.0, 1.0 );
                  cube_diffuse  : array [1..4] of GLfloat = ( 0.0, 0.7, 0.7, 1.0 );
                  sphere_diffuse: array [1..4] of GLfloat = ( 0.7, 0.0, 0.7, 1.0 );
                  octa_diffuse  : array [1..4] of GLfloat = ( 0.7, 0.4, 0.4, 1.0 );
               
              procedure display;stdcall;
              var i:integer;
              begin
                  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
                  glShadeModel (GL_FLAT);
                  glPushMatrix ();
                  glRotatef (30.0, 1.0, 0.0, 0.0);
                  glPushMatrix ();
                  glTranslatef (-0.80, 0.35, 0.0);
                  glRotatef (100.0, 1.0, 0.0, 0.0);
                  glMaterialfv(GL_FRONT, GL_DIFFUSE, @torus_diffuse);
                  auxSolidTorus (0.275, 0.85);
                  glPopMatrix ();
                  glPushMatrix ();
                  glTranslatef (-0.75, -0.50, 0.0);
                  glRotatef (45.0, 0.0, 0.0, 1.0);
                  glRotatef (45.0, 1.0, 0.0, 0.0);
                  glMaterialfv(GL_FRONT, GL_DIFFUSE, @cube_diffuse);
                  auxSolidCube (1.5);
                  glPopMatrix ();
                  glPushMatrix ();
                  glTranslatef (0.75, 0.60, 0.0);
                  glRotatef (30.0, 1.0, 0.0, 0.0);
                  glMaterialfv(GL_FRONT, GL_DIFFUSE, @sphere_diffuse);
                  auxSolidSphere (1.0);
                  glPopMatrix ();
                  glPushMatrix ();
                  glTranslatef (0.70, -0.90, 0.25);
                  glMaterialfv(GL_FRONT, GL_DIFFUSE, @octa_diffuse);
                  auxSolidOctahedron (1.0);
                  glPopMatrix ();
                  glPopMatrix ();
                  glFlush();
              end;
               
              procedure myReshape( w,h :GLsizei);stdcall;
              begin
                  if h = 0 then h := 1;
                  glViewport(0, 0, w, h);
                  glMatrixMode(GL_PROJECTION);
                  glLoadIdentity();
                  if w <= h then
                      glOrtho (-2.25, 2.25, -2.25*h/w, 2.25*h/w, -10.0, 10.0)
                  else
                      glOrtho (-2.25*w/h, 2.25*w/h, -2.25, 2.25, -10.0, 10.0);
                  glMatrixMode(GL_MODELVIEW);
               
              end;
               
              (*  Main Loop
               *  Open window with initial window size, title bar,
               *  RGBA display mode, and handle input events.
               *)
              {$R DELPHI.RES}
              begin
                  auxInitDisplayMode (AUX_SINGLE or AUX_RGB
                          or AUX_ACCUM or AUX_DEPTH16);
                  auxInitPosition (0, 0, 250, 250);
                  auxInitWindow ('Auxillary 3-D Models');
                  myinit();
                  auxReshapeFunc (@myReshape);
                  auxMainLoop(@display);
              end.

            И где здесь соревноваться, в сплошных вызовах в либы чтоли? Можешь поверить она одинаковая... А так, на VCL формах, помниться, OpenGL весьма и весьма лагало... Без форм же сей семпл 8кб весит. Круто...

            Цитата Nich
            Где-то в алгоритмах вроде различные реализации умножения матриц сравнивали. Были реализации на и на Делфи, и на Сях.

            О, да! эти SSE2 вставки на ASM'e надо было видеть..
              Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке.
                Цитата Stratocoder @
                Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке.

                Не наступай на больную мозоль. :) Generic-коллекции различного рода в дельфях, я думаю, не появятся никогда. :)
                  Цитата Stratocoder @
                  Работа со структурами данных, которые чуть более хитрые чем массивы, на Делфи вызывает ощущения, что этот язык как слон в посудной лавке.

                  Например?
                    Цитата wind @
                    Например?

                    Думаю, имеются ввиду всяческие списки, деревья, очереди, стеки, ассоциативные массивы и проч. проч. проч.
                      Цитата Flex Ferrum @
                      Думаю, имеются ввиду всяческие списки, деревья, очереди, стеки, ассоциативные массивы и проч. проч. проч.

                      Конечно, я вижу, что с самого начала начались сравнения стандартных и прочих библиотек, но по-моему, всё это не имеет никакого отношения к языку. Кому надо коллекций - напишет и сам, тем более что трудов-то там не так уж и много потребуется.
                        Цитата wind @
                        Конечно, я вижу, что с самого начала начались сравнения стандартных и прочих библиотек, но по-моему, всё это не имеет никакого отношения к языку.

                        Ну, это одно из направлений сравнения. Другое я тоже привел. Можно ли в дельфях создавать делегаты наподобие boost::bind, т. е. когда программист полностью контролирует - что и как должно передаваться в вызываемый делегатом метод?

                        ЗЫ: по личным ощущениям, после boost::bind все системы с жесткой привязкой делегатов к сигнатурам методов (__closure-методы в билдере, делегаты в шарпе, делегаты в делфях, технология сигналов/слотов в Qt) кажутся очень ограниченными в возможностях.
                          Цитата wind @
                          Кому надо коллекций - напишет и сам, тем более что трудов-то там не так уж и много потребуется.

                          А в дельфи можно написать коллекцию, сравнимую с C++'ным map? или vector? Вот простые примеры использования:
                          ExpandedWrap disabled
                            vector<int> v1 = vector<int>(istream_iterator<int>(input_file),istream_iterator<int>());//тут в одну строчку мы считали содержимое файла в вектор
                            sort(v1.begin(),v1.end()); //тут отсортировали, опять же в одну строчку
                            copy(v1.begin(),v1.end(),ostream_iterator<int>(output_file,"\n"));//тут вывели — опять в одну строчку

                          Спрашивается, можно ли в дельфи сделать что-нибудь похожее, что можно использовать столь же легко?
                          Ответ: нет, из-за ограниченности языка.
                          Цитата wind @
                          трудов-то там не так уж и много потребуется.

                          :no: Это только в простейших случаях так. Например, хэш-таблицу, AVL-дерево, кучу или другие контейнеры просто так не написать...
                            Цитата Flex Ferrum @
                            Бенчмарки чего? Предлагай.

                            Вот как мы невнимательно меня читаем ;) Предлагал:
                            Delphi vs C++ (сообщение #1514811)
                            Цитата
                            Кстати, может устроим бенчмаркинг пресловутых string/wstring и AnsiString/WideString? ;)

                            Цитата Мяут @
                            Можно попробовать провести бенчмарки OpenGL, если удастся у Delphi прикрутить OpenGLComponent.

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

                            Кстати, Мяут наверно не знает, что в Delphi RTL есть OpenGL API.
                            Цитата Flex Ferrum @
                            Generic-коллекции различного рода в дельфях, я думаю, не появятся никогда. :)

                            Не понял, а это тогда что? http://www.zeitungsjunge.de/delphi/containers/
                            Цитата Flex Ferrum @
                            Ну, это одно из направлений сравнения. Другое я тоже привел. Можно ли в дельфях создавать делегаты наподобие boost::bind, т. е. когда программист полностью контролирует - что и как должно передаваться в вызываемый делегатом метод?

                            А может дистанцируемся от абстракций и придумаем реальную задачу, где это все может использоваться? Только задача не
                            Цитата mo3r @
                            написать коллекцию, сравнимую с C++'ным map? или vector?

                            А реальная задача, не языком программистских абстракций? Вот тогда и посмотрим, каким образом это можно решить в Delphi. Ведь задачи решаются не языком, а программистом, использующим его.
                              Цитата Smike @
                              Вот как мы невнимательно меня читаем ;) Предлагал:

                              И по каким характеристикам будем сравнивать?

                              Цитата Smike @
                              Не понял, а это тогда что? http://www.zeitungsjunge.de/delphi/containers/

                              Смайк, ты знаешь что такое "Generic-контейнеры"? :)

                              Цитата Smike @
                              А может дистанцируемся от абстракций

                              Да какие уж тут абстракции? Задачка буквально вот двухдневной давности.
                                Цитата Smike @
                                А реальная задача, не языком программистских абстракций? Вот тогда и посмотрим, каким образом это можно решить в Delphi. Ведь задачи решаются не языком, а программистом, использующим его.


                                Хорошо предлагаю реальную, достаточно часто встречающуюся задачу

                                имеется транспортная сеть, состоит из узлов, узлы делятся на источники и потребители
                                источник маркируем числом -1 а потребитель положительным целым означающим потребность
                                также узлы соединяются между собой путями, каждый путь маркируется сложностью (положительным целым числом)

                                задача: существует понятие транспортного средства с параметром грузоподъемность
                                небходимо реализовать
                                а) быстро и интерактивное построение графа системы (число узлов 5-20000, число ветвей считайте сами :D)
                                б) расчет оптимальных путей транспортных средств(их может быть сколь угодно много) по дейкстре
                                для обеспечения всех потребителей

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

                                критерии оценки: 1. производительность
                                2. удобство написания кода
                                3. понятность кода

                                ну как вам ?

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

                                еще одно требование, возможность наиболее безболлезненной корректировки кода
                                под небольшие изменения поставленной задачи
                                Сообщение отредактировано: impik777 -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (117) « Первая ... 3 4 [5] 6 7 ...  116 117
                                Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++



                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0513 ]   [ 14 queries used ]   [ Generated: 15.08.25, 10:45 GMT ]