На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> GUI библиотеки для C/C++ vs Delphi
    Цитата Alexander RUS @
    Хм, а что за зверь такой - GTK:huh

    GTK - The GIMP Toolkit
    Кроссплатформенная библиотека для создания пользовательского интерфейса. Написана польностью на языке C, но имеются биндинги практически на все, на чем только можно писать, в т. ч. на Mono (точно) и C# (кажется). C++ биндинг называется gtkmm (можно найти по запросу в google).

    В качестве примеров кроссплатформенных приложений, использующих GTK можно назвать:
    1. GIMP -- GNU Image Manipulation Program :)
    2. Mozilla/Firefox -- по крайней мере, в Linux оно на GTK.
    3. Ethereal -- анализатор сетевых пакетов. Обалденная штуковина. Там я впервые и увидел GTK+-2.0
    4. AbiWord -- кроссплатформенный текстовый редактор (процессор?).
    5. StarDict -- аналог Lingvo, но словарей значительно меньше.

    Также широко известен GNOME (*nixo'овый десктоп), Xfce -- Linux'овый WM, Adobe Acrobat Reader v7 использует GTK под Linux, в винде он нативный. В принципе, существует немало GTK'шного софта.

    Немного о самой библиотеке:
    1. Объектно-ориентированный подход -- в рамках языка C реализовано нечто вроде классов.
    2. Для расположения виджетов используются layouts (как в Qt, Java), а не абсолютное позиционирование (хотя можно и так).
    3. Внешний вид GTK приложений настраивается с помощью тем. В качестве примера можно посмотреть, например, сюда.
    4. Имеется дизайнер окошек glade.gnome.org, который в т. ч. может сохранять результат в виде XML файла, из которого впоследствии может быть вычитан с помощью libglade и весь код GUI уместится буквально в 10 строчек. Glade так же может сгенерить C или C++ код для соответствующего виджета, но Glade -- это только редактор интерфейсов, но не IDE.
    5. Windows-порт (конечно, можно собрать и самому, но я даже не пытался)

    Реально писать под GTK и полностью руками, только имена процедур длинноваты :), но результат получается очень качественный и (ИМХО) красивый.
    Сообщение отредактировано: linuxfan -
      s-mike, читая твои посты все больше убеждаюсь, что для делфистов чем вычурней интерфейс программы - тем круче. И такие компоненты, и сякие компоненты, и фенечки и рюшечки... Как будто бы в этом заключается вся суть разрабатываемой программы. Я, конечно, не считаю, что интерфейс обязан быть топорным, но и программа, разукрашенная как рождественская елка, тоже не есть гуд.

      Добавлено
      Цитата s-mike @
      интегрированная среда разработки (сюда я включаю в первую очередь интегрированную отладку)

      Интересно, а почему для тебя интегрированная отладка и, собственно, качество отладчика - первоочердное свойство среды? Может ли это (косвенно) говорить о качестве кода, на отладку которого необходимо тратить столько времени?
        И, кстати, еще (по поводу отладчика). Сколько кликов мышки тебе придется сделать для того, чтобы достичь результата простой gdb-команды "break foo", где foo - функция, находящаяся неизвестно в каком исходнике неизвестно какого модуля?
          Цитата

          Может ли это (косвенно) говорить о качестве кода, на отладку которого необходимо тратить столько времени?


          Flex, по-моему, ты перегибаешь палку в другую сторону. В сторону мега-профессионализма. Дело в том, что нынешняя потребность в программистах гораздо выше количества ультра-профессионалов, к которым ты, безусловно, относишься. Это раз. Следовательно - .. вот. Это было во-первых. А во-вторых: если в среде есть крутой отладчик, то это гораздо лучше, чем если бы его не было. Это совершенно однозначно и даже не обсуждается. В-третьих: подумай о багфиксерах! В любом значительном объёме кода баги будут :yes:. А как ловить?...
            Цитата BugHunter @
            Flex, по-моему, ты перегибаешь палку в другую сторону. В сторону мега-профессионализма. Дело в том, что нынешняя потребность в программистах гораздо выше количества ультра-профессионалов, к которым ты, безусловно, относишься. Это раз. Следовательно - .. вот.

            Ты мне льстишь. Но не об этом речь. Если кто-то, расписывая достоинства среды, начинает с описания того, какой крутой у нее отладчик, меня это (сейчас) начинает наводить на разного рода мысли, корень которых - в отладчике такому человеку приходится проводить очень и очень много времени. С чего бы это? Я не сколько не сомневаюсь в профессионализме s-mike'а, но всему должны быть свои причины.
              Цитата

              начинает с описания того, какой крутой у нее отладчик

              Ну нужно же было с чего то начать. Я, например, писал в одной среде, где отладчик был единственным достоинством. И его, в принципе, хватало.
                Flex Ferrum, интегрированный отладчик - это безусловно достоинство среды, без него среда была бы менее удобной. И часто весьма кстати приходятся и брейкпойнты, и пошаговая трассировка, и просмотр значений переменных, и много чего другого. То что мне это нравится не значит, что я все время провожу в нем. Но при ловле багов (как чужих, так и своих) это сильно помогает. Ты не согласишься?
                Цитата Flex Ferrum @
                s-mike, читая твои посты все больше убеждаюсь, что для делфистов чем вычурней интерфейс программы - тем круче.

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

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

                Еще раз повторяю. Ценность Дельфи не в большом количестве "рюшечек", а в скорости разработки интерфейса, благодаря чему (да, да!) можно сконцентрироваться на коде!
                Цитата Flex Ferrum @
                Я, конечно, не считаю, что интерфейс обязан быть топорным, но и программа, разукрашенная как рождественская елка, тоже не есть гуд.

                Полностью согласен.
                  Цитата s-mike @
                  Положив на форму или создав в рантайм пару компонентов из DSPack я уже получаю полнофункциональный видеоплейер с возможностью воспроизведения в разных режимах (в окне, полноэкранный, на рабочем столе), возможностью изменения позиции в видеоклипе, возможностью изменения громкости, цветокорркецией.

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

                  Кстати, может привести в этой теме полный список наиболее популярных библиотек? Так будет проще ориентироваться, да и просто информация для кого-то будет весьма ценной.
                    Цитата s-mike @
                    И часто весьма кстати приходятся и брейкпойнты, и пошаговая трассировка, и просмотр значений переменных, и много чего другого.

                    А покажи мне отладчик, в котором этого нет? Кстати, про "break foo" ты мне так и не ответил... :whistle:

                    Цитата s-mike @
                    Но использование компонентов помогает быстро и без лишних повторений кода создать качественный (если и сам компонент качественный) дизайн приложения. Не вижу в этом ничего плохого и это никак не говорит о том, что я любитель "вычурного интерфейса программы".

                    Точно также, как использование соответствующих библиотек классов позволяет достичь того же на C++. Так в чем же разница то? Или реюзинг - изобретение делфистов и нигде больше не используется?
                    Цитата s-mike @
                    Еще раз повторяю. Ценность Дельфи не в большом количестве "рюшечек", а в скорости разработки интерфейса, благодаря чему (да, да!) можно сконцентрироваться на коде!

                    Еще не доказано, что в других средах это недостижимо. Зачастую разработка на VC (как и на Delphi) сводится к поиску необходимой библиотеки. А написано много чего...
                      Цитата x0ras @
                      А насколько легко с помощью этого контрола можно сделать обработку видео? Например, в рантайме накладывать текст, отфильтровать и т.д.?

                      А может не нужно придумывать искусственные задачи для того, чтобы продемонстрировать "слабость Дельфи" (как многим кажется)?
                      Цитата Flex Ferrum @
                      А покажи мне отладчик, в котором этого нет? Кстати, про "break foo" ты мне так и не ответил... :whistle:

                      Уклоняемся от темы! Речь шла о среде с отладчиком, а не об отладчике с брейкпоинтом. А про "break foo" - ну нету такого в Дельфи, нету. Да и сделано это скорее для облегчения пользования именно внешним отладчиком.
                      Цитата Flex Ferrum @
                      Точно также, как использование соответствующих библиотек классов позволяет достичь того же на C++. Так в чем же разница то? Или реюзинг - изобретение делфистов и нигде больше не используется?

                      Считай компоненты - это Delphi-way. Кому-то нравится, кому-то нет - право каждого. Мне например нравится. И я писал почему. Библиотек кода и для Дельфи хватает. Мы же говорим об интерфейсе и наборе компонентов для интерфейса, где Дельфи занимает одну из самых сильных позиций.
                      Цитата Flex Ferrum @
                      Еще не доказано, что в других средах это недостижимо. Зачастую разработка на VC (как и на Delphi) сводится к поиску необходимой библиотеки. А написано много чего...

                      А я и не отрицаю. И в Дельфи точно также - многое уже давно написано. Ну а про Дельфи-way я уже выше писал.

                      Давайте в дальнейшем не отходить от темы. А то когда я говорю об интегрированной среде разработки - тему уводят в сторону, говоря об отладчиках, когда говорю о количестве компонентов для Дельфи - мне говорят о "вычурности интерфейса" и "кликальщиках" и т.д. Это что, попытка уйти от темы при отсутствии аргументов?
                        Цитата s-mike @
                        Мы же говорим об интерфейсе и наборе компонентов для интерфейса, где Дельфи занимает одну из самых сильных позиций.

                        А я, по твоему, о чем говорю? О булочках? Я тоже говорю об интерфейсе. Тебе уже как-то пытались объяснить, что то, что ты называешь "компонентом" - ничто иное, как библиотека, удовлетворяющая заданному интерфейсу. Просто в C++-средах это понятие специальным образом не выделяют. А библиотек, написанных для, например, MFC - достаточно много.

                        Добавлено
                        Цитата s-mike @
                        Уклоняемся от темы! Речь шла о среде с отладчиком, а не об отладчике с брейкпоинтом. А про "break foo" - ну нету такого в Дельфи, нету. Да и сделано это скорее для облегчения пользования именно внешним отладчиком.

                        А никто и не уклоняется. Тебе предложили задачу для решения с помощью встроенного отладчика... Дело в том, что для просмотра значения переменных, пошагового выполнения программы, расстановки брякпоинтов супернавороченные среды и не нужны...
                          Хм... Я как-то уже привык без отладчика - его мне заменяет простой MessageBox().
                          Для меня отладчик - самое сомнительное преимущество.
                          Но, конечно, для больших проектов MessageBox'ом не обойдёшься...

                          А GTK только для Linux? А есть Windows-версия?
                            Alexander RUS, GTK есть для всего, что движется. На http://www.gtk.org/ Просвещение желающим раздают.
                              Цитата

                              его мне заменяет простой MessageBox().
                              Для меня отладчик - самое сомнительное преимущество.

                              Видимо, проекты, в которых ты участвовал, были недостаточно большими.
                                Цитата s-mike @
                                А может не нужно придумывать искусственные задачи для того, чтобы продемонстрировать "слабость Дельфи" (как многим кажется)?

                                И снова мы возвращаемся к задачам... <_<
                                1) Это был просто вопрос. Никаких провокаций. Мне действительно интересно насколько гибкими могут быть компоненты.
                                2) Давай уже перестанем говорить о распространенности задачи. Если задача не встречается лично тебе, это не значит, что их никто не решает. Это далеко не искусственная задача. Потребности в такого рода возможностях встречаются скорее чаще, чем встроенный видеоплеер не ясно для чего... <_<


                                Цитата Flex Ferrum @
                                А никто и не уклоняется. Тебе предложили задачу для решения с помощью встроенного отладчика... Дело в том, что для просмотра значения переменных, пошагового выполнения программы, расстановки брякпоинтов супернавороченные среды и не нужны...

                                :lol: Flex, все же о GUI библиотеках говорим. :) Про отладчик мы в "C++ vs. Delphi" все выяснили. ;)

                                Цитата BugHunter @
                                Видимо, проекты, в которых ты участвовал, были недостаточно большими.

                                Точно! :yes:
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0439 ]   [ 15 queries used ]   [ Generated: 8.05.24, 14:37 GMT ]