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


    Ложная посылка - неверные выводы. Delphi я просто использую больше и знаю лучше

    Цитата D_KEY @
    Своих велосипедов наделать можно


    Свои велосипеды - штука весьма сомнительная, т.к. как правило кроме их автора никто ими не пользуется
      Цитата --Ins-- @
      Ложная посылка - неверные выводы. Delphi я просто использую больше и знаю лучше

      Так расскажите, что вы ещё используете в работе, что изучали.
        Цитата --Ins-- @
        Ложная посылка - неверные выводы. Delphi я просто использую больше и знаю лучше

        Но создается именно такое впечатление ;)

        Цитата
        Цитата D_KEY @
        Своих велосипедов наделать можно


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

        Используй Qt, у него очень распространенные велосипеды :D
        Но для некоторых проектов и фирм свои разработки(да, которыми больше никто не пользуется) вполне приемлемы. Например, софт для каких-нибудь железок часто пишется полностью самостоятельно, включая даже контейнеры, алгоритмы и пр. Ибо в такого рода проектах зачастую приходится учитывать конкретную специфику, потому проще делать свое.
        Сообщение отредактировано: D_KEY -
          Цитата D_KEY @
          Например, софт для каких-нибудь железок часто пишется полностью самостоятельно, включая даже контейнеры, алгоритмы и пр. Ибо в такого рода проектах зачастую приходится учитывать конкретную специфику, потому проще делать свое.

          Более того, на собеседовании в одной фирме, занимающаяся написание прошивок для железок, меня по полной пытали списками типов и работы с ними во время компиляции. В ответ на моё удивление, что злоупотребление подобными фишками чревато, мне объяснили, что run-time работа с типами - слишком медленно для них, потому тьма всего делается compile-time.
            Цитата MyNameIsIgor @
            Цитата D_KEY @
            Например, софт для каких-нибудь железок часто пишется полностью самостоятельно, включая даже контейнеры, алгоритмы и пр. Ибо в такого рода проектах зачастую приходится учитывать конкретную специфику, потому проще делать свое.

            Более того, на собеседовании в одной фирме, занимающаяся написание прошивок для железок, меня по полной пытали списками типов и работы с ними во время компиляции. В ответ на моё удивление, что злоупотребление подобными фишками чревато, мне объяснили, что run-time работа с типами - слишком медленно для них, потому тьма всего делается compile-time.

            Ага. Хотя даже для статики проводятся потом исследования на тему разбухания объектного кода :)
              Цитата D_KEY @
              Теоретически. На практике все совершенно иначе.

              ОК, другой пример: C++/CLI . Это C++ ?
                Цитата jack128 @
                Цитата D_KEY @
                Теоретически. На практике все совершенно иначе.

                ОК, другой пример: C++/CLI . Это C++ ?

                Уже ближе. Только, например, ref class это не C++ class, в отличие от класса, унаследованного от QObject.
                Но Qt это все-таки фреймворк, содержащий макросы и стадию предкомпиляции для С++ программ, а C++/CLI - отдельный язык, являющийся расширением C++.
                  Цитата D_KEY @
                  Только, например, ref class это не C++ class, в отличие от класса, унаследованного от QObject.

                  почему это?? Ни тот ни другой не скомпилятся ни одним с++утым компилятором. QObject из-за слотов, ref class - собственно из "ref". В чем разница?
                    Цитата jack128 @
                    Цитата D_KEY @
                    Только, например, ref class это не C++ class, в отличие от класса, унаследованного от QObject.

                    почему это?? Ни тот ни другой не скомпилятся ни одним с++утым компилятором. QObject из-за слотов, ref class - собственно из "ref". В чем разница?

                    Во-первых, в том, что moc всего-лишь генерирует обычный плюсовый код, причем просто дополняя описанный тобой класс. Компилирует же обычный С++ компилятор.
                    Во-вторых, Qt класс - это обычный С++ класс, а ref class, value class, interface class и, собственно, class - разные сущности, равно как, например, generic и template ;)
                      Цитата MyNameIsIgor @
                      Так расскажите, что вы ещё используете в работе, что изучали.


                      Был период в жизни, когда работаь приходилось на чистом C - для микроконтроллеров семейства 51-х писать :D Слава богу он уже позади. Да вроде уже упоминал и об этом, и о том, что и шарп и джаву иногда использую. Хотя эти языки скорее ближе к Delphi, чем к c++

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


                      Может и приемлимы, но от этого языковые инструменты не перестают быть примитивными - что приходится изобретать собственные велосипеды, которые частенько с квадратными колесами
                        Цитата --Ins-- @
                        Да вроде уже упоминал и об этом, и о том, что и шарп и джаву иногда использую. Хотя эти языки скорее ближе к Delphi, чем к c++

                        Ну, а теперь только осталось объяснить, на каком основании вы других Blub'ами называете...
                          Цитата --Ins-- @
                          Может и приемлимы, но от этого языковые инструменты не перестают быть примитивными - что приходится изобретать собственные велосипеды, которые частенько с квадратными колесами

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

                          Например, это позволяет на этапе компиляции доказать, что в программе нет вызова функции head
                          ExpandedWrap disabled
                            head : List of a -> a

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

                          Для C++ я приблизительно знаю как это делается, можно ли это сделать в Делфи?
                          Сообщение отредактировано: korvin -
                            Цитата --Ins-- @
                            от этого языковые инструменты не перестают быть примитивными

                            Я тебе уже многократно писал, что они таковы, каковы могут быть в соответствии с лежащими в основе языка принципами(вытекающими из ниши), в частности, с принципами нулевой стоимости.
                            Среды разработки, фреймворки, библиотеки успешно компенсируют отсутствие данных механизмов.
                            Ты так и не понял, что в Delphi у вас все это вместе, а в Java/C# это так же обеспечивается единой исполняемой средой?
                            А что, если нужна "эффективная" кроссплатформенность(не виртуальная платформа, вроде JVM или .NET, а честная)?
                            Какой нструмент ты выберешь? Что-то ни D, ни Go, ни другие "новые С++" не приживаются и с задачами пока не справляются...

                            Цитата
                            что приходится изобретать собственные велосипеды

                            Используй фреймворки, такие как Qt.

                            Цитата
                            которые частенько с квадратными колесами

                            Это зависит исключительно от твоих рук ;)

                            И еще раз напомню, что в С++ есть другие средства, которые помогут тебе упростить код и без классов-объектов и метаклассов.
                              Цитата korvin @
                              Для C++ я приблизительно знаю как это делается, можно ли это сделать в Делфи?

                              На сколько я помню лоровскую тему, на плюсах это не получилось сделать, в отличие от Java и Haskell :)
                              Хотя я могу и ошибаться, ибо не совсем понял задание... Возможно, на плюсах просто сделали иначе.
                                Цитата korvin @
                                Для C++ я приблизительно знаю как это делается, можно ли это сделать в Делфи?

                                Что-то вроде такого(код толком не проверял, так что сильно не пинайте - работа)?
                                ExpandedWrap disabled
                                  template<typename T, int N>
                                  class List
                                  {
                                  public:
                                      List(const T &d, const List<T, N-1> &tail)
                                          : data(d),
                                            next(new List<T, N-1>(tail))
                                      {
                                      }
                                   
                                      const T &head() const
                                      {
                                          return data;
                                      }
                                      
                                      const List<T, N-1> &tail() const
                                      {
                                          return *next;
                                      }  
                                   
                                  private:
                                      T data;
                                      std::shared_ptr<List<T, N-1>> next;
                                  };
                                   
                                  template<typename T>
                                  class List<T, 0>
                                  {
                                  public:
                                      List() {}
                                  };
                                   
                                  template<typename T>
                                  List<T, 0> make_list()
                                  {
                                      return List<T, 0>();
                                  }
                                   
                                  template<typename T, typename... Args>
                                  List<T, sizeof...(Args) + 1> make_list(T first, const Args &...args)
                                  {
                                      return List<T, sizeof...(Args) + 1>(first, make_list<T>(args...));
                                  }
                                   
                                  int main()
                                  {
                                      auto my_list = make_list(1,2,3);
                                      my_list.head(); // ok
                                      my_list.tail().head(); // ok
                                      my_list.tail().tail().head(); // ok
                                      my_list.tail().tail().tail().head();  // compile_error: 'const class List<int, 0>' has no member named 'head'
                                  }

                                Но тут слишком сильные ограничения на работу во время выполнения...

                                Как мне в новом С++ сделать функцию с переменным числом аргументов одного и того же типа, но чтобы работал "sizeof..."?

                                Добавлено
                                Цитата MyNameIsIgor @
                                Цитата korvin @
                                Для C++ я приблизительно знаю как это делается, можно ли это сделать в Делфи?

                                На сколько я помню лоровскую тему, на плюсах это не получилось сделать, в отличие от Java и Haskell :)
                                Хотя я могу и ошибаться, ибо не совсем понял задание... Возможно, на плюсах просто сделали иначе.

                                А можно код на Java(к теме близко)?
                                Сообщение отредактировано: D_KEY -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 421 422 [423] 424 425 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5547 ]   [ 15 queries used ]   [ Generated: 29.07.26, 19:36 GMT ]