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

      нет.
      Цитата Emerald @
      Будет ли данная среда поддерживаться?

      да.
      Цитата Emerald @
      И будут ли программисты этой среды востребованы?

      нет.

      ЗЫ все - ИМХО, естественно.
        Цитата jack128 @
        нет.

        а что тогда стоит изучать при таком раскладе??? <_<
          Цитата olga90 @
          а что тогда стоит изучать при таком раскладе???

          c++ :)
          JAVA
          :)
            Если рассматривать ту область, где доминирует дельфи(бух), то наверно .NET ...
              Цитата olga90 @
              а что тогда стоит изучать при таком раскладе??? <_<

              VB.NET и C#
                Всё это очень прискорбно. :( Pascal - понятный язык программирования, очень жаль, что Delphi может затухнуть навсегда. Я начал изучать C#, никуда не денешься. На работе заставляют, хотя я там за 5 лет написал несколько нехилых прог, которыми до сих пор пользуется всё предприятие. Delphi - великая весчь, позволившая творить перлы любым слоям населения. Например, Total Commander, TheBat!, QIP и многие другие популярные программы написаны именно на Delphi. :(
                  Было бы унизительно думать, что Дельфи - это только среда для бухгалтрских прог. Пусть этим мусором занимается теперь .Net. А я вот думаю, что среди засилья .Net-программ Delphi запросто может продвинуться в прикладном и массовом секторе, в том числе и за счет
                  Цитата min@y™ @
                  Total Commander, TheBat!, QIP

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

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

                  Цитата min@y™ @
                  Delphi может затухнуть навсегда

                  Никогда :no: :tong:
                    Цитата Smike @
                    Цитата min@y™ @
                    Delphi может затухнуть навсегда

                    Никогда :no: :tong:

                    Е-мае... У меня аж слезы навернулись. Ей-богу!
                      Цитата Albinos_X @
                      c++
                      JAVA
                      Скорее уж C# и J#... ;)

                      Вот подождем официального релиза Vista и посмотрим, насколько там можно будет на дельфах пописать...
                        Цитата Testudo @
                        Вот подождем официального релиза Vista и посмотрим, насколько там можно будет на дельфах пописать...

                        Уже сейчас можно :P Сам проверял - все мои программы на Дельфи под Вистой работают. А вот еще когда в конце следующего года в VCL будет добавлена поддержка Windows Presentation Framework/Avalon, тогда будет еще лучше.
                          Если честно, то возможности современной Делфи приближаются к возможностям того же Билдера/С++? И что даст переход на новую платформу Висты? И почему язык программирования иногда называют профессиональным? Что делает язык таковым? Почему С - да, а вот паскаль - нет? Мне просто интересно, только без флейма...
                            Emerald
                            Цитата Emerald @
                            Если честно, то возможности современной Делфи приближаются к возможностям того же Билдера/С++?

                            Делфи и Билдер равны. А вот VC отличается, только тем, что изначально царь горы.
                            Цитата Emerald @
                            И что даст переход на новую платформу Висты?

                            Время покажет.
                            Цитата Emerald @
                            почему язык программирования иногда называют профессиональным? Что делает язык таковым? Почему С - да, а вот паскаль - нет?

                            Потому, что не разбираются. Си - является стандартом, в программирование. Си и Паскаль равны. Другое дело, что Си развивается быстрее, чем Паскаль. Даже скорее не быстрее, а более развит в прикладном смысле. Но это не заслуга языка, а заслуга определенного компилятора.
                              Цитата Emerald @
                              Почему С - да, а вот паскаль - нет?

                              Потому что С появился вовремя ? ;)
                              IMHO сейчас в лидерах интерпретируемые языки: JAVA, Python etc... Просто в них намного удобнее работа с памятью а отсюда простота отладки. Опять же распространенность переносимость и истинная кроссплатформенность (в отличие .NET ;) )
                              К примеру тот же Python. :wub:
                              1) Не нужно обьявлять типы переменных ;) (точнее если надо то можно... а так нет смысла).
                              2) Нет скобок begin end или подобных операторов их роль играет фарматирование текста а точнее отступ от левого края.
                              3) Не нужно преобразование типов переменных обо всем заботится Python (если очень надо то можно делать самому).
                              4) Оди и тот же код работает на любых Windows-ах, Linux-ах, Unix-ах... без изменений в самом коде вот это я называю кроссплатформенностью.
                              Учтя только преречисленные особенности языка нетрудно представить во сколько раз упрощается исходный текст программы. К примеру у меня реализация консольного приложения по одному алгоритму на Delphi выходит в три раза длинее по числу строк чем на Python. Просто потому что многое из ручной работы в Delphi берет на себя Python.

                              А "Почему С - да"?
                              У каждого языка есть своя специфическия область применения и свои характерные только для этого языка задачи. То что на С займет 5-6 страниц кода на bash один оператор ;) и заколачивание гвоздей межконтинентальными атомными баллистическими ракетами IMHO тоже есть бред :whistle:

                              ЗЫ :
                              Об этом
                              Цитата Emerald @
                              И что даст переход на новую платформу Висты?
                              я скромно промолчу :whistle:
                                ЗЫ Да и сами переменные в Python можно не обьявлять
                                  Цитата Emerald @
                                  И почему язык программирования иногда называют профессиональным? Что делает язык таковым? Почему С - да, а вот паскаль - нет?
                                  Наверное, потому что паскаль изначально был специально разработан для ОБУЧЕНИЯ программированию, а не для профессиональных разработок ;)
                                    Цитата best_lamer @
                                    ЗЫ Да и сами переменные в Python можно не обьявлять

                                    И ты считаешь это достоинством?! :wacko:

                                    Добавлено
                                    Цитата Emerald @
                                    И почему язык программирования иногда называют профессиональным? Что делает язык таковым? Почему С - да, а вот паскаль - нет?

                                    Почему ты решил, что Паскаль - не профессиональный язык? Простая логика: профессиональное - это что-то, чем пользуются профессионалы. Профессионалы - люди, которые с помошью этого чего-то зарабатывают деньги (это их профессия). Я - профессиональный программист на Delphi. Какой вывод? :D
                                    Может, ты хотел сказать "промышленный"? Тогда это то, чему учат в учебных заведениях. Тут, кстати, интересная ситуация: в ВУЗах учат тем инструментам, которые применяются на производстве, в промышленности. А что применяется в промышленности? То, чему учат в ВУЗах, конечно. :whistle:
                                      Си имеет спецификацию ANSI, а вот паскаль - нет. Правда такой спецификации нет и у C++...
                                        Цитата Testudo @
                                        Си имеет спецификацию ANSI, а вот паскаль - нет. Правда такой спецификации нет и у C++...

                                        ANSI Pascal есть. И Delphi с ним совместим. Думаешь, почему System.pas не пишется в uses? :)
                                        И стандарт C++ тоже есть, уже с прошлого века (98 год, если память не изменяет). Вот у Object Pascal нет стандарта, это язык одного производителя. Вот если бы Борланд лицензировал спецификации другим, то можно было бы подумать о стандарте.
                                          Цитата Testudo @
                                          Наверное, потому что паскаль изначально был специально разработан для ОБУЧЕНИЯ программированию, а не для профессиональных разработок

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

                                          Цитата Romkin @
                                          И ты считаешь это достоинством?! :wacko:

                                          Аха ;)
                                          Сколько занимает в коде обьявление переменных? А потом еще преобразования типов. А сколько ошибок все это вместе влечет у начинающих (и у бывалых) программистов?
                                          Если мне нужна новая переменная я просто пишу
                                          ExpandedWrap disabled
                                            new_var=100

                                          там где это надо по тексту программы и все у меня есть новая переменная :tong:
                                          Частый глюк - нехватка виртуальной памяти... (причина надеюсь понятна? ;) ) так вот подобные ошибки тоже просто невозможны в Python!
                                          Еще Python различает верхний и нижний регистр. Потом мне к примеру не составит труда сделать такое
                                          ExpandedWrap disabled
                                            a=complex(1.13,1.85)#a=1.13+j1.85
                                            b=10
                                            print c=a+b

                                          И мне не надо ни о чем заботиться :tong:

                                          ЗЫ: Теперь немного классики ;)
                                          0) Три переменных x, y, z надо преравнять нулю
                                          ExpandedWrap disabled
                                            x=y=z=0

                                          1) Поменять значения переменных a и b местами (те то что было в a будет в b и наоборот)
                                          ExpandedWrap disabled
                                            a,b=b,a

                                          2) Бросание игральных костей
                                          ExpandedWrap disabled
                                            import random
                                            def dice(num,sides)# num - число костей sides - число сторон каждой кости
                                            return reduce(lambda x,y,s=sides:x+random.randrange(s), range(num+1))+num

                                          Кто сможет проще и нагляднее милости прошу ;)
                                            best_lamer И, казалось бы, при чем здесь Питон?
                                            Цитата best_lamer @
                                            Сколько занимает в коде обьявление переменных? А потом еще преобразования типов. А сколько ошибок все это вместе влечет у начинающих (и у бывалых) программистов?

                                            Ошибок? Странно, мне всегда казалось, что явное описание всех переменных уменьшает их количество. Тот, кто два часа отлаживал программу на GW-Basic, а потом обнаружил, что ошибка в том, что в одном месте в имени вместо "0" "0" написано, я думаю, предпочтет строгие объявления :wall:
                                            Цитата best_lamer @
                                            Частый глюк - нехватка виртуальной памяти...

                                            Э? Это - глюк? :lool: Это - кривые ручки!
                                              Цитата best_lamer @
                                              Сколько занимает в коде обьявление переменных?
                                              Уж лучше они будут объявлены. Покрыйней мере будет сразу понятна область их видимости.

                                              А по поводу труда, связанного с их объявлением, дык в Delphi2006 это делается одним клава-сочетанием... ;)

                                              Добавлено
                                              Цитата best_lamer @
                                              0) Три переменных x, y, z надо преравнять нулю

                                              x=y=z=0
                                              ExpandedWrap disabled
                                                var x,y,z:byte;
                                                ***
                                                ZeroMemory(@x,3);
                                              :D
                                                Цитата best_lamer @
                                                Потом мне к примеру не составит труда сделать такое
                                                ExpandedWrap disabled
                                                    a=complex(1.13,1.85)#a=1.13+j1.85
                                                    b=10
                                                    print c=a+b

                                                И мне не надо ни о чем заботиться

                                                ExpandedWrap disabled
                                                    V := VarComplexCreate(1.13,1.85);
                                                    b := 10;
                                                    ShowMessage(V + b);

                                                Скучно... Да еще необязательность объявления переменных в сочетании с регистрозависимостью имен... Чур меня :wacko:
                                                  Цитата Romkin @
                                                  Э? Это - глюк? Это - кривые ручки!

                                                  Вот вот... ;) я просто хотел об игрушках там написать которые имеют обыкновение не возвращять память :ph34r: .

                                                  Ребятааааааа :no: Testudo Romkin у меня приведены полностью работоспособные программы на Python выполняющие требуемые действия. Попрошу приводить полностью!
                                                  ExpandedWrap disabled
                                                    Program examples;
                                                    {APPTYPE CONSOLE}
                                                    uses {и это все что надо...}
                                                    var {и тут тоже...}
                                                    begin
                                                      V := VarComplexCreate(1.13,1.85);
                                                      b := 10;
                                                      ShowMessage(V + b);
                                                    end.

                                                  И только потом хвастаться краткостью простотой и красотой решения. :yes:

                                                  Цитата Testudo @
                                                  var x,y,z:byte;
                                                  ***
                                                  ZeroMemory(@x,3);

                                                  У меня x y и z могут иметь любые типы Romkin ухватил правильно в Delphi самое похожее именно Variant! А так ничего классно :yes:

                                                  Цитата Romkin @
                                                  Скучно...

                                                  Лады чтоб скучно не было приведу примерчик посолиднее. ;)
                                                  Печатаем первые n чисел дядьки Фибоначчи
                                                  ExpandedWrap disabled
                                                    def fib(n):#функция дядьки Фибоначчи
                                                        x,y=0,1
                                                        while y<n:
                                                            print y
                                                            x,y=y,x+y
                                                    # вызов функции
                                                    fib(200)
                                                    #На выходе имеем:
                                                    1 1 2 3 5 8 13 21 34 55 89 144
                                                  Сообщение отредактировано: best_lamer -
                                                    Цитата best_lamer @
                                                    def fib(n):#функция дядьки Фибоначчи
                                                    x,y=0,1
                                                    while y<n:
                                                    print y
                                                    x,y=y,x+y


                                                    ExpandedWrap disabled
                                                      function Fib(n: integer): integer;
                                                      begin
                                                        if n>1 then Result := Fib(n - 1) + Fib(n - 2) else Result := 1;
                                                      end;
                                                      Цитата best_lamer @
                                                      Ребятааааааа Testudo Romkin у меня приведены полностью работоспособные программы на Python выполняющие требуемые действия. Попрошу приводить полностью!

                                                      belochub ;)
                                                        best_lamer А какая разница, полностью или нет?
                                                        ExpandedWrap disabled
                                                          program Project2;
                                                           
                                                          {$APPTYPE CONSOLE}
                                                           
                                                          uses
                                                            VarCmplx;
                                                           
                                                          var
                                                            V: Variant;
                                                            b: Double;
                                                          begin
                                                            V := VarComplexCreate(1.13,1.85);
                                                            b := 10;
                                                            WriteLn(V + b);
                                                          end.

                                                        И что из этого следует? Я, по крайней мере, вижу типы переменных. А какой тип у твоей переменной b? Она целая или с плавающей точкой? Можно ли сравнивать два значения? И можешь ли ты так же легко сделать, например, векторную арифметику, как и комплексную?

                                                        Краткость никогда не являлась преимуществом. Читабельность и контроль над кодом гораздо важнее. И по сравнению с этим отсутствие необходимости писать "лишние" строки - ничто.
                                                        Да, программист должен быть ленивым. Но эта лень должна быть конструктивной, а не тупой выбор "тута буков меньше". Нет уж.
                                                        И "хвастаться простотой и краткостью" я не собираюсь. И измерять я ничего не собираюсь, нафиг мне это надо?
                                                          Цитата Romkin @
                                                          И измерять я ничего не собираюсь, нафиг мне это надо?

                                                          Ну и правильно, человечество давно уяснило, что размер не главное :D
                                                            Цитата Romkin @
                                                            Я, по крайней мере, вижу типы переменных. А какой тип у твоей переменной b? Она целая или с плавающей точкой?

                                                            Переменная b в том примере целая ибо b=10 если бы я написал b=10.0 или b=10e0 то был бы вещественный.
                                                            А вообще при желании явно работать с типами
                                                            ExpandedWrap disabled
                                                              b=10e0
                                                              print b #вещественное
                                                              print int (b) #целое
                                                              print float (b) #вещественное
                                                              #выдаст
                                                              10.0
                                                              10
                                                              10.0

                                                            Покажи мне задачу где тип переменной играет роль. Цикл?
                                                            На Delphi/Pascal в конструкции вида
                                                            ExpandedWrap disabled
                                                              for variable:=1 to 10 do begin end;

                                                            понятное дело что variable должна быть integer
                                                            эта же строчка на Python
                                                            ExpandedWrap disabled
                                                              for variable in range (1,11):

                                                            не суть важно чему была равна variable до этой строчки но после этой строки переменная будет содержать список variable=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] элементов целых от 1 до 10 дальше все как и в Delphi.

                                                            Цитата Romkin @
                                                            Можно ли сравнивать два значения?

                                                            Можно :)
                                                            ExpandedWrap disabled
                                                              a=10
                                                              b=20.0
                                                              if b>a: print "b>а !!!"
                                                              #выдаст
                                                              b>а !!!


                                                            Цитата Romkin @
                                                            И можешь ли ты так же легко сделать, например, векторную арифметику, как и комплексную?

                                                            Без проблем сразу с матрицами пойдет? ;)
                                                            ExpandedWrap disabled
                                                              #это начало собственно программы
                                                              #импорт необходимого
                                                              from Matrix import *
                                                              from Numeric import *
                                                              m = Matrix( [[1,0,1],[0,2,1],[2,22,34]])
                                                              print m
                                                              print m*m
                                                              print transpose(m)
                                                              print m**-1
                                                              #а ее это конец
                                                              # вывод программы
                                                              #m
                                                              Matrix([[ 1,  0,  1],
                                                                     [ 0,  2,  1],
                                                                     [ 2, 22, 34]])
                                                              #m*m
                                                              Matrix([[   3,   22,   35],
                                                                     [   2,   26,   36],
                                                                     [  70,  792, 1180]])
                                                              #транспонированная m
                                                              [[ 1  0  2]
                                                               [ 0  2 22]
                                                               [ 1  1 34]]
                                                              #m^-1
                                                              Matrix([[ 1.0952381 ,  0.52380952, -0.04761905],
                                                                     [ 0.04761905,  0.76190476, -0.02380952],
                                                                     [-0.0952381 , -0.52380952,  0.04761905]])


                                                            Могу усложнить если надо ;) Но надеюсь и так понятно :) В последнем примере выделен собственно текс программы.

                                                            Цитата Romkin @
                                                            И "хвастаться простотой и краткостью" я не собираюсь.

                                                            Да и не надо. Просто попробуй тот же пример (с комплексными) на Pascal а не на Delphi с Variant-ами ;)

                                                            Добавлено
                                                            Цитата Romkin @
                                                            best_lamer А какая разница, полностью или нет?

                                                            Просто так нагляднее видно на сколько мне на Python работы меньше :tong:
                                                            А если серьезно то я привожу текст полностью работоспособной программы + результат (в большинстве случаев) 8-)

                                                            ЗЫ Кому бы руки поотбивать за настройки расцветки в коде Python? :whistle:
                                                            Да еще и цветом не выделяется :huh:
                                                              best_lamer, нечестно ты играешь...
                                                              Смотри сюда:

                                                              Цитата best_lamer @
                                                              #это начало собственно программы
                                                              #импорт необходимого


                                                              Я тебе с этим самым "импортом необходимого" могу точно такую же программу привести, как и у тебя - ничуть не длиннее (FPC 2.0.0, если тебя это интересует, только вот какой будет этот "импорт" тебя не должно интересовать, договорились?)
                                                                Цитата Romkin @
                                                                Краткость никогда не являлась преимуществом. Читабельность и контроль над кодом гораздо важнее. И по сравнению с этим отсутствие необходимости писать "лишние" строки - ничто.


                                                                Правильно. Примерно то же самое пишут в своей книге "Практика программирования" Брайан У. Керниган и Роб Пайк.
                                                                  Цитата best_lamer @
                                                                  А вообще при желании явно работать с типами

                                                                  Это преобразование. Контроля типов, насколько я понял, нет.
                                                                  Цитата best_lamer @
                                                                  Цитата (Romkin @ Сегодня, 14:44)
                                                                  Можно ли сравнивать два значения?
                                                                  Можно

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

                                                                  Цитата best_lamer @
                                                                  Без проблем сразу с матрицами пойдет?

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

                                                                  Цитата best_lamer @
                                                                  Да и не надо. Просто попробуй тот же пример (с комплексными) на Pascal а не на Delphi с Variant-ами


                                                                  Угу. А еще на ассемблере можно... Или с закрытыми глазами попробовать код отладить... Может, надо брать инструмент, который к задаче подходит?

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

                                                                  Добавлено
                                                                  volvo877 У него импорт написан, две библиотеки. Интересно только, написаны ли эти библиотеки на Питоне, и есть ли исходники.
                                                                  Но, впрочем, особых преимуществ я не увидел. Представление о языке получил, начальное.
                                                                    Цитата volvo877 @
                                                                    best_lamer, нечестно ты играешь...

                                                                    Почему собственно?
                                                                    Я ничего не имел против
                                                                    Цитата Romkin @
                                                                    uses
                                                                    VarCmplx;

                                                                    А в этих двух строчках
                                                                    Цитата best_lamer @
                                                                    from Matrix import *
                                                                    from Numeric import *

                                                                    Python-овский аналог uses. В чем собственно заключаеться "нечестная игра" ? :blink:
                                                                    Есть модули (как на Python так и на Delphi или еще чем то) мы их используем. В чем проблема?
                                                                    Народ интересовал синтаксис и реализация конкретных проблем я использовал Numeric-Python(из него использую класс Matrix и мат операции с ним) модуль такой же как его подобие Math в Delphi так что не вижу причин для обвинений. :angry:

                                                                    Цитата volvo877 @
                                                                    FPC 2.0.0, если тебя это интересует, только вот какой будет этот "импорт" тебя не должно интересовать, договорились?

                                                                    Э неее не пойдет. Все что я приводил можно использовать где угодно. Оно уже работоспособно даже в том виде в каком оно есть сейчас. И в моих примерах нет никаких завуалированных подвохов.
                                                                    А раз уж быть настолько щепитильными то для примера
                                                                    Цитата Romkin @
                                                                    program Project2;

                                                                    {$APPTYPE CONSOLE}

                                                                    uses
                                                                    VarCmplx;

                                                                    var
                                                                    V: Variant;
                                                                    b: Double;
                                                                    begin
                                                                    V := VarComplexCreate(1.13,1.85);
                                                                    b := 10;
                                                                    WriteLn(V + b);
                                                                    end.

                                                                    Нужен Delphi и модуль VarCmplx(и кстате не только он еще Variants это даже без компилятора помню) а в моем нужен Python и только модуль Numeric-Python.

                                                                    Еще раз повторюсь все что я здесь выше приводил это полные готовые и роботоспособные примеры программ!!! Хотите могу переделать со своими собственными классами и модулями (это понятное дело займет время) только тогда чур
                                                                    ExpandedWrap disabled
                                                                      uses System, VarCmplx, Variants... etc
                                                                    тоже не использовать ;) Устраивает? <_<

                                                                    Добавлено
                                                                    Цитата Romkin @
                                                                    Контроля типов, насколько я понял, нет.

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

                                                                    Цитата Romkin @
                                                                    Я, вообще говоря, имел в виду сравнение на равенство. И вот в этом случае очень важно знать, что именно у тебя получилось, целочисленная переменная или с плавающей точкой.

                                                                    Тут логика такая «припариваться» округлением или контролем нет смысла. Тип переменной будет таким каким мы ее введем до тех пор пока мы ее принудительно не приведем к другому типу.

                                                                    Цитата Romkin @
                                                                    Как ты думаешь, почему в Delphi не пишут программы, используя только тип Variant? Ведь подходит, объявляй переменные, не думая?

                                                                    Python язык более высокого уровня чем Delphi, Pascal, C, C++, Java (он от всех их произошел)... В Python каждая переменная по умолчанию это Класс а не Тип! Romkin на Python забудь о Типе как о страшном сне.

                                                                    Цитата Romkin @
                                                                    Замечательно. Значит, мат. библиотеки есть. А можно средствами языка написать такую же, с перекрытием операторов?

                                                                    Ну если так хочется то да. Исходники открыты наследовался от нужных классов переопределил все что надо и в путь.

                                                                    Цитата Romkin @
                                                                    В общем, спасибо за информацию, некоторое представление я получил о языке.

                                                                    Да не за что.

                                                                    Цитата Romkin @
                                                                    volvo877 У него импорт написан, две библиотеки. Интересно только, написаны ли эти библиотеки на Питоне, и есть ли исходники.

                                                                    Написаны на Python. Естественно есть. Сам интерпретатор Python написан на Си исходный код доступен. Библиотеки как правило на самом Python либо Си+ Python но в любом случае все доступно в исходниках.
                                                                      Скажу свое имхо.
                                                                      Программистом я работаю на вольных хлебах (я геодезист вообщето).
                                                                      Так вот заказщику абсолютно побоку на чем написана прога - работает, не глючит, делает что надо - зашибись!
                                                                      Вы ж ему не исходники даете, а екзешку.

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

                                                                      Даже если делфи не будут разробатывать дальше, она продержитса еще лет 10 - ето я могу гарантировать.
                                                                      Вот вспомните, чего вас учили в институте? Пусть первый, кто скажет что небыло в учебной программе делфи, пусть бросит в меня монитором!

                                                                      Немного путано получилось, но думаю вы поняли мои сумбурные мысли.
                                                                        Цитата best_lamer @
                                                                        Python язык более высокого уровня чем Delphi, Pascal, C, C++, Java (он от всех их произошел)... В Python каждая переменная по умолчанию это Класс а не Тип! Romkin на Python забудь о Типе как о страшном сне.

                                                                        Повешу на стенку крупными буквами. Весь отдел будет лежать :lool:
                                                                        Нет слов.
                                                                        А компилятор Питона-то есть? Или все - интерпретатор?
                                                                        Ты правильно подметил, что это похоже на Бейсик. Это он и есть, в современной версии. Все, что я увидел, это язык, пригодный для первоначального обучения программированию, не более. Он прост по синтаксису и имеет свойства, которые очень нравятся новичкам :)

                                                                        Цитата Woland @
                                                                        Так вот заказщику абсолютно побоку на чем написана прога - работает, не глючит, делает что надо - зашибись!
                                                                        Вы ж ему не исходники даете, а екзешку.

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

                                                                        Цитата Woland @
                                                                        Вот вспомните, чего вас учили в институте? Пусть первый, кто скажет что небыло в учебной программе делфи, пусть бросит в меня монитором!

                                                                        И брошу :) Не было ее у меня! В школе зацепил Фокал + Бейсик, в институте - Фортран и асм i8080 (КР580), учил одновременно asm i86, успешно путая. Как выяснилось, преподавательница тоже его знала ("Угу-угу, верно. Стой! Какой LOOP?!!!")
                                                                        Параллельно - Паскаль и С, в качестве самообразования. Замечаю: ANSI версии, и то подмножество ANSI C было.
                                                                        Но мыслишь в правильном направлении. Впрочем, перейти на другой язык не так уж сложно ;)
                                                                          Цитата Romkin @
                                                                          Повешу на стенку крупными буквами.

                                                                          Только для начала представь себе Delphi в котором каждая variable=class причем по дефольу (!) хош ты того али нет. Нормальное кино? Как полегчает можеш вешать и не забудь указать номер моей ICQ пущай стучацца найдем общие темы :P

                                                                          Цитата Romkin @
                                                                          А компилятор Питона-то есть? Или все - интерпретатор?

                                                                          Python интерпретируемый язык. При желании можно портировать python >> Cи даже софтину для этого видел. Потом есть еще приблудина (под виндовс) та может exe файлы собирать (но меня оно не трогает ибо я под Linux)

                                                                          Цитата Romkin @
                                                                          Ты правильно подметил, что это похоже на Бейсик. Это он и есть, в современной версии. Все, что я увидел, это язык, пригодный для первоначального обучения программированию, не более. Он прост по синтаксису и имеет свойства, которые очень нравятся новичкам

                                                                          Присмотрись повниметельнее. ;) Первое впечатление обманчиво. Я тоже вначале купился на простоту. А оказалось что с самого начала Гвидо Ван Россум ставил себе цель создать простой по синтаксису язык программирования который тем не менее будет обладать широчайшими возможностями. И вообще один из главных дивизов Python "Долой лишнюю писанину" ;)

                                                                          Ну по поводу васика :lol: так васик не знает lambda формы к примеру (бросание кубиков выше по тексту). Васик (хоть новый хоть старый) в состоянии работать (всмысле осуществлять ввод/вывод данных) с разными кодировками?

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

                                                                          Короче для обучения он подходит но кроме самого Python надо полюбому давать что то еще. Иначе всех прелестей Pythona человек просто не заметит и воспримит все как должное а потом столкнувшись к примеру с С уйдет в анабиоз :ph34r: .

                                                                          У новичков от таких пирогав моСк закипит :yes:

                                                                          Добавлено
                                                                          Цитата Romkin @
                                                                          Пусть первый, кто скажет что небыло в учебной программе делфи, пусть бросит в меня монитором!

                                                                          И брошу

                                                                          :lol: И я присоединюсь :P Был: васик (школа), fortrane, qBasic, pascal (в институте). Я Delphi само осваивало 8-)
                                                                            Цитата Woland @
                                                                            Ну продали они линейку, ну не будет навых версий делфи, от етого что, у вас делфи автоматически деинсталировалось?
                                                                            Кто сказал, что не будет? Ты топик внимательно читал? Сказано же было: линейку будут развивать те же программисты, но уже в собственной отдельной компании.
                                                                              Цитата Testudo @
                                                                              Кто сказал, что не будет? Ты топик внимательно читал? Сказано же было: линейку будут развивать те же программисты, но уже в собственной отдельной компании.

                                                                              И потом полюбому останется FPC
                                                                                Цитата best_lamer @
                                                                                IMHO сейчас в лидерах интерпретируемые языки: JAVA, Python etc...

                                                                                Интерпретируемые языки фтопку.

                                                                                Добавлено
                                                                                Я вообще не понимаю, почему речь зашла о Питоне. Бест_ламер только этот язык знает? Delphi не является интерпретируемым языком, следовательно уже на голову выше.
                                                                                  Цитата Smike @
                                                                                  Интерпретируемые языки фтопку.

                                                                                  Ну это безусловно АРГУМЕНТ.
                                                                                  Romkin вот ЭТОТ перл рядом с моим повесь PLZ ;)

                                                                                  Цитата Smike @
                                                                                  Бест_ламер только этот язык знает?

                                                                                  Бест_ламеру этот язык очень нравиццо!

                                                                                  Цитата Smike @
                                                                                  Delphi не является интерпретируемым языком, следовательно уже на голову выше.

                                                                                  :blink:
                                                                                  Smike выше по тексту есть несколько примеров. Уж если есть такое желание показать крутость Delphi пожалуйста приведи то же что и у меня только на КРУТЕЙШЕМ Delphi (только чур приводи весь пример целиком потому как у меня приведены тоже целые готовые и работоспособные программы).

                                                                                  Smike специально для тебя повторю еще раз - Python но голову выше: Delphi, C, C++, C#, Java и любого другого языка хотябы только потому что в Python все переменные по умолчанию хочеш ты того или нет есть КЛАССЫ те variable=class !

                                                                                  ЗЫ: А вообще хочеш холивара создавай в холиваре "Интерпретируемые языки VS Компилируемые языки" ;)
                                                                                  Сообщение отредактировано: best_lamer -
                                                                                    А зачем? Ну хорошо, вот есть статья, в которой описана структура данных, фактически - динамический набор символов (стек).
                                                                                    Писал я программу в ней с чувством, толком, и отладкой (не так, как пономарь ;) ) часа два, максимум три.
                                                                                    Можешь реализовать этот объект на Питоне?
                                                                                      Цитата best_lamer @
                                                                                      На Delphi/Pascal в конструкции вида

                                                                                      for variable:=1 to 10 do begin end;

                                                                                      понятное дело что variable должна быть integer

                                                                                      не совсем так...
                                                                                      она должна быть Ordinal type, а в последних версиях Delphi и Set Of и даже Class(?).

                                                                                      Цитата best_lamer @
                                                                                      Без проблем сразу с матрицами пойдет?

                                                                                      насколько я помню в стандартной поставке Delphi нет модуля для работы с матрицами
                                                                                      давай с нуля, а? например умножение матриц...

                                                                                      Цитата best_lamer @
                                                                                      Python но голову выше: Delphi, C, C++, C#, Java и любого другого языка хотябы только потому что в Python все переменные по умолчанию хочеш ты того или нет есть КЛАССЫ те variable=class !

                                                                                      накладные расходы на эти "красивости" каковы?
                                                                                        Цитата best_lamer @
                                                                                        Smike выше по тексту есть несколько примеров. Уж если есть такое желание показать крутость Delphi пожалуйста приведи то же что и у меня только на КРУТЕЙШЕМ Delphi (только чур приводи весь пример целиком потому как у меня приведены тоже целые готовые и работоспособные программы).

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

                                                                                        Кстати, я считаю, что верх совершенства языка - это возможность написания на нем себе подобных. Компиляторы C++ пишутся на C++, среда Delphi пишется на Delphi. Питон же на C++ написан, а писать на нем компилятор, при всей его красоте - задачу ну очень неблагодарная именно из-за низкой производительности выходного продукта.
                                                                                          Цитата
                                                                                          Python но голову выше: Delphi, C, C++, C#, Java и любого другого языка хотябы только потому что в Python все переменные по умолчанию хочеш ты того или нет есть КЛАССЫ те variable=class !


                                                                                          Насколько я помню высказывания моего друга, который пишет на С++, в этом языке (С++) типы тоже классы. (могу конечно что-то перепутать, но вряд ли).
                                                                                          Сообщение отредактировано: Soul :) -
                                                                                            Delphi теперь не особо популярен.
                                                                                            Если у тебя выбор между направлением:
                                                                                            С или Pascal,то иди по C линии.
                                                                                            Востребованность гарантирована.

                                                                                            Добавлено
                                                                                            Цитата Soul :) @
                                                                                            в этом языке типы тоже классы

                                                                                            ?
                                                                                              Цитата Woland @
                                                                                              Вот вспомните, чего вас учили в институте? Пусть первый, кто скажет что небыло в учебной программе делфи, пусть бросит в меня монитором!

                                                                                              Я бы бросил и НЕ ПОЖАЛЕЛ МОНИТОРА, но не знаю вектора :( :'( Ну не было у нас ДЕЛЬФИ, зато был ТАСМ и это решило все!!!! :D :D И плевать что ДЕЛЬФИ не популярен цитата:
                                                                                              Цитата Искандер В. @
                                                                                              Delphi теперь не особо популярен

                                                                                              Работать легко??? Легко. Проблемы решаются??? В меру знаний тонкостей!!!
                                                                                              И плевать заказчику (цитата WOLAND'A) на чем написана программа.Emerald Я скажу так - припрет все изучишь. До тонкостей!!! Лучше самого Дяди Билла будешь знать!!!! А если такой вопрос задаешь -
                                                                                              Цитата Emerald @
                                                                                              Ребят, стоит ли изучать Делфи в свете продажи линейки Борландом?

                                                                                              --Значит не приперло, радуйся что жизнь оставила время подумать и сделать выбор, и если есть время то уж не брезгуй, пожалуйста , разбирайся в ДЕЛЬФИ, пока есть время. Ведь, как сказал Кырла-Мырла, кажется, "Жизнь не спросит, что ты учил, а спросит, что ты знаешь!". И за место под Солнцем придется бороться с таким же как я, и возможно, драться насмерть, а тут все средства хороши - и ДЕЛЬФИ в том числе в запасе иметь не помешает. :D :D :D

                                                                                              З.Ы.Ну и речь толкнул, прям на пленум выдвигай!!! :D :D :D
                                                                                                Цитата Romkin @
                                                                                                Можешь реализовать этот объект на Питоне?

                                                                                                Разберусь в статье... (разобрался) Так прочитал. А теперь по поводу реализации на Python...
                                                                                                1) Отдельные элементы строки в Python неизменны. Если надо то меняем всю строку целиком.
                                                                                                2)В Python "от греха" нет указателей на память как таковых. Они есть но в спрятанном от глаз виде.. короче с извратом до указателей добраться можно вот только смысл? Python позволяет подобное и без всяких классов реализовать ;)
                                                                                                ExpandedWrap disabled
                                                                                                  def print_SetOf(SetOf):
                                                                                                      """Жуткая функция печатаем SetOf"""
                                                                                                      for variable in range(0,len(SetOf)):
                                                                                                          print SetOf[variable]
                                                                                                  #Присвоили
                                                                                                  str=['a',2,3]
                                                                                                  #Вывели
                                                                                                  print "Первый вывод"
                                                                                                  print_SetOf(str)
                                                                                                  #добавили элемент
                                                                                                  str.append('Вася супер стар')
                                                                                                  print "Второй..."
                                                                                                  print_SetOf(str)
                                                                                                  str.remove('a')
                                                                                                  print "Третий..."
                                                                                                  print_SetOf(str)

                                                                                                А теперь ее вывод
                                                                                                ExpandedWrap disabled
                                                                                                  Первый вывод
                                                                                                  a
                                                                                                  2
                                                                                                  3
                                                                                                  Второй...
                                                                                                  a
                                                                                                  2
                                                                                                  3
                                                                                                  Вася супер стар
                                                                                                  Третий...
                                                                                                  2
                                                                                                  3
                                                                                                  Вася супер стар


                                                                                                Цитата Shaggy @
                                                                                                она должна быть Ordinal type, а в последних версиях Delphi и Set Of и даже Class(?)

                                                                                                Хвала последней Delphi :) А в Python оно от рождения :P Я последнюю Delphi не стал ставить ибо JEDI components пока (по моему) нет под .NET

                                                                                                Цитата Shaggy @
                                                                                                давай с нуля, а? например умножение матриц...

                                                                                                Накладно это... да и к чему? Я тут при чем 8) что в Delphi нет класса нормальных матриц? Обьясни глубокий смысл создания того что и так существует проверенно не одним программером и прекрасно справляется со своими обязанностями? (блин привыкли по виндовзу...) :whistle: И потом честно говоря лень мне делать все с нуля... Во Shaggy а давай ты с нуля System, Math, Variants или еще какой unit по выбору перепишешь <_< ?

                                                                                                Цитата Shaggy @
                                                                                                накладные расходы на эти "красивости" каковы?

                                                                                                Python – интерпретатор. (те время исполнения кода)

                                                                                                Цитата Smike @
                                                                                                Из-за всех эти приблуд терять на производительности и используемой памяти?

                                                                                                Smike тебе критична скорость работы твоего проекта? Тогда только чистый ассемблер ибо он и только он самый быстрый в скорости по сравнению с чем угодно. Мне говоря откровенно по большему счету наплевать за 0,1 сек. или за 0,5 секунд выполнится мой код. Зато я точно уверен в том что мой код будет без изменений работать на всех осях под которые существует интерпретатор Python.

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

                                                                                                Smike – Python is NOT компилятор is интерпретатор! И он кстати реализован не только на С еще есть Jython - Python реализованный на Java...

                                                                                                Smike разорви меня в клочья!!!
                                                                                                ExpandedWrap disabled
                                                                                                  #simple example for Smike
                                                                                                  A="ПРЕВЕД"
                                                                                                  B="Я МЕДВЕД"
                                                                                                  #вывели на печать A потом -:- и B
                                                                                                  print A,'-:-',B
                                                                                                  #что характерно поменяли содержимое A B местами
                                                                                                  A,B= B,A #<<<This is Python Power
                                                                                                  #опять вывели на печать A потом -:- и B
                                                                                                  print A,'-:-',B

                                                                                                и вывод...
                                                                                                ExpandedWrap disabled
                                                                                                  ПРЕВЕД -:- Я МЕДВЕД
                                                                                                  Я МЕДВЕД -:- ПРЕВЕД

                                                                                                Давай по существу можешь проще реализовать тоже самое на Delphi?
                                                                                                  Цитата best_lamer @
                                                                                                  да и к чему? Я тут при чем 8) что в Delphi нет класса нормальных матриц? Обьясни глубокий смысл создания того что и так существует проверенно не одним программером и прекрасно справляется со своими обязанностями?

                                                                                                  мы же языки сравниваем или
                                                                                                  vcl&rtl vs что там в Питоне

                                                                                                  вот и покажи так сказать всю мощь :)
                                                                                                    Цитата best_lamer @
                                                                                                    Хвала последней Delphi :) А в Python оно от рождения :P Я последнюю Delphi не стал ставить ибо JEDI components пока (по моему) нет под .NET

                                                                                                    А что, по твоему в последней BDS только .Net? У меня Delphi for .Net даже не стоит. JEDI JCL стоит, установилось нормально и легко. JVCL не пользуюсь, уж больно overhead большой, а результат маленький.
                                                                                                    Цитата best_lamer @
                                                                                                    Smike тебе критична скорость работы твоего проекта? Тогда только чистый ассемблер ибо он и только он самый быстрый в скорости по сравнению с чем угодно.

                                                                                                    Для меня критична не столько скорость, а результирующий вектор из нескольких составляющих:
                                                                                                    1) скорость разработки
                                                                                                    2) удобство разработки
                                                                                                    3) скорость и эффективность работы результата разработки
                                                                                                    Пока этот вектор указывает в сторону Delphi.
                                                                                                    Цитата best_lamer @
                                                                                                    И он кстати реализован не только на С еще есть Jython - Python реализованный на Java...

                                                                                                    Все, можно вешаться. Java для меня неприличное слово.
                                                                                                      Цитата Shaggy @
                                                                                                      вот и покажи так сказать всю мощь

                                                                                                      Считай что уговорил :D
                                                                                                      Создаю матрицу вида (это кстати результат работы программы)
                                                                                                      ExpandedWrap disabled
                                                                                                        0 0
                                                                                                        1 1
                                                                                                        2 2
                                                                                                        3 3
                                                                                                        4 4

                                                                                                      Собственно
                                                                                                      ExpandedWrap disabled
                                                                                                        #! /usr/bin/python
                                                                                                        """array.py -- A array example.
                                                                                                        """
                                                                                                        class Array:
                                                                                                            def __init__(self, x, y):
                                                                                                                self.x = x
                                                                                                                self.y = y
                                                                                                         
                                                                                                        tmp = []
                                                                                                        for i in range(5):
                                                                                                            obj = Array(i, i)
                                                                                                            tmp.append(obj)
                                                                                                         
                                                                                                        for tmpsub in tmp:
                                                                                                            #print "X is", tmpsub.x, "Y is", tmpsub.y
                                                                                                            print tmpsub.x, tmpsub.y

                                                                                                      Дальше чего с массивом делать будем?
                                                                                                      И Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру? Потому как я щаз сделал то же самое :) те это массивы с использованием только самого чистого Python без библиотек... все равно что без array...
                                                                                                        Цитата best_lamer @
                                                                                                        Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру?

                                                                                                        Цитата best_lamer @
                                                                                                        все равно что без array...
                                                                                                        Без модуля Math - да что угодно!
                                                                                                        А вот без System (впрочем, как и без array) - это уже, извини, бред. System - не есть модуль. Это, так сказать, часть самого языка Delphi - его отличие от Object Pascal ;)
                                                                                                          Цитата best_lamer @
                                                                                                          Разберусь в статье... (разобрался) Так прочитал. А теперь по поводу реализации на Python...
                                                                                                          1) Отдельные элементы строки в Python неизменны. Если надо то меняем всю строку целиком.
                                                                                                          2)В Python "от греха" нет указателей на память как таковых. Они есть но в спрятанном от глаз виде.. короче с извратом до указателей добраться можно вот только смысл? Python позволяет подобное и без всяких классов реализовать

                                                                                                          Прочитал, но не разобрался. Где там у меня указатели? Я там в классе только со строкой общаюсь, специально взял ее для простоты. Ты прочитал только введение? Оно несущественно. Если проблемы с доступом к отдельному символу строки - ничто не мешает реализовать динамическую таблицу, например, чисел. Стек - он и есть стек. А смысл в том, что в приведенной структуре время добавления-удаления элемента O(1) (в смысле амортизационной стоимости).
                                                                                                          Вопрос: а ты знаешь, какова стоимость вставки элемента в set, время поиска элемента в наборе и тд?
                                                                                                          Я не говорю, и не говорил, что Delphi - крутой язык. Я говорю, что Питон отнюдь не превосходит ни Delphi, ни Java, ни C, ни какой либо другой язык из своей категории. У него есть своя ниша, и говорить, что это - замена всему, глупость.
                                                                                                          Этот язык неплох для обучения программированию, и написания небольших программ, например, лабораторных работ. Для чего-то серьезного он не подходит, он небезопасен.
                                                                                                          И говорить, что Питон - язык более высокго уровня, чем Delphi - тоже глупость. Языком более высокого уровня, чем процедурные, является, например, SQL. И разница видна сразу.
                                                                                                            Цитата Testudo @
                                                                                                            Без модуля Math - да что угодно!

                                                                                                            Да я не о том я решил операции с массивом без использования массивов (запись + стек) на Delphi без Math вполне можно обойтись особенно если сама программа не сильно привяна к математике.

                                                                                                            Цитата Romkin @
                                                                                                            Стек - он и есть стек.

                                                                                                            Вот именно и на Python городить для стека класс это бред. «Динамическая таблица»
                                                                                                            ExpandedWrap disabled
                                                                                                              a=[]
                                                                                                              a.append("q")
                                                                                                              a.append("r")
                                                                                                              print a

                                                                                                            ExpandedWrap disabled
                                                                                                              >>> ['q', 'r']

                                                                                                            И все вот тебе стек! Надо тебе строки?
                                                                                                            ExpandedWrap disabled
                                                                                                              a.append("тут свою строку")

                                                                                                            Надо вложенный стек в стеке (массив) сделать?
                                                                                                            ExpandedWrap disabled
                                                                                                              a.append(переменная_с_вложенным_стеком)

                                                                                                            Что не так? К примеру разберу по косточкам то что я сделал для массива
                                                                                                            Класс Array реализует аналог типа Запись из Delphi.
                                                                                                            Цитата best_lamer @
                                                                                                            class Array:{на самом деле это банальная Запись}
                                                                                                            def __init__(self, x, y):
                                                                                                            self.x = x
                                                                                                            self.y = y

                                                                                                            Этот кусок создает переменную tmp (типа стек из записей) и заполняет ее числами...
                                                                                                            Цитата best_lamer @
                                                                                                            tmp = []
                                                                                                            for i in range(5):{for i:=0 to 5 do}
                                                                                                            obj = Array(i, i) {заполняем запись переменной от 0 до 4}
                                                                                                            tmp.append(obj){tmp – стек ! я могу добавлять удялять и тд Все как у стека}
                                                                                                            {в данном случае append добавление в стек}

                                                                                                            Ну и вывод на печать
                                                                                                            Цитата best_lamer @
                                                                                                            for tmpsub in tmp:
                                                                                                            print tmpsub.x, tmpsub.y


                                                                                                            Цитата Romkin @
                                                                                                            а ты знаешь, какова стоимость вставки элемента в set, время поиска элемента в наборе и тд?

                                                                                                            :blink: А где у меня были множества?

                                                                                                            Цитата Romkin @
                                                                                                            Я не говорю, и не говорил, что Delphi - крутой язык. Я говорю, что Питон отнюдь не превосходит ни Delphi, ни Java, ни C, ни какой либо другой язык из своей категории. У него есть своя ниша, и говорить, что это - замена всему, глупость.

                                                                                                            Опять пустые слова... Я и не говорю что он замена всему. Он элегантнее красивее проще и на голову выше всех языков. Считаешь иначе? Я приводил кучу примеров и Смайка просил «обломать» меня... Не надо классов записей массивов и скорости. Просто есть 2 переменные поменяй их значения местами и все это покажет какой из языков более изящен ! На Delphi для обмена нужна лишняя переменная а это лишние затраты памяти и быстродействия! Или я не прав? И по тенденции развития... то к чему Delphi только приходит в Python есть от рождения.
                                                                                                            Еще по поводу Delphi VCL обожает Strings (и ему подобное) тогда как математический аппарат с числами в виде строк считать не умеет... те характерно для Delphi следующая схема:
                                                                                                            ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД
                                                                                                            Не беря во внимание ввод/вывод вопрос какого лешего я должен уделять внимание не тому что меня интересует в первую очередь (собственно расчету) а преобразованию типов? И ли в самом процессе преобразования типов сокрыт какой то тайный сакральный смысл постичь который обязанность каждого программиста?
                                                                                                            На Python преобразованием типов я не занимаюсь если это мне не нужно по самому алгоритму. :whistle: :tong:

                                                                                                            Цитата Romkin @
                                                                                                            Для чего-то серьезного он не подходит, он небезопасен.

                                                                                                            Пример в студию.
                                                                                                              Цитата best_lamer @
                                                                                                              На Delphi для обмена нужна лишняя переменная а это лишние затраты памяти и быстродействия!

                                                                                                              Ох, как заговорил :lol: А что, Питон такой чудесный, что умеет обменивать значение переменных без дополнительных переменных? Если они скрыты от глаз программиста, то это не значит, что их нет.
                                                                                                              Цитата best_lamer @
                                                                                                              Еще по поводу Delphi VCL обожает Strings (и ему подобное) тогда как математический аппарат с числами в виде строк считать не умеет... те характерно для Delphi следующая схема:
                                                                                                              ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД

                                                                                                              Интересно, на чем основан такой вывод. Для хранения нестроковых данных есть TList.

                                                                                                              Ты вот лучше расскажи, как можно на Питоне например написать компонент вроде VCL?

                                                                                                              Добавлено
                                                                                                              Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия.
                                                                                                                Цитата Smike @
                                                                                                                Ох, как заговорил А что, Питон такой чудесный, что умеет обменивать значение переменных без дополнительных переменных?
                                                                                                                А я умею :tong: Правда, только целочисленные ;)
                                                                                                                ExpandedWrap disabled
                                                                                                                  procedure TForm1.Button1Click(Sender: TObject);
                                                                                                                  var s1,s2:DWord;
                                                                                                                  begin
                                                                                                                  s1:=10; s2:=55;
                                                                                                                  ShowMessage(IntToStr(s1)+':'+IntToStr(s2));
                                                                                                                  s1:=s1 xor s2;
                                                                                                                  s2:=s1 xor s2;
                                                                                                                  s1:=s1 xor s2;
                                                                                                                  ShowMessage(IntToStr(s1)+':'+IntToStr(s2));
                                                                                                                  end;
                                                                                                                  Цитата Smike @
                                                                                                                  А что, Питон такой чудесный
                                                                                                                  :yes:

                                                                                                                  Цитата Smike @
                                                                                                                  Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия.

                                                                                                                  :yes: Вот и я о том же :P

                                                                                                                  Цитата Smike @
                                                                                                                  Ты вот лучше расскажи, как можно на Питоне например написать компонент вроде VCL?

                                                                                                                  Я лучше покажу ладно?
                                                                                                                  Могу (лично тебе по секрету, блату и за огромные деньги) рассказать как поиметь любой компонент VCL Delphi из Python-a.

                                                                                                                  Добавлено
                                                                                                                  Смайк :yes: я об этом ;)
                                                                                                                  Цитата Smike @
                                                                                                                  ВВОД (строка)- ПРЕОБРАЗОВАНИЕ СТРОКА->ЧИСЛО – Собственно расчет – ПРЕОБРАЗОВАНИЕ ЧИСЛО -> СТРОКА – ВЫВОД


                                                                                                                  "ВВОД"
                                                                                                                  Цитата Testudo @
                                                                                                                  s1:=10; s2:=55;


                                                                                                                  "ПРЕОБРАЗОВАНИЕ"
                                                                                                                  Цитата Testudo @
                                                                                                                  IntToStr(s1)+':'+IntToStr(s2)


                                                                                                                  "Собственно расчет"
                                                                                                                  Цитата Testudo @
                                                                                                                  s1:=s1 xor s2;
                                                                                                                  s2:=s1 xor s2;
                                                                                                                  s1:=s1 xor s2;


                                                                                                                  И все это в Delphi сплошь и рядом :ph34r:
                                                                                                                    Цитата best_lamer @
                                                                                                                    Цитата (Smike @ Сегодня, 12:31)
                                                                                                                    Кстати, есть способо обмена чисел без дополнительных переменных, но там 3 действия.

                                                                                                                    :yes: Вот и я о том же :P


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

                                                                                                                      А вообще, сравнивать эти два языка - бессмысленно. Они разных уровней.
                                                                                                                      Таким же манером можно сравнивать и delphi и ассемблером. Простая операция на делфи c:=a+b; на ассемблере будет иметь огромный вид (ведь кроме самого сложения нужно еще учитавать возможность переполнения). С другой стороны, если я знаю наверняка, что переполнения не будет, то код на ассемблере это упростит. А вот делфи я никак не заставлю не делать эту проверку ;)
                                                                                                                        Цитата Testudo @
                                                                                                                        А вот делфи я никак не заставлю не делать эту проверку

                                                                                                                        Ну почему? Есть же директива компилятора, check overflow. Другое дело, что всегда все рекомендуется проверять :)
                                                                                                                          Цитата Testudo @
                                                                                                                          Они разных уровней.
                                                                                                                          :yes:

                                                                                                                          Я думаю так если продолжать дальше конструктивно то другое дело а так как разговор скатывается в холивар есть смысл продолжать в холиваре это моё мнение.
                                                                                                                            Цитата best_lamer @
                                                                                                                            Стек - он и есть стек.

                                                                                                                            Вот именно и на Python городить для стека класс это бред. «Динамическая таблица»


                                                                                                                            Дальше говорить бессмысленно. То ты говоришь, что все, что есть - это классы, то "городить класс". Я не просил тебя написать именно красс, я просил реализацию абстрактной структуры данных "динамическая таблица". Это структура обеспечивает хранение информации изменяемого размера, обеспечивая среднее время вставки/удаления элемента O(1), за счем использования двойного размера памяти. А что в ней лежит - да что угодно, например, очередь с приоритетами на основе двоичной кучи.
                                                                                                                            Если ты говоришь, что такая структура (та, что в статье) уже есть - дай описание, с асимптотикой.
                                                                                                                            Если тебя это не привлекает - реализуй что-нибудь другое, например, биномиальную кучу. Сам. Код для нее найти просто :)

                                                                                                                            Цитата best_lamer @
                                                                                                                            Для чего-то серьезного он не подходит, он небезопасен.

                                                                                                                            Пример в студию.


                                                                                                                            Ну какой пример? Того факта, что нет контроля типов - уже достаточно, чтобы я ЭТО не применял. Думаешь, почему я в свое время выбрал именно Паскаль? Потому что в нем, в отличие от С и Бейсика жесткий контроль типов. Потом, в С++, контроль все-таки ввели.
                                                                                                                            И отсутствие контроля типов нравится только новичкам. Когда начинается серьезная работа - сразу начинает действовать принцип "чем больше я отловлю ошибок на этапе компиляции - тем меньше мне придется ловить багов при выполнении".

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

                                                                                                                            Добавлено
                                                                                                                            Я уже не говорю о том, что блоки определяются отступами. Для учашегося - это нормально, прививает хороший стиль. Для меня - циклы-то иногда длинными бывают, чуть сдвинул в конце не туда, что, трассировать? Листинг проверять трудненько будет.
                                                                                                                              Чувствую пора в Холивар. :wacko:

                                                                                                                              Парень спросил про то,изучать ли ему Дельфи.
                                                                                                                              Вот лично мой ответ и дмуаю его многие поддержат:
                                                                                                                              Языки на основе С,на данный момент более востребованы,нежели ветка языков основанных на Pascal'е.
                                                                                                                              (я уже не говорю про такой *****зм как линия Basic)
                                                                                                                              Но C,соответственно сложнее.
                                                                                                                              Сообщение отредактировано: Искандер В. -
                                                                                                                                Цитата Romkin @
                                                                                                                                я просил реализацию абстрактной структуры данных "динамическая таблица"

                                                                                                                                Она приведена! :ph34r: :blink:

                                                                                                                                Цитата Romkin @
                                                                                                                                То ты говоришь, что все, что есть - это классы, то "городить класс".

                                                                                                                                Пойми для этой задачи на Delphi без класса никак. На Python как я уже говорил переменная=класс которому доступны уже предопределенные методы. Есть стандартные классы: очереди, стека. И для их реализации не нужно создавать еще что то эти классы по дефолту доступны любой переменной (точно также как и все методы этих классов может использовать любая переменная). Сама переменная может хранить элемент любого мыслимого типа (точто также и отдельный элемент стека может содержать что угодно: текст, еще один стек... я не знаю) В общем "Python Tutorial" глава "5. Data Structures" если вас не затруднит. А потом задавайте вопросы :whistle:

                                                                                                                                Цитата Romkin @
                                                                                                                                Для чего-то серьезного он не подходит, он небезопасен.
                                                                                                                                Пример в студию.
                                                                                                                                Ну какой пример?

                                                                                                                                Если человек говорит "он небезопасен" то он подразумевает что на этоя языке можно совершить нечто потенциально опасное... так? Меня это естесственно заинтересовало и я попросил привести "Пример в студию." бог с ним с Python-ом а вообще алгоритм реализация которого несет угрозу чему либо... невозможна по каким либо причинам... как еще понятнее? И я получаю ответ "Ну какой пример?". Пример реализация которого без явного контроля типов на Python станет "небезопасной". Так устроит?

                                                                                                                                А по поводу этого: :whistle:
                                                                                                                                Цитата Romkin @
                                                                                                                                И не понимаю я смысла сравнивать скриптовый язык, изначально созданный для обучения, с профессиональным компилятором. У них просто весовые категории разные.

                                                                                                                                Давай сюда
                                                                                                                                PS Кстати рекомендую ознакомится :)
                                                                                                                                  Примеры..
                                                                                                                                  Ну тревиальный:

                                                                                                                                  TOKEN = 'одвсводаовд'
                                                                                                                                  print T0KEN

                                                                                                                                  подобную ошибку я на VBA два часа искал. Потом узнал про Option Explicit и нашел мгновенно...
                                                                                                                                    Цитата best_lamer @
                                                                                                                                    Цитата (Romkin @ Сегодня, 15:13)
                                                                                                                                    я просил реализацию абстрактной структуры данных "динамическая таблица"

                                                                                                                                    Она приведена!


                                                                                                                                    Ты всегда читаешь только первый абзац? Вот смотри, что я написал во втором:

                                                                                                                                    Цитата Romkin @
                                                                                                                                    Если ты говоришь, что такая структура (та, что в статье) уже есть - дай описание, с асимптотикой.

                                                                                                                                    :wall:

                                                                                                                                    Цитата best_lamer @
                                                                                                                                    Есть стандартные классы: очереди, стека.

                                                                                                                                    Есть. Какой расход памяти и какая асимптотика то есть какие затраты на вставку/извлечение?
                                                                                                                                    В STL это тоже все есть. Но когда я спрашиваю программиста С++ об этом, он мне четко отвечает. Разницу чувствуешь?

                                                                                                                                    Цитата best_lamer @
                                                                                                                                    Пример реализация которого без явного контроля типов на Python станет "небезопасной".

                                                                                                                                    Я говорил о небезопасности для программиста, а не AV. Это несколько разные вещи. Что мне мешает в Питоне ошибиться в названии переменной, и потом пару часов искать ошибку? Что мне мешает ошибится в том, какой на данный момент тип имеет данная переменная, и получить из--за этого неверный результат?

                                                                                                                                    В общем, диалог абсолютно пустой.
                                                                                                                                      Цитата best_lamer @
                                                                                                                                      Пойми для этой задачи на Delphi без класса никак.

                                                                                                                                      Где ты такой чуши поднабрался? Без класса подобное тоже очень легко реализуется. Я писал в свое время матричную арифметику на TP5, без всяких классов. И матрицы у меня были размерностью, если память не изменяет, до 20000х20000 элементов типа double (здесь нет лишних ноликов!). Проблемы были в том, чтобы найти машину с подходящим диском, но никак не в отсутствии ООП.
                                                                                                                                        Цитата Romkin @
                                                                                                                                        Что мне мешает в Питоне ошибиться в названии переменной, и потом пару часов искать ошибку?

                                                                                                                                        Сам Python ;)

                                                                                                                                        Цитата jack128 @
                                                                                                                                        Примеры..
                                                                                                                                        Ну тревиальный:

                                                                                                                                        TOKEN = 'одвсводаовд'
                                                                                                                                        print T0KEN


                                                                                                                                        jack128 Для удобства я для ВАС даже строки пронумеровал!
                                                                                                                                        ExpandedWrap disabled
                                                                                                                                          TOKEN = 'одвсводаовд'#Строка 1
                                                                                                                                          print T0KEN#Строка 2

                                                                                                                                        Запускаю на выполнение читаю:
                                                                                                                                        Цитата
                                                                                                                                        Отлаживаемая программа выбросила исключение unhandled NameError
                                                                                                                                        "name 'T0KEN' is not defined"
                                                                                                                                        Файл: /'тут был путь'/temp.py, строка 2

                                                                                                                                        С этим вопрос исчерпан? (перед запуском на исполнение идет собственно процесс отладки и поиска ошибок и в этом плане Python дааааааалеко не Васёк) Еще идеи касательно «нетривиальных» подводных камней есть?

                                                                                                                                        Цитата Romkin @
                                                                                                                                        Я говорил о небезопасности для программиста, а не AV.

                                                                                                                                        Для программиста так для программиста давай!!!

                                                                                                                                        Цитата Romkin @
                                                                                                                                        Есть. Какой расход памяти и какая асимптотика то есть какие затраты на вставку/извлечение?
                                                                                                                                        В STL это тоже все есть. Но когда я спрашиваю программиста С++ об этом, он мне четко отвечает. Разницу чувствуешь?

                                                                                                                                        Ни этим «Какой расход памяти» ни этим «какие затраты на вставку/извлечение» специально не интересовался. Но думаю что если пойти на этот сайт то при желании эту информацию можно без проблем отыскать. (у мну диалап поэтому прошу прощения но искать для ВАС у меня просто нет времени)
                                                                                                                                          Цитата best_lamer @
                                                                                                                                          И Shaggy кстати как там по поводу примеров на делфи без модулей System, Math к примеру?

                                                                                                                                          примеры чего?
                                                                                                                                          говори, напишу...
                                                                                                                                            Цитата Shaggy @
                                                                                                                                            примеры чего?
                                                                                                                                            говори, напишу...

                                                                                                                                            Да хотя бы те же массивы без Array ;)
                                                                                                                                              непонял :blink:

                                                                                                                                              начиналось то с чего?
                                                                                                                                              сравниваем возможности языка и неиспользуем модули, DLL etc.
                                                                                                                                              т.к. я и в Delphi могу например

                                                                                                                                              Uses
                                                                                                                                              Чего-то там
                                                                                                                                              ...
                                                                                                                                              супер-пупер действие

                                                                                                                                              ты имитируешь работу с массивом, потому что его поддержки нет в Питоне,
                                                                                                                                              но в Delphi-то Array встроен, это возможность языка, а не фишка какой-нибудь либы...
                                                                                                                                                Цитата Shaggy @
                                                                                                                                                непонял
                                                                                                                                                начиналось то с чего?
                                                                                                                                                сравниваем возможности языка и неиспользуем модули, DLL etc.
                                                                                                                                                т.к. я и в Delphi могу например
                                                                                                                                                Uses
                                                                                                                                                Чего-то там
                                                                                                                                                ...
                                                                                                                                                супер-пупер действие
                                                                                                                                                ты имитируешь работу с массивом, потому что его поддержки нет в Питоне,
                                                                                                                                                но в Delphi-то Array встроен, это возможность языка, а не фишка какой-нибудь либы...

                                                                                                                                                Смотрим... программа с матрицами из см Сообщ. #29 от 8.08.06, 16:50 Реализована при помощи двух внешних модулей (Matrix и Numeric) из библиотеки Numerical-Python вслед за этим понеслись обвинения вида «А ты обманщик и мы тожа так можем с нашими uses-ами... Даешь чистый Python» Чистый Python? Нате вам чистый Python я написал реализацию матриц без единого внешнего модуля см Сообщ. #50 от Вчера, 21:38 Оцени еще раз то что именно я сделал. В Delphi это равносильно работе с матрицами без использования вообще чего либо в секции uses!

                                                                                                                                                «ты имитируешь работу с массивом, потому что его поддержки нет в Питоне» Не совсем точно вернее будет так «ты имитируешь работу с массивом, потому что в чистом Python без вредных внешних модулей нет прямого аналога Delphi-йскому типу Array»

                                                                                                                                                Shaggy Давайте будем до конца честными друг с другом!
                                                                                                                                                Мне запретили пользоваться какими то ни было библиотеками/модулями и тд Я предоставил решение проблемы удовлетворяющее поставленному условию. Т.е. отказавшись от вообще всего внешнего только средствами встроенными во все интерпретаторы Python я тем не менее решил задачу. А теперь пара вопросов...
                                                                                                                                                Кроме всего прочего файл system.pas является модулем в представлении языка Pascal?
                                                                                                                                                (Да безусловно!)
                                                                                                                                                А если является то наверное будет честно решить простенькую задачу с матрицами на Pascal/Delphi отказавшись от всего что предоставляют нам внешние модули/библиотеки и т.п.?
                                                                                                                                                В Python нет аналога файлу system.pas в Delphi! Т.е. в Python нет какой бы то ни было библиотеки/модуля которая загружалась бы автоматически при старте и была бы доступна любому приложению по умолчанию. И если вначале программы нет конструкции вида «from название_либы import *» значит эта программа использует исключительно то что умеет интерпретатор самого Python (а сам он надо сказать довольно беден на встроенные функции).

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

                                                                                                                                                ЗЫ: Название Python ничего общего со змеёй не имеет!
                                                                                                                                                  Чтоли выдумать задачу на которой питон сольет? :whistle: Какое максимальное значение факториала можно вычислить на питоне?
                                                                                                                                                    Кстати, а как в дельфах обходят ограниченную ссылочную объектную модель? Вот в c++ есть автоматические объекты, т.е., можно из функции вернуть объект, после чего он сразу же будет уничтожен. В c#, java, и в (afaik) почти всех интерпретируемых языках --- сборка мусора. А в дельфе нет ни автоматических объектов, ни сборки мусора.
                                                                                                                                                    Поясню на примере:
                                                                                                                                                    cpp:
                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                      class MyClass { ... };
                                                                                                                                                       
                                                                                                                                                      MyClass my_func(){return MyClass();}
                                                                                                                                                       
                                                                                                                                                      int my_func2(MyClass mc){...}
                                                                                                                                                       
                                                                                                                                                      int main()
                                                                                                                                                      {
                                                                                                                                                        my_func2(my_func());
                                                                                                                                                      }

                                                                                                                                                    Утечки ресурсов нет --- все объекты уничтожены.
                                                                                                                                                    c#:
                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                      class MyClass { ... }
                                                                                                                                                       
                                                                                                                                                      MyClass my_func(){return new MyClass();}
                                                                                                                                                       
                                                                                                                                                      int my_func2(MyClass mc){...}
                                                                                                                                                       
                                                                                                                                                      int main()
                                                                                                                                                      {
                                                                                                                                                        my_func2(my_func());
                                                                                                                                                      }

                                                                                                                                                    Утечки также нет --- все приберет сборщик.
                                                                                                                                                    delphi:
                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                      type MyClass = class ... end;
                                                                                                                                                      function my_func: MyClass; begin result := MyClass.Create(); end;
                                                                                                                                                       
                                                                                                                                                      procedure my_func2(mc: MyClass); begin ... end;
                                                                                                                                                       
                                                                                                                                                      begin
                                                                                                                                                        my_func2(my_func);
                                                                                                                                                      end.

                                                                                                                                                    А здесь --- утечка. что делают дельфисты в таких случаях? Пользуются временными переменными для сохранения ссылок? Но это моветон.
                                                                                                                                                    Сообщение отредактировано: mo3r -
                                                                                                                                                      Цитата best_lamer @
                                                                                                                                                      С этим вопрос исчерпан?
                                                                                                                                                      А если так:
                                                                                                                                                      ExpandedWrap disabled
                                                                                                                                                        TOKEN = 'одвсводаовд'#Строка 1
                                                                                                                                                        T0KEN = 'alwejkhgfK'#Строка 2
                                                                                                                                                        print TOKEN#Строка 3
                                                                                                                                                      Что будет? В первой и третьей строках буква O, во второй - цифра 0
                                                                                                                                                        Цитата Smike @
                                                                                                                                                        Чтоли выдумать задачу на которой питон сольет? Какое максимальное значение факториала можно вычислить на питоне?


                                                                                                                                                        ExpandedWrap disabled
                                                                                                                                                          #! /usr/bin/python
                                                                                                                                                          """factorial.py -- Выясняем и выводим максимально
                                                                                                                                                          возможный факториал для Python.
                                                                                                                                                          """
                                                                                                                                                          #Это сам факториал. Ни функций (def) ни циклов (for, while) Жутко не так ли? ;)
                                                                                                                                                          fac = lambda x: x-1+abs(x-1) and fac(x-1)*x or 1    
                                                                                                                                                          #Проверка факториала
                                                                                                                                                          print "fac(0)=", fac(0), "fac(1)=", fac(1), "fac(10)=", fac(10)
                                                                                                                                                          #Этим куском кода выяснял максимальный факториал
                                                                                                                                                          for var in range(0,1000):
                                                                                                                                                              try:#пробуем посчитать наш факториал для очередной var
                                                                                                                                                                  fac(var)
                                                                                                                                                              except RuntimeError:#ошибка??? знач достигнут максимум целых!
                                                                                                                                                                  print var#Печатаем переменную
                                                                                                                                                          #И выяснил что он равен fac(993) дальше не хватает :'(  
                                                                                                                                                          print "Максимально возможный факториал в Python выяснен опытным путем", fac(993)


                                                                                                                                                        ExpandedWrap disabled
                                                                                                                                                          fac(0)= 1 fac(1)= 1 fac(10)= 3628800
                                                                                                                                                          994
                                                                                                                                                          995
                                                                                                                                                          996
                                                                                                                                                          997
                                                                                                                                                          998
                                                                                                                                                          999
                                                                                                                                                          Максимально возможный факториал в Python выяснен опытным путем
                                                                                                                                                          (вырезано в целях экономии места)


                                                                                                                                                        Smike :huh: больше чем 993! Python увы не берет.
                                                                                                                                                          Цитата best_lamer @
                                                                                                                                                          Цитата (jack128 @ Сегодня, 18:00)
                                                                                                                                                          Примеры..
                                                                                                                                                          Ну тревиальный:

                                                                                                                                                          TOKEN = 'одвсводаовд'
                                                                                                                                                          print T0KEN


                                                                                                                                                          jack128 Для удобства я для ВАС даже строки пронумеровал!

                                                                                                                                                          Возьми что-нибудь менее трвиальное. Например вот что:
                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                            #Тут у нас начало программы
                                                                                                                                                            СodeVar = "My first cool programm!!!"
                                                                                                                                                            print CodeVar

                                                                                                                                                          Скопируй этот код и попытайся запустить.
                                                                                                                                                            Цитата trainer @
                                                                                                                                                            TOKEN = 'одвсводаовд'#Строка 1
                                                                                                                                                            T0KEN = 'alwejkhgfK'#Строка 2
                                                                                                                                                            print TOKEN#Строка 3


                                                                                                                                                            ExpandedWrap disabled
                                                                                                                                                              >>>одвсводаовд


                                                                                                                                                            Добавлено
                                                                                                                                                            Цитата Flex Ferrum @
                                                                                                                                                            Возьми что-нибудь менее трвиальное. Например вот что:
                                                                                                                                                            #Тут у нас начало программы
                                                                                                                                                            СodeVar = "My first cool programm!!!"
                                                                                                                                                            print CodeVar

                                                                                                                                                            Взял! Выдает:

                                                                                                                                                            ExpandedWrap disabled
                                                                                                                                                              В строке 1 файла /"тут был путь"/temp.py обнаружена синтаксическая ошибка invalid syntax.


                                                                                                                                                            Скорее всего не на англ. Языке символ >С<odeVar.
                                                                                                                                                              Цитата best_lamer @
                                                                                                                                                              Скорее всего не на англ. Языке символ >С<odeVar.

                                                                                                                                                              Ай-яй-яй... Не поддерживает идентификаторы в национальных кодировках... Ай-яй-яй...
                                                                                                                                                                Smike о чего умная книжка говорит по поводу целых.

                                                                                                                                                                Г. Россум, Ф.Л.Дж. Дрейк, Д.С.Откидач
                                                                                                                                                                "Язык программирования Python"
                                                                                                                                                                Цитата
                                                                                                                                                                Целые числа реализованы с использованием типа long в С, поддерживающего числа в диапазоне от -2147483647 до 2147483647. Длинные целые имеют неоганиченную точность.


                                                                                                                                                                Добавлено
                                                                                                                                                                Цитата Flex Ferrum @
                                                                                                                                                                Ай-яй-яй... Не поддерживает идентификаторы в национальных кодировках... Ай-яй-яй...

                                                                                                                                                                Ну что поделать :( Хотя... Исходники открыты и поменять ситуацию при желании не вопрос. :yes:
                                                                                                                                                                  Возникла идея сравнить скорость работы Python и Pascal... Завтра отпишусь
                                                                                                                                                                    Цитата best_lamer @
                                                                                                                                                                    >>>одвсводаовд
                                                                                                                                                                    А я-то хотел 'alwejkhgfK', просто в написании имени "ошибся", а Python создал новую переменную. Что и требовалось доказать.

                                                                                                                                                                    Добавлено
                                                                                                                                                                    P.S. Я эти восторги по поводу "переменные не нужно объявлять...", "куча операторов в одной строке..." и пр. проходил с Васиком в школьные годы лет 15 назад.
                                                                                                                                                                      Цитата best_lamer @
                                                                                                                                                                      Smike :huh: больше чем 993! Python увы не берет.

                                                                                                                                                                      Ха-ха, я и говорил, что Питон сольет :lol: :P
                                                                                                                                                                      В Дельфи успешно вычислен факториал:
                                                                                                                                                                      1754!=1.97926189010501006E4930
                                                                                                                                                                      :rolleyes:

                                                                                                                                                                      Добавлено
                                                                                                                                                                      Почти в 2 раза меньший факториал питон позволяет вычислить. Отсюда прикинь накладные расходы памяти.

                                                                                                                                                                      Добавлено
                                                                                                                                                                      Цитата mo3r @
                                                                                                                                                                      Кстати, а как в дельфах обходят ограниченную ссылочную объектную модель?

                                                                                                                                                                      Есть, представь себе. Интерфейсные классы, уничтожаются автоматически при выходе из зоны видимости. А сборщик мусора есть в Delphi .Net.
                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                        В Дельфи успешно вычислен факториал:
                                                                                                                                                                        1754!=1.97926189010501006E4930
                                                                                                                                                                        А с какой точностью? Все цифры числа получил? ;) Или только приблизительное значение? ;)
                                                                                                                                                                        Ты, очевидно, достиг предела значений для 80-битных чисел с плавающей точкой.
                                                                                                                                                                          Цитата trainer @
                                                                                                                                                                          Ты, очевидно, достиг предела для 80-битных чисел с плавающей точкой.

                                                                                                                                                                          Похоже на то, но на Питоне стек раньше переполнился, чем был достигнут числовой предел.
                                                                                                                                                                            Цитата Smike @
                                                                                                                                                                            Похоже на то, но на Питоне стек раньше переполнился, чем был достигнут числовой предел.
                                                                                                                                                                            Но при этом он, возможно, получил точное значение, а ты - приблизительное. :)
                                                                                                                                                                              Эксперимент был именно в этом. Увидеть, какой overhead у функций на питоне. Оказалось очень не маленький. Кстати, мой калькулятор выражений, написанный на Delphi и поддерживающий пользовательские функции, способен вычислять факториалы более 1000 вот по такой вот простой записи:
                                                                                                                                                                              Fact(X)=if(X=0,1,X*Fact(X-1))

                                                                                                                                                                              Добавлено
                                                                                                                                                                              Цитата trainer @
                                                                                                                                                                              Но при этом он, возможно, получил точное значение, а ты - приблизительное. :)

                                                                                                                                                                              Пусть best_lamer предъявит в студию :) Но что-то не верится, что в питоне реализована символьная математика.
                                                                                                                                                                              Сообщение отредактировано: Smike -
                                                                                                                                                                                Цитата Smike @
                                                                                                                                                                                В Дельфи успешно вычислен факториал:

                                                                                                                                                                                Че-то приведенное тобой число ничуть не похоже на 1754! (разве только порядком). Где, млин, все цифры в представлении? Или теперь у нас факториалы модно считать с погрешностью 1e4917?
                                                                                                                                                                                Цитата Smike @
                                                                                                                                                                                Похоже на то, но на Питоне стек раньше переполнился, чем был достигнут числовой предел.

                                                                                                                                                                                Ты вычисляешь факториал рекурсивно????
                                                                                                                                                                                Вообще-то 2000 вызовов для стека -- пустяк, даже если при это передаются аргументы типа double.
                                                                                                                                                                                Цитата Smike @
                                                                                                                                                                                Но что-то не верится, что в питоне реализована символьная математика.

                                                                                                                                                                                Я склонен верить в это.
                                                                                                                                                                                  Точное значение 1754! :
                                                                                                                                                                                  Цитата
                                                                                                                                                                                  19792618901050100553817943275326058046108068783738609324419265088819304483104993781885087202818113141758217913524290130054389296110993761638740562668086720319880427262935698693967581955224697784352253451193044258326976331156416947056438129330448484873349514829197645621239444485448239146935896153775590111732587818296459849627459353506090190816436768622149143245877010092044525541198101437008400855968372167396290739386409342170079504343421050369816262077375848019943621633226305029241453255011807874493471441613893166886404227641754874191551006952300689238289694917634254857480292477598617118146209420015426832674824141333871406874925495039833613525562230823870445067956882391043212640088433844765075222854007375218446111796167815222112204326351858486365801392825068977413837974019598184403697290305095734456302825425424297490396089928965335730526812103146098573107702157854270177199767825442749350201413946725009195057326897275290315992989551283217132625396008363704167073884773289299455292582100013318724043978115479189795971227593949165652573800863631369880751519155681479325163622535064222024958212870621175904393043175157432660314980056449083195372465368801850812660313438891900683727287156080499851709318854475428588361838558608077561856533842534855607765607448085974124739026430012766042603940126063334294969408951800845891360188126920571835980829528007267126221118070706016769334485604857435979271480748466820877760845140134685753415967851414834906224030398526042289264840718139064633795752844783420865363989924190625578167655974198326049157940574049688969089004193589389716090830734218131008966129131957926189879225124282116528253811787942373426561347414931862332774325707598266866258953712898505582752541954235181029119678206860537116008975299892598378816005948758884516848732853390040677868297719380398400159684539103544149493661512742757997238791259023428196971026399786014457708955787130038262741909485444934067286397152429195348492620793061569295999497955035973807520238150390227542055961666116335567397505885860681595664464708759869790588566250910283055947915309023011006623599422787212720197003617906390896778624442248993548532269817347298436127453343428593523698211014488961623831672721679125422422480162233314303169941078370282017550763154939294448124735222025459248459192152338866622222094242693382696902940014110295639004144232102938571622019516579854386279130979621526571568139594183937391503514375348113179344343226453251904516778689590711431923746201292184718994258818836875617505592808566870904747986422748225938961565059060448488945262135383310869478350691973916076509260188719843080022877611887930094530371446690716422697474414155722859697971677133302163877157007706880828183543941635279586566948799583204081206405735205957552603718396907735093135159909966208491364385136817450719163397789708447088542080798947822580968959390475618260158537883076663231227022722459715466857468044445609385116666080845613176171319878590448640133042036507933133070095794241996956705966524579565419900183122902900392875206590948193683297634524262359619303476934566816367389058429019243921989062035379924596319433515720853389266046668818750586768418095575146523349213476562995701297894563555064586731292996256428087793552467410803796751623176328455748919329968098375614602387058350574368505591678326528000678285594938360883617088867701785757307931706400349515323974588727667422990176927489475579845696586998687172869681340913642717877619860889917131362661581527423608077008497788947393888299908446015746204587307385712259715272719836478083370195959913933252375629799631587855609423863830879942966570112309873003348067971535233666959518187061405959686368889690637435469783137327238909818780511672362538336877756625232796700675357521076858873186315701524030762919677122009276428880757179871311186941402237479706416709629889697835076601535629501181477681046348104491866526886765336571013550227128755720005491211081737694967647877807138342235204593794157730576529153242539457357788859841046774572687944020251206370770874233249162555612982104851147953606631289224049194658324848398079356552199438385029729411333459774764622428455234946651561030864609032738009475123065021416164689270243374366813187498401308112931643696460069958446510591631916081334127578270637114107660160619925552357245305794045382493393320585630913721037991674529155111521412730118515065756666298484306487580661733916902981429567350361526982783321369746306387727818096627121448147270649707938784751870609740579767000047288320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
                                                                                                                                                                                  :D Получено с помощью моего класса длинных целых на С++. :) Так что и Python и Delphi дружно сливают C++ :D
                                                                                                                                                                                    Цитата mo3r @
                                                                                                                                                                                    delphi:

                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                      type MyClass = class ... end;
                                                                                                                                                                                      function my_func: MyClass; begin result := MyClass.Create(); end;
                                                                                                                                                                                       
                                                                                                                                                                                      procedure my_func2(mc: MyClass); begin ... end;
                                                                                                                                                                                       
                                                                                                                                                                                      begin
                                                                                                                                                                                        my_func2(my_func);
                                                                                                                                                                                      end.

                                                                                                                                                                                    А здесь --- утечка. что делают дельфисты в таких случаях? Пользуются временными переменными для сохранения ссылок? Но это моветон.


                                                                                                                                                                                    Писать так - моветон в Delphi :) Там принято и создавать, и уничтожать объект в одном блоке (в одной процедуре). Либо, как в VCL, вести список компонентов.
                                                                                                                                                                                    Но можно так
                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                      procedure my_func2(mc: MyClass); begin ... end;
                                                                                                                                                                                      begin
                                                                                                                                                                                        with my_func do
                                                                                                                                                                                        try
                                                                                                                                                                                        ... //работа с результатом функции
                                                                                                                                                                                        finally
                                                                                                                                                                                          Free; //Освободили
                                                                                                                                                                                        end;
                                                                                                                                                                                      end.

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

                                                                                                                                                                                    Добавлено
                                                                                                                                                                                    Цитата trainer @
                                                                                                                                                                                    Получено с помощью моего класса длинных целых на С++. Так что и Python и Delphi дружно сливают C++

                                                                                                                                                                                    :whistle: :yes: :lool:
                                                                                                                                                                                      Цитата
                                                                                                                                                                                      Ха-ха, я и говорил, что Питон сольет :lol: :P
                                                                                                                                                                                      В Дельфи успешно вычислен факториал:
                                                                                                                                                                                      1754!=1.97926189010501006E4930
                                                                                                                                                                                      :rolleyes:

                                                                                                                                                                                      Гон.

                                                                                                                                                                                      Цитата trainer @
                                                                                                                                                                                      :D Получено с помощью моего класса длинных целых на С++. :) Так что и Python и Delphi дружно сливают C++ :D

                                                                                                                                                                                      Еще гон.

                                                                                                                                                                                      Цитата
                                                                                                                                                                                      >>> def factorial(x):
                                                                                                                                                                                      ... a = 1
                                                                                                                                                                                      ... for i in range(1,x+1):
                                                                                                                                                                                      ... a = a * i
                                                                                                                                                                                      ... return a
                                                                                                                                                                                      ...
                                                                                                                                                                                      >>> factorial(1754)
                                                                                                                                                                                      19792618901050100553817943275326058046108068783738609324419265088819304483104993781885087202818113141758217913524290130054389296110993761638740562668086720319880427262935698693967581955224697784352253451193044258326976331156416947056438129330448484873349514829197645621239444485448239146935896153775590111732587818296459849627459353506090190816436768622149143245877010092044525541198101437008400855968372167396290739386409342170079504343421050369816262077375848019943621633226305029241453255011807874493471441613893166886404227641754874191551006952300689238289694917634254857480292477598617118146209420015426832674824141333871406874925495039833613525562230823870445067956882391043212640088433844765075222854007375218446111796167815222112204326351858486365801392825068977413837974019598184403697290305095734456302825425424297490396089928965335730526812103146098573107702157854270177199767825442749350201413946725009195057326897275290315992989551283217132625396008363704167073884773289299455292582100013318724043978115479189795971227593949165652573800863631369880751519155681479325163622535064222024958212870621175904393043175157432660314980056449083195372465368801850812660313438891900683727287156080499851709318854475428588361838558608077561856533842534855607765607448085974124739026430012766042603940126063334294969408951800845891360188126920571835980829528007267126221118070706016769334485604857435979271480748466820877760845140134685753415967851414834906224030398526042289264840718139064633795752844783420865363989924190625578167655974198326049157940574049688969089004193589389716090830734218131008966129131957926189879225124282116528253811787942373426561347414931862332774325707598266866258953712898505582752541954235181029119678206860537116008975299892598378816005948758884516848732853390040677868297719380398400159684539103544149493661512742757997238791259023428196971026399786014457708955787130038262741909485444934067286397152429195348492620793061569295999497955035973807520238150390227542055961666116335567397505885860681595664464708759869790588566250910283055947915309023011006623599422787212720197003617906390896778624442248993548532269817347298436127453343428593523698211014488961623831672721679125422422480162233314303169941078370282017550763154939294448124735222025459248459192152338866622222094242693382696902940014110295639004144232102938571622019516579854386279130979621526571568139594183937391503514375348113179344343226453251904516778689590711431923746201292184718994258818836875617505592808566870904747986422748225938961565059060448488945262135383310869478350691973916076509260188719843080022877611887930094530371446690716422697474414155722859697971677133302163877157007706880828183543941635279586566948799583204081206405735205957552603718396907735093135159909966208491364385136817450719163397789708447088542080798947822580968959390475618260158537883076663231227022722459715466857468044445609385116666080845613176171319878590448640133042036507933133070095794241996956705966524579565419900183122902900392875206590948193683297634524262359619303476934566816367389058429019243921989062035379924596319433515720853389266046668818750586768418095575146523349213476562995701297894563555064586731292996256428087793552467410803796751623176328455748919329968098375614602387058350574368505591678326528000678285594938360883617088867701785757307931706400349515323974588727667422990176927489475579845696586998687172869681340913642717877619860889917131362661581527423608077008497788947393888299908446015746204587307385712259715272719836478083370195959913933252375629799631587855609423863830879942966570112309873003348067971535233666959518187061405959686368889690637435469783137327238909818780511672362538336877756625232796700675357521076858873186315701524030762919677122009276428880757179871311186941402237479706416709629889697835076601535629501181477681046348104491866526886765336571013550227128755720005491211081737694967647877807138342235204593794157730576529153242539457357788859841046774572687944020251206370770874233249162555612982104851147953606631289224049194658324848398079356552199438385029729411333459774764622428455234946651561030864609032738009475123065021416164689270243374366813187498401308112931643696460069958446510591631916081334127578270637114107660160619925552357245305794045382493393320585630913721037991674529155111521412730118515065756666298484306487580661733916902981429567350361526982783321369746306387727818096627121448147270649707938784751870609740579767000047288320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L


                                                                                                                                                                                      А сколько времени мессир писали свой класс?

                                                                                                                                                                                      Добавлено
                                                                                                                                                                                      Я бы предъявил и факториал 17540, только вот форум, зараза такая, говорит, что сообщение слишком длинное.
                                                                                                                                                                                      Сообщение отредактировано: Ho Im -
                                                                                                                                                                                        Цитата Ho Im @
                                                                                                                                                                                        А сколько времени мессир писали свой класс?
                                                                                                                                                                                        Думаю, что не больше, чем то же самое делал(и) автор(ы) Python'а :)
                                                                                                                                                                                          Возможно, но почему тогда каждый третий плюсовик должен писать свой велосипед для bignum'ов? К C++ батарейки не прилагают, что ли?
                                                                                                                                                                                            Цитата Ho Im @
                                                                                                                                                                                            Возможно, но почему тогда каждый третий плюсовик должен писать свой велосипед для bignum'ов?
                                                                                                                                                                                            Зачем? Бери мой класс и пользуйся. :) Не нравится мой класс - возьми что-нибудь другое. Выбор - это хорошо.
                                                                                                                                                                                            Откуда берется это "должен"? Может, но не обязан.
                                                                                                                                                                                            А "каждый третий плюсовик питонщик должен писать свой велосипед для" вычисления синуса?
                                                                                                                                                                                            Сообщение отредактировано: trainer -
                                                                                                                                                                                              Цитата trainer, 11.08.2006, 10:48:34, 1214679
                                                                                                                                                                                              Точное значение 1754!

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

                                                                                                                                                                                              Цитата trainer, 11.08.2006, 10:48:34, 1214679
                                                                                                                                                                                              Так что и Python и Delphi дружно сливают C++
                                                                                                                                                                                              :yes:
                                                                                                                                                                                                Цитата Змей(Чёрный) @
                                                                                                                                                                                                что-то 436 нулей в конце подозрительны... по идее, не должно бы таких чисел получиться .
                                                                                                                                                                                                А ты прикинь, сколько раз там происходит умножение на числа, кратные 10 и пары чисел, кратных 5 и 2.
                                                                                                                                                                                                  Цитата Змей(Чёрный) @
                                                                                                                                                                                                  что-то 436 нулей в конце подозрительны... по идее, не должно бы таких чисел получиться .

                                                                                                                                                                                                  А ты посчитай на бумажке.

                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                  trainer, я худший садист :)
                                                                                                                                                                                                    По вашему для Дельфи нет модулей для больших чисел? Хе :D
                                                                                                                                                                                                      Даешь войну "У кого больше библиотек"! :D
                                                                                                                                                                                                        Цитата Ho Im, 11.08.2006, 12:55:01, 1214951
                                                                                                                                                                                                        А ты посчитай на бумажке.

                                                                                                                                                                                                        хм... как-нить потом... В принтере последние два листочка, а туалетной всего три рулончика осталось... не хватит...
                                                                                                                                                                                                          Цитата Romkin @
                                                                                                                                                                                                          Писать так - моветон в Delphi :) Там принято и создавать, и уничтожать объект в одном блоке (в одной процедуре). Либо, как в VCL, вести список компонентов.
                                                                                                                                                                                                          Но можно так

                                                                                                                                                                                                          procedure my_func2(mc: MyClass); begin ... end;
                                                                                                                                                                                                          begin
                                                                                                                                                                                                          with my_func do
                                                                                                                                                                                                          try
                                                                                                                                                                                                          ... //работа с результатом функции
                                                                                                                                                                                                          finally
                                                                                                                                                                                                          Free; //Освободили
                                                                                                                                                                                                          end;
                                                                                                                                                                                                          end.


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

                                                                                                                                                                                                          э-ээ.. Этот код отличается от моего. Нужно передать в my_func2 то, что нам вернула my_func, а затем это удалить. Интересно, как это будет выглядеть с with? И сколько строчек он будет занимать? А если аргументов --- не один, а пять?
                                                                                                                                                                                                          Цитата Smike @
                                                                                                                                                                                                          Есть, представь себе. Интерфейсные классы, уничтожаются автоматически при выходе из зоны видимости.

                                                                                                                                                                                                          Можно примерчик?
                                                                                                                                                                                                            Цитата trainer @
                                                                                                                                                                                                            Даешь войну "У кого больше библиотек"! :D

                                                                                                                                                                                                            /me вспомнил CPAN и понял, что сейчас самое время появиться перловщикам
                                                                                                                                                                                                            /me еще напряг серое вещество и вспомнил Java
                                                                                                                                                                                                            /me посинел от натуги, покраснел от гнева и понял, что C# доступно такое, о чем все перечисленные выше могут только мечтать
                                                                                                                                                                                                            /me считает, что плюсовикам лучше вообще не влезать в спор "у кого больше библиотек", т. к. все плюсовые библиотеки либо костыли для действий, не предусмотренных стандартом (как boost), либо просто врапперы над сишными; категория реально нужных вещей вроде Qt очень немногочисленна
                                                                                                                                                                                                              Итак как я проводил соревнования Python vs Delphi.
                                                                                                                                                                                                              Цель измерить время работы одного алгоритма на Python и Delphi.
                                                                                                                                                                                                              Платформа
                                                                                                                                                                                                              OS: Windows XP (Build 2600: Service Pack 2)

                                                                                                                                                                                                              Borland Delphi Enterprise version 7.0 (Build 4.453)
                                                                                                                                                                                                              Кидаем компонент memo на пустую форму. Дальше собственно
                                                                                                                                                                                                              ExpandedWrap disabled
                                                                                                                                                                                                                procedure TForm1.FormCreate(Sender: TObject);
                                                                                                                                                                                                                var
                                                                                                                                                                                                                  Begin_Time, End_Time: TDateTime;
                                                                                                                                                                                                                  x,y,z: Integer;
                                                                                                                                                                                                                  r:real;
                                                                                                                                                                                                                 
                                                                                                                                                                                                                begin
                                                                                                                                                                                                                  Begin_Time:=Time;
                                                                                                                                                                                                                  for x:=0 to 100 do
                                                                                                                                                                                                                    for y:=0 to 1000 do
                                                                                                                                                                                                                      for z:=0 to 100 do
                                                                                                                                                                                                                        r:=sin(x)+cos(y)+sin(z);
                                                                                                                                                                                                                  End_Time:=Time;
                                                                                                                                                                                                                  memo1.Lines.Add('Begin_Time '+TimeToStr(Begin_Time));
                                                                                                                                                                                                                  memo1.Lines.Add('End_Time '+TimeToStr(End_Time));
                                                                                                                                                                                                                  memo1.Lines.Add('All_Time '+TimeToStr(End_Time-Begin_Time));
                                                                                                                                                                                                                end;


                                                                                                                                                                                                              Результат:
                                                                                                                                                                                                              ExpandedWrap disabled
                                                                                                                                                                                                                Begin_Time 14:31:06
                                                                                                                                                                                                                End_Time 14:31:09
                                                                                                                                                                                                                All_Time 0:00:03


                                                                                                                                                                                                              Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC v.1200 32 bit (Intel)] on win32
                                                                                                                                                                                                              Программа. В циклах "+ 1" изза "дощечек в заборе"...
                                                                                                                                                                                                              ExpandedWrap disabled
                                                                                                                                                                                                                # -*- coding: cp1251 -*-
                                                                                                                                                                                                                from time import gmtime, strftime, localtime
                                                                                                                                                                                                                from math import sin,cos
                                                                                                                                                                                                                print "Begin_Time ", strftime("%a, %d %b %Y %H:%M:%S +0000", localtime())
                                                                                                                                                                                                                for x in range (0,100 + 1):
                                                                                                                                                                                                                    for y in range (0,1000 + 1):
                                                                                                                                                                                                                        for z in range (0,100 + 1):
                                                                                                                                                                                                                            r=sin(x)+cos(y)+sin(z)
                                                                                                                                                                                                                print "End_Time ", strftime("%a, %d %b %Y %H:%M:%S +0000", localtime())


                                                                                                                                                                                                              О функциях:
                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                              strftime( format)
                                                                                                                                                                                                              Return a string representing the date, controlled by an explicit format string. Format codes referring to hours, minutes or seconds will see 0 values. See the section on strftime() behavior.

                                                                                                                                                                                                              localtime( [secs])
                                                                                                                                                                                                              Like gmtime() but converts to local time. The dst flag is set to 1 when DST applies to the given time. Changed in version 2.1: Allowed secs to be omitted.


                                                                                                                                                                                                              Результат:
                                                                                                                                                                                                              ExpandedWrap disabled
                                                                                                                                                                                                                Begin_Time  Fri, 11 Aug 2006 14:41:02 +0000
                                                                                                                                                                                                                End_Time  Fri, 11 Aug 2006 14:41:30 +0000
                                                                                                                                                                                                                All_Time  0:00:28


                                                                                                                                                                                                              Таким образом со счетом (0:00:03) против (0:00:28) те 3 сек. против 28 сек. победил (фанфары барабаны) Delphi ;) Ура товарищи!

                                                                                                                                                                                                              Цитата Smike @
                                                                                                                                                                                                              В Дельфи успешно вычислен факториал:
                                                                                                                                                                                                              1754!=1.97926189010501006E4930

                                                                                                                                                                                                              Smike во первых я использовал исключительно целый тип это раз у тебя он никак не целый смотри сам "1>>>.<<<97926189010501006E4930" Это что такое? Во вторых я для расчета факториала не использовал ни функций ни циклов ни одного модуля не потревожил :tong:
                                                                                                                                                                                                              И сама функция факториала - лямбда рекурсия в одну строку ;)

                                                                                                                                                                                                              Цитата Ho Im @
                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                              >>> def factorial(x):
                                                                                                                                                                                                              ... a = 1
                                                                                                                                                                                                              ... for i in range(1,x+1):
                                                                                                                                                                                                              ... a = a * i
                                                                                                                                                                                                              ... return a

                                                                                                                                                                                                              Ho Im если пользоваться твоим (классическим) факториалом тогда максимальный факториал для Python равен 3628799! для факториала через лямда форму (по моему) 993! предел... Странно надо разобраться почему так. :blink:
                                                                                                                                                                                                              PS С факториалом я не туда поглядел!
                                                                                                                                                                                                              Сообщение отредактировано: best_lamer -
                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                Этот код отличается от моего. Нужно передать в my_func2 то, что нам вернула my_func, а затем это удалить

                                                                                                                                                                                                                Сори, я твой код просто не понял. Но так как ты хочешь - просто не делают. Объект не уничтожают в функции, если он пришел как параметр, это уж слишком :)
                                                                                                                                                                                                                Принял объект от MyFunc, передал в MyFunc2, она что-то слелала - вот и уничтожай. Понятно, нужна переменная. И что? :)

                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                Цитата (Smike @ Сегодня, 10:39)
                                                                                                                                                                                                                Есть, представь себе. Интерфейсные классы, уничтожаются автоматически при выходе из зоны видимости.

                                                                                                                                                                                                                Можно примерчик?


                                                                                                                                                                                                                Да сколько угодно :)
                                                                                                                                                                                                                ExpandedWrap disabled
                                                                                                                                                                                                                  type
                                                                                                                                                                                                                    IFoo = interface
                                                                                                                                                                                                                      procedure FooFoo;
                                                                                                                                                                                                                    end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                    //Реализация
                                                                                                                                                                                                                    TFoo = class(TInterfacedObject, IFoo)
                                                                                                                                                                                                                    protected
                                                                                                                                                                                                                      procedure FooFoo;
                                                                                                                                                                                                                    public
                                                                                                                                                                                                                      destructor Destroy; override; //Для иллюстрации даем сообщение
                                                                                                                                                                                                                    end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  implementation
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  { TFoo }
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  destructor TFoo.Destroy;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    ShowMessage('Destroy');
                                                                                                                                                                                                                    inherited;
                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  procedure TFoo.FooFoo;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    ShowMessage('Foooo! :)');
                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  //Пример вызова
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  procedure TForm1.Button1Click(Sender: TObject);
                                                                                                                                                                                                                  var
                                                                                                                                                                                                                    Foo: IFoo;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    Foo := TFoo.Create;
                                                                                                                                                                                                                    Foo.FooFoo;
                                                                                                                                                                                                                  end;

                                                                                                                                                                                                                Или мне, по традиции, привести полное консольное приложение? :lool:
                                                                                                                                                                                                                ExpandedWrap disabled
                                                                                                                                                                                                                  program Project1;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  {$APPTYPE CONSOLE}
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  type
                                                                                                                                                                                                                    IFoo = interface
                                                                                                                                                                                                                      procedure FooFoo;
                                                                                                                                                                                                                    end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                    //Реализация
                                                                                                                                                                                                                    TFoo = class(TInterfacedObject, IFoo)
                                                                                                                                                                                                                    protected
                                                                                                                                                                                                                      procedure FooFoo;
                                                                                                                                                                                                                    public
                                                                                                                                                                                                                      destructor Destroy; override; //Для иллюстрации даем сообщение
                                                                                                                                                                                                                    end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  destructor TFoo.Destroy;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    WriteLn('Destroy');
                                                                                                                                                                                                                    inherited;
                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  procedure TFoo.FooFoo;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    WriteLn('Foooo! :)');
                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  //Чтобы была область видимости
                                                                                                                                                                                                                  procedure DoFoo;
                                                                                                                                                                                                                  var
                                                                                                                                                                                                                    Foo: IFoo;
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    Foo := TFoo.Create;
                                                                                                                                                                                                                    Foo.FooFoo;
                                                                                                                                                                                                                  end;
                                                                                                                                                                                                                   
                                                                                                                                                                                                                  begin
                                                                                                                                                                                                                    DoFoo;
                                                                                                                                                                                                                    ReadLn;
                                                                                                                                                                                                                  end.
                                                                                                                                                                                                                  Цитата best_lamer @
                                                                                                                                                                                                                  Ho Im если пользоваться твоим (классическим) факториалом тогда максимальный факториал для Python равен 3628799! для факториала через лямда форму (по моему) 993! предел... Странно надо разобраться почему так. :blink:

                                                                                                                                                                                                                  Питон не делает оптимизации хвостовых вызовов.
                                                                                                                                                                                                                    Цитата Romkin @
                                                                                                                                                                                                                    Но так как ты хочешь - просто не делают. Объект не уничтожают в функции, если он пришел как параметр, это уж слишком :)

                                                                                                                                                                                                                    :yes: Вот именно --- так не делают. Но я и не хочу этого. В функцию приходит параметр. В функции его удалить нельзя. Это очевидно. Значит, его надо удалить вне функции. Так как в дельфах объект можно удалить, только явно вызвав Free (или как деструктор назван). Значит, для этого надо завести столько временных переменных, сколько параметров у вызываемой функции. Т.е.,
                                                                                                                                                                                                                    ExpandedWrap disabled
                                                                                                                                                                                                                      type MyClass = class ... end;
                                                                                                                                                                                                                      function my_func: MyClass; begin result := MyClass.Create(); end;
                                                                                                                                                                                                                       
                                                                                                                                                                                                                      procedure my_func2(mc1,mc2,mc3: MyClass); begin ... end;
                                                                                                                                                                                                                       
                                                                                                                                                                                                                      var
                                                                                                                                                                                                                        t1,t2,t3: MyClass;
                                                                                                                                                                                                                       
                                                                                                                                                                                                                      begin
                                                                                                                                                                                                                        t1 := my_func;
                                                                                                                                                                                                                        t2 := my_func;
                                                                                                                                                                                                                        t3 := my_func;
                                                                                                                                                                                                                        my_func2(t1,t2,t3);
                                                                                                                                                                                                                        t1.Free;
                                                                                                                                                                                                                        t2.Free;
                                                                                                                                                                                                                        t3.Free;
                                                                                                                                                                                                                      end.

                                                                                                                                                                                                                    Т.е., --- почувствуйте себя ассемблером (в том смысле, что надо вручную разворачивать выражения так, чтобы не было вложенных вызовов функций).
                                                                                                                                                                                                                    Цитата Romkin @
                                                                                                                                                                                                                    Или мне, по традиции, привести полное консольное приложение? :lool:

                                                                                                                                                                                                                    Дельфы под рукой нету, нельзя ли показать вывод от этого приложения?
                                                                                                                                                                                                                    Цитата Romkin @
                                                                                                                                                                                                                    type IFoo = interface procedure FooFoo; end; //Реализация TFoo = class(TInterfacedObject, IFoo) protected procedure FooFoo; public destructor Destroy; override; //Для иллюстрации даем сообщение end;

                                                                                                                                                                                                                    Да, это "очень удобно и немногословно". А как у этой штуки с наследованием --- ведь TInterfacedObject --- это класс, не так ли? А это уже не даст отнаследовться от других классов. Так что, как ни крути, а будет неудобно.
                                                                                                                                                                                                                      Цитата mo3r @
                                                                                                                                                                                                                      э-ээ.. Этот код отличается от моего. Нужно передать в my_func2 то, что нам вернула my_func, а затем это удалить. Интересно, как это будет выглядеть с with? И сколько строчек он будет занимать? А если аргументов --- не один, а пять?

                                                                                                                                                                                                                      Да ты что :)

                                                                                                                                                                                                                      ExpandedWrap disabled
                                                                                                                                                                                                                        type
                                                                                                                                                                                                                          MyClass = class
                                                                                                                                                                                                                            function GetThis: MyClass;
                                                                                                                                                                                                                            property This: MyClass read GetThis;
                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        function MyClass.GetThis: MyClass;
                                                                                                                                                                                                                        begin
                                                                                                                                                                                                                          Result := Self;
                                                                                                                                                                                                                        end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        function my_func: MyClass; begin result := MyClass.Create(); end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        procedure my_func2(mc: MyClass); begin ... end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        begin
                                                                                                                                                                                                                          with my_func do
                                                                                                                                                                                                                          try
                                                                                                                                                                                                                            my_func2(this);
                                                                                                                                                                                                                          finally
                                                                                                                                                                                                                            free;
                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                        end.

                                                                                                                                                                                                                      Цитата mo3r @
                                                                                                                                                                                                                      Можно примерчик?

                                                                                                                                                                                                                      И то же самое с интерфейсами:
                                                                                                                                                                                                                      ExpandedWrap disabled
                                                                                                                                                                                                                        type
                                                                                                                                                                                                                          IMyClassInt = interface
                                                                                                                                                                                                                            ...
                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                          
                                                                                                                                                                                                                          TMyClass = class(TInterfacedObject, IMyClassInt)
                                                                                                                                                                                                                            ...
                                                                                                                                                                                                                          end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        function my_func: IMyClassInt; begin result := MyClass.Create(); end;
                                                                                                                                                                                                                         
                                                                                                                                                                                                                        procedure my_func2(mc: IMyClassInt); begin ... end;
                                                                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                                                                        Да ты что :)

                                                                                                                                                                                                                        Класс пришлось изменить, чтобы это поддерживалось. Да и в любом случае дополнительно 5 строчек.
                                                                                                                                                                                                                        Цитата mo3r @
                                                                                                                                                                                                                        А как у этой штуки с наследованием --- ведь TInterfacedObject --- это класс, не так ли? А это уже не даст отнаследовться от других классов.

                                                                                                                                                                                                                        Smike, а на это что скажешь?
                                                                                                                                                                                                                          Цитата mo3r @
                                                                                                                                                                                                                          Smike, а на это что скажешь?

                                                                                                                                                                                                                          А что мешает базовый класс от интерфейсного объекта унаследовать? TInterfacedObject - это такой же объект, только со счетчиком ссылок. Классы VCL и так интерфейсные:
                                                                                                                                                                                                                          ExpandedWrap disabled
                                                                                                                                                                                                                              TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
                                                                                                                                                                                                                            Цитата Smike @
                                                                                                                                                                                                                            А что мешает базовый класс от интерфейсного объекта унаследовать? TInterfacedObject - это такой же объект, только со счетчиком ссылок. Классы VCL и так интерфейсные:

                                                                                                                                                                                                                            Вот я и говорю --- удобство разработки прямо сразу видно --- менять весь дизайн приложения из-за непродуманности языка.
                                                                                                                                                                                                                              Цитата best_lamer @
                                                                                                                                                                                                                              Таким образом со счетом (0:00:03) против (0:00:28) те 3 сек. против 28 сек. победил (фанфары барабаны) Delphi ;) Ура товарищи!

                                                                                                                                                                                                                              Ничего противоестественного не вижу. Основное достоинство интерпретируемых языков в безопасности кода и более быстром процессе разработки.
                                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                                Вот я и говорю --- удобство разработки прямо сразу видно --- менять весь дизайн приложения из-за непродуманности языка.

                                                                                                                                                                                                                                Глупо утверждать, что это непродуманность языка. Мне это при разработке никогда не мешало. Просто архитектуру нужно изначально придумывать корректную. Давай на примере. Зачем может понадобиться создание 3-х одинаковых объектов, передача их в одну функцию и автоматическое их удаление?
                                                                                                                                                                                                                                  Цитата Smike @
                                                                                                                                                                                                                                  Да ты что :)

                                                                                                                                                                                                                                  А если таких аргументов, скажем, два, а? ;)
                                                                                                                                                                                                                                    Цитата best_lamer @
                                                                                                                                                                                                                                    PS С факториалом я не туда поглядел!

                                                                                                                                                                                                                                    У меня хватило терпения до 70000! дальше еще считает... сколько максимально возможный факториал даже не представляю... У кого есть желание проверить точнее милости просим ;)
                                                                                                                                                                                                                                      Цитата best_lamer @
                                                                                                                                                                                                                                      У кого есть желание проверить точнее милости просим ;)

                                                                                                                                                                                                                                      Что, так долго считает? :lol:

                                                                                                                                                                                                                                      Добавлено
                                                                                                                                                                                                                                      Цитата linuxfan @
                                                                                                                                                                                                                                      А если таких аргументов, скажем, два, а? ;)

                                                                                                                                                                                                                                      Если объяснишь зачем - тогда скажу как. А так я программировать не привык. Код пишется под задачу, а не под с целью точно продублировать какой-то другой код.
                                                                                                                                                                                                                                        Сейчас подмешиваемые (Mix-in) классы вспомниать начнем...
                                                                                                                                                                                                                                          Цитата Smike @
                                                                                                                                                                                                                                          Если объяснишь зачем - тогда скажу как. А так я программировать не привык.

                                                                                                                                                                                                                                          Ясно. Значит -- никак. Ну не очень-то и надо.
                                                                                                                                                                                                                                          В C++ лямбда функций ведь нет (костыль, кажется, в boost положили?)
                                                                                                                                                                                                                                            Цитата linuxfan @
                                                                                                                                                                                                                                            В C++ лямбда функций ведь нет (костыль, кажется, в boost положили?)

                                                                                                                                                                                                                                            Это означает, что эти функции могут быть реализованы средставми языка. По этому про "костыли" - не надо.
                                                                                                                                                                                                                                              Цитата linuxfan @
                                                                                                                                                                                                                                              Ничего противоестественного не вижу. Основное достоинство интерпретируемых языков в безопасности кода и более быстром процессе разработки.

                                                                                                                                                                                                                                              Полностью согласен! Я сам и не ожидал того что Python будет быстрее :whistle: хотя это было бы клево. Просто я хотел оценить во сколько раз интерпретируемые языки медленнее. Оценил приблизительно раз в 10 проигрыш по скорости исполнения кода.

                                                                                                                                                                                                                                              Добавлено
                                                                                                                                                                                                                                              Цитата Smike @
                                                                                                                                                                                                                                              Что, так долго считает?

                                                                                                                                                                                                                                              Ты вначале сделай нормальный факториал в целых а потом поговорим дальше ;) идет?
                                                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                                                Дельфы под рукой нету, нельзя ли показать вывод от этого приложения?

                                                                                                                                                                                                                                                Вывод как и должен быть. Увы, из консоли не копируется у меня, пишу:
                                                                                                                                                                                                                                                Цитата

                                                                                                                                                                                                                                                Foooo! :)
                                                                                                                                                                                                                                                Destroy

                                                                                                                                                                                                                                                И ждет Enter на readln, разумеется.

                                                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                                                Цитата (Smike @ Сегодня, 17:20)
                                                                                                                                                                                                                                                А что мешает базовый класс от интерфейсного объекта унаследовать? TInterfacedObject - это такой же объект, только со счетчиком ссылок. Классы VCL и так интерфейсные:

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


                                                                                                                                                                                                                                                Ну млин. Интерфейс я ввести могу на любом уровне иерархии. Я использовал TInterfacedObjetc потому, что там реализованы три метода IInterface.
                                                                                                                                                                                                                                                Вот как раз и вводятся интерфейсы:
                                                                                                                                                                                                                                                Цитата Smike @
                                                                                                                                                                                                                                                TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)

                                                                                                                                                                                                                                                Причем здесь как раз подсчет ссылок отключается, поскольку за временем жизни компонента следит его контейнер. Это также и ответ на вопрос, почему приходится иногда писать реализацию методов IInterface :)

                                                                                                                                                                                                                                                Цитата mo3r @
                                                                                                                                                                                                                                                Цитата (Romkin @ Сегодня, 16:36)
                                                                                                                                                                                                                                                type IFoo = interface procedure FooFoo; end; //Реализация TFoo = class(TInterfacedObject, IFoo) protected procedure FooFoo; public destructor Destroy; override; //Для иллюстрации даем сообщение end;

                                                                                                                                                                                                                                                Да, это "очень удобно и немногословно".


                                                                                                                                                                                                                                                Да, это очень удобно. А многословно или нет - кто-то может считать, что многословно. И что с того? Написано все, что нужно и так как должно. Это - компонент-ориентированное программирование уже, следующая стадия ООП. Интерфейс описывается отдельно, реализация - отдельно. Ясно, что у одного интерфейса может быть любое количество реализаций и один класс может реализовать несколько интерфейсов.
                                                                                                                                                                                                                                                Что такое компонентная модель - читайте книгу Дональда Бокса "Сущность технологии COM". Там он в первой главе очень популярно объясняет что это. Все, правда, на С++.

                                                                                                                                                                                                                                                Добавлено
                                                                                                                                                                                                                                                Цитата linuxfan @
                                                                                                                                                                                                                                                Ничего противоестественного не вижу. Основное достоинство интерпретируемых языков в безопасности кода и более быстром процессе разработки.

                                                                                                                                                                                                                                                Ну что это за высказывание? Интерпретируемость сама по себе ничего не дает, практически любой язык может быть и интерпретируемым, и компилируемым.
                                                                                                                                                                                                                                                Или ты хочешь сказать, что если бы Delphi был интерпретируемым, то его код стал бы сразу безопасным и процесс разработки ускорился? Мне что-то не верится.
                                                                                                                                                                                                                                                Основное достоинство интерпретируемых языков в отсутствии компилятора. Интерпретатор всегда есть, и программа в виде текста. Основной недостаток - низкая скорость, если не применять некоторых ухищрений вроде прекомпиляции и тд.
                                                                                                                                                                                                                                                  Цитата linuxfan @
                                                                                                                                                                                                                                                  все плюсовые библиотеки либо костыли для действий, не предусмотренных стандартом
                                                                                                                                                                                                                                                  В этом выражении надо убрать слово "плюсовые"
                                                                                                                                                                                                                                                  Цитата linuxfan @
                                                                                                                                                                                                                                                  либо просто врапперы над сишными
                                                                                                                                                                                                                                                  А в Python иначе? ;)
                                                                                                                                                                                                                                                  Цитата linuxfan @
                                                                                                                                                                                                                                                  категория реально нужных вещей вроде Qt очень немногочисленна
                                                                                                                                                                                                                                                  Понятие "реально нужные вещи" весьма относительно. Мне вот не нужен ни один python'овский пакет. И сам python ни к чему.
                                                                                                                                                                                                                                                    Цитата linuxfan @
                                                                                                                                                                                                                                                    В C++ лямбда функций ведь нет (костыль, кажется, в boost положили?)

                                                                                                                                                                                                                                                    Ясно. Значит так и запишем:
                                                                                                                                                                                                                                                    Python - это большой костыль над C++ :yes: :lol:
                                                                                                                                                                                                                                                    Сообщение отредактировано: Smike -
                                                                                                                                                                                                                                                      Цитата Smike @
                                                                                                                                                                                                                                                      Python - это большой костыль над C++ :yes: :lol:

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

                                                                                                                                                                                                                                                      Костыль не может быть самостоятельной независимой сущностью.
                                                                                                                                                                                                                                                        Дебилизм какой. Мне не не нужно вычислять длинных факториалов. Мне не нужны фантастические лямбда функции. 99 процентам психически здоровых людей они тоже не нужны. 99 процентов населения планеты хотят быстрых программ. Поэтому выбираем С++.
                                                                                                                                                                                                                                                          Цитата BugHunter @
                                                                                                                                                                                                                                                          99 процентов населения планеты хотят быстрых программ. Поэтому выбираем С++.

                                                                                                                                                                                                                                                          99% заказчиков хотят получить работающий проект быстро. Поэтому C++ идет на вот туда.
                                                                                                                                                                                                                                                          1% заказчиков хочет быструю программу быстро. Поэтому эти заказчики следуют за C++.
                                                                                                                                                                                                                                                            BugHunter, Ho Im прав. Лично мое начальство всегда резко выступает против C/C++, когда я пытаюсь протащить это дело. Мотивируют они это довольно просто: в более высокуровневом языке можно сосредоточиться на решении задачи, а не на управлении памятью и прочей фигней.
                                                                                                                                                                                                                                                              Цитата linuxfan @
                                                                                                                                                                                                                                                              Лично мое начальство всегда резко выступает против C/C++, когда я пытаюсь протащить это дело. Мотивируют они это довольно просто: в более высокуровневом языке можно сосредоточиться на решении задачи, а не на управлении памятью и прочей фигней.

                                                                                                                                                                                                                                                              "Высокоуровневость" языка очень сильно зависит от используемых библиотек.
                                                                                                                                                                                                                                                                Flex Ferrum, 1) ищем библиотеку, 2) смотрим чейнджлоги, 3) читаем багтрак на нее... А ты ведь думал как?

                                                                                                                                                                                                                                                                Добавлено
                                                                                                                                                                                                                                                                Цитата linuxfan @
                                                                                                                                                                                                                                                                Лично мое начальство всегда резко выступает против C/C++, когда я пытаюсь протащить это дело.

                                                                                                                                                                                                                                                                А на чем останавливаются? Если на лиспе, то я уже офигел...
                                                                                                                                                                                                                                                                  Flex Ferrum, согласись, в Java, например, напартачить несколько сложнее, чем в C++, а в PHP напартачить легко, зато пишется очень быстро.
                                                                                                                                                                                                                                                                    linuxfan, зато не напартачить еще труднее, чем на жабе. У жабиста такие вещи на уровне инстинкта, а пхпист на грабли натыкается... постоянно.
                                                                                                                                                                                                                                                                      Цитата Ho Im @
                                                                                                                                                                                                                                                                      Flex Ferrum, 1) ищем библиотеку, 2) смотрим чейнджлоги, 3) читаем багтрак на нее... А ты ведь думал как?

                                                                                                                                                                                                                                                                      Бывает и такое. А бывает, что пользуешься уже проверенными стабильными версиями... :whistle:

                                                                                                                                                                                                                                                                      Цитата linuxfan @
                                                                                                                                                                                                                                                                      Flex Ferrum, согласись, в Java, например, напартачить несколько сложнее, чем в C++

                                                                                                                                                                                                                                                                      Может быть и сложнее - не знаю. Но, помнится, когда жабу скрещивали с плюсами, некоторые особенности работы жабного сборщика мусора мы так победить и не смогли... Из за этого в java-части пришлось писать код не совсем в java-стиле, ибо в противном случае наблюдалась конкретная течь памяти...
                                                                                                                                                                                                                                                                      А в плюсах, используя тот же shared_ptr, добится утечки достаточно сложно.
                                                                                                                                                                                                                                                                        Цитата linuxfan @
                                                                                                                                                                                                                                                                        Flex Ferrum, согласись, в Java, например, напартачить несколько сложнее, чем в C++, а в PHP напартачить легко, зато пишется очень быстро.

                                                                                                                                                                                                                                                                        Всё зависит от используемых библиотек, как уже было сказано. Например, используя те библиотеки, которые использую я, напортачить КРАЙНЕ сложно. Так спроектированны и написаны. За что авторам огромное спасибо.

                                                                                                                                                                                                                                                                        Цитата

                                                                                                                                                                                                                                                                        99% заказчиков хотят получить работающий проект быстро. Поэтому C++ идет на вот туда.
                                                                                                                                                                                                                                                                        1% заказчиков хочет быструю программу быстро. Поэтому эти заказчики следуют за C++.

                                                                                                                                                                                                                                                                        не знаю, что за заказчиков имеешь в виду ты, львиная доля готовых коробок на рынке ПО - это C++/C.

                                                                                                                                                                                                                                                                        Добавлено
                                                                                                                                                                                                                                                                        (для тех, кто не понял - лев отнимает у других всё, окромя падали)
                                                                                                                                                                                                                                                                          Цитата Ho Im @
                                                                                                                                                                                                                                                                          пхпист на грабли натыкается... постоянно.

                                                                                                                                                                                                                                                                          Ну по крайней мере пхпист не нарвется на лики или на двойное освобождение памяти или на еще чего-нибудь эдакое.
                                                                                                                                                                                                                                                                          Цитата BugHunter @
                                                                                                                                                                                                                                                                          не знаю, что за заказчиков имеешь в виду ты, львиная доля готовых коробок на рынке ПО - это C++/C.

                                                                                                                                                                                                                                                                          Львиная доля на .NET или на Java. Enterprise почему-то «недолюбливает» C++.
                                                                                                                                                                                                                                                                            Цитата BugHunter @
                                                                                                                                                                                                                                                                            львиная доля готовых коробок на рынке ПО - это C++/C.

                                                                                                                                                                                                                                                                            Я о ПО на заказ. Не коробками едиными...

                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                            Цитата linuxfan @
                                                                                                                                                                                                                                                                            Ну по крайней мере пхпист не нарвется на лики

                                                                                                                                                                                                                                                                            Я везучий — нарывался. И должен сказать — это большая ж...
                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                              Flex Ferrum, 1) ищем библиотеку, 2) смотрим чейнджлоги, 3) читаем багтрак на нее... А ты ведь думал как?

                                                                                                                                                                                                                                                                              Да, иногда таким образом можно узнать много интересного. А можно и не узнать. Тот же STL например, уже давно устаканеный.

                                                                                                                                                                                                                                                                              Добавлено
                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                              Львиная доля на .NET или на Java. Enterprise почему-то «недолюбливает» C++.

                                                                                                                                                                                                                                                                              Да, есть такой момент. Не знаю, почему это происходит.
                                                                                                                                                                                                                                                                              Вот, например, АДО. Даже используя .NET это не самая тривиальная технология.
                                                                                                                                                                                                                                                                              У меня же на плюсах, по сути, торчит наружу 3 вещи:
                                                                                                                                                                                                                                                                              1) конструктор для создания соединения
                                                                                                                                                                                                                                                                              2) ExecuteStoredProcedure
                                                                                                                                                                                                                                                                              3) ExecuteSQL
                                                                                                                                                                                                                                                                              никаких изощрений или извращений, всё уже продумано и придумано.
                                                                                                                                                                                                                                                                              Вокруг этого можно мутить и думать дальше. .NET даёт более геморойные инструменты, над которыми ещё придётся думать, а я этого не люблю.

                                                                                                                                                                                                                                                                              Цитата
                                                                                                                                                                                                                                                                              Я о ПО на заказ. Не коробками едиными...

                                                                                                                                                                                                                                                                              Вот и я об то же - заказное ПО часто бывает уже куплено ещё до того, как его написали, а поэтому и писать его можно абы как (что опять таки, львиная доля заказного ПО ярко демонстрирует).
                                                                                                                                                                                                                                                                              То ли дело выпуск галимой коробки: через день весь интернет будет кишеть криками "они облажались, не покупайте эту срань!". и в каком месте мы увидем прибыль?
                                                                                                                                                                                                                                                                              Сообщение отредактировано: BugHunter -
                                                                                                                                                                                                                                                                                Цитата BugHunter @
                                                                                                                                                                                                                                                                                не знаю, что за заказчиков имеешь в виду ты, львиная доля готовых коробок на рынке ПО - это C++/C.

                                                                                                                                                                                                                                                                                Ну и? Погляди на ту статистику которая распространяется и насаждается в средствах массовой информации по ней выходит что других осей кроме виндовза ваще не существует. Не помню что читал но валялся под стулом речь шла о "самой безопасной на сегодняшний день... " и тра ля ля в том же духе ага именно о виндовс. Но в реальной жизни все иначе. Коробочное ПО путь себе и остается коробочным ПО на нем весь мир клином не сошелся! И корпоративный сегмент тоже брать не будем. Кросплатформенность разрабатываемого ПО - залог если не успеха то по крайней мере того что на такое ПО обратят внимание. А простоте портирования ПО на Python под другую ось позавидует любой программист. Потому что в правильно написанной программе на Python менять ровным счетом ничего не надо. И не смотря на такие жуткие усилия на портирование программист одновременно захватывает: Dos, All Windows, Linux, Unix, FreeBsd (остановите меня кто нибудь) Mac OS... Да да это именно те насаждаемые прессой 0% рынка. ;) Хотя если к примеру разуть глаза и посмотреть статистику скачиваний с kernel.org то многое начинаеш ставить под сомнение.
                                                                                                                                                                                                                                                                                Еще LOL - Python желает знать кодировку всех строк и всегда просит либо явно ее задать либо везде работать со строками в юникоде. Ну хочешь фиг с тобой. Сделал по манам в юникоде. В Linux проблем нет а в винде оказывается что юникод он как бы и не юникод вовсе :ph34r: Так что о качестве коробочного ПО (а виндовс кроме всего прочего относится к последнему) я бы помалкивал и хвастать о том что оно "коробочное" не стал бы...
                                                                                                                                                                                                                                                                                А так пару миллиардов на рекламу и пиар и через время покупатель будет искренне верить в то что кроме (подставить сюда название ЛЮБОГО некоробочного продукта) ему ничего и не надо. :lol:
                                                                                                                                                                                                                                                                                  Цитата Ho Im @
                                                                                                                                                                                                                                                                                  99% заказчиков хотят получить работающий проект быстро. Поэтому C++ идет на вот туда.

                                                                                                                                                                                                                                                                                  Вот из-за того, что некоторые недопрограммеры не хотят нормально кодить на компилируемых языках, и получаются таким фтопочные продукты как OpenOffice :whistle:

                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                  Цитата BugHunter @
                                                                                                                                                                                                                                                                                  не знаю, что за заказчиков имеешь в виду ты, львиная доля готовых коробок на рынке ПО - это C++/C.

                                                                                                                                                                                                                                                                                  Ну и Delphi, хотя и меньше. Delphi не сильно популярен в больших коммандных разработках, но для разработки небольшой группой программистов качественных продуктов за небольшое время - очень даже :yes:
                                                                                                                                                                                                                                                                                  Цитата linuxfan @
                                                                                                                                                                                                                                                                                  Львиная доля на .NET или на Java.

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

                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                  Цитата best_lamer @
                                                                                                                                                                                                                                                                                  Кросплатформенность разрабатываемого ПО - залог если не успеха то по крайней мере того что на такое ПО обратят внимание.

                                                                                                                                                                                                                                                                                  Да ну? А можешь назвать хоть одну действительно популярную питоновскую программу? Вообще Линукс пока интересует очень малое количесто серьезных разработчиков. Даже 4% рынка ОС - это не повод переписывать серьезные проекты на Питон. Да еще чтобы они тормозили потом как такая дрянь, как OpenOffice. Представляешь как будет тормозить фотошоп на питоне? Его интерфейс и так притормаживает из-за кроссплатформенных костылей. Тем более что аудитория ОС GNU/Linux - это прирожденные шаровики, которые за ПО никогда не платили и платить не будут.
                                                                                                                                                                                                                                                                                    Цитата Smike @
                                                                                                                                                                                                                                                                                    Вот из-за того, что некоторые недопрограммеры не хотят нормально кодить на компилируемых языках, и получаются таким фтопочные продукты как OpenOffice :whistle:

                                                                                                                                                                                                                                                                                    Э-э... OOo написан на c++. Или я что-то пропустил в его исходниках??
                                                                                                                                                                                                                                                                                    Цитата Smike @
                                                                                                                                                                                                                                                                                    А можешь назвать хоть одну действительно популярную питоновскую программу?

                                                                                                                                                                                                                                                                                    Из массово популярных -- всякие веб-приложения, в частности, MoinMoin Wiki Engine. Заметь -- идет и под виндой, и под линуксом, и под другими юниксами, и под еще чем хочешь.
                                                                                                                                                                                                                                                                                    Цитата Smike @
                                                                                                                                                                                                                                                                                    Тем более что аудитория ОС GNU/Linux - это прирожденные шаровики, которые за ПО никогда не платили и платить не будут.

                                                                                                                                                                                                                                                                                    :lool:
                                                                                                                                                                                                                                                                                    Сообщение отредактировано: mo3r -
                                                                                                                                                                                                                                                                                      Цитата Smike @
                                                                                                                                                                                                                                                                                      Ну и Delphi, хотя и меньше. Delphi не сильно популярен в больших коммандных разработках, но для разработки небольшой группой программистов качественных продуктов за небольшое время - очень даже

                                                                                                                                                                                                                                                                                      Интересненько а в Delphi есть инструменты для коммандной разработки? cvs, rcs ? Этим удивил... Признаю не знал :unsure:

                                                                                                                                                                                                                                                                                      Цитата Smike @
                                                                                                                                                                                                                                                                                      А можешь назвать хоть одну действительно популярную питоновскую программу?

                                                                                                                                                                                                                                                                                      Могу! Куча игрушек под винду которые используют Python в качестве внутреннего скриптового языка. Могу поспорить что на компе заядлого геймера если пустить поиск по "python*.dll" или "*.py" можно найти без вопросов :yes:
                                                                                                                                                                                                                                                                                      Захожу сюда читаю
                                                                                                                                                                                                                                                                                      Цитата
                                                                                                                                                                                                                                                                                      NASA uses Python...

                                                                                                                                                                                                                                                                                      Улыбнуло ну да ладно

                                                                                                                                                                                                                                                                                      Цитата Smike @
                                                                                                                                                                                                                                                                                      Тем более что аудитория ОС GNU/Linux - это прирожденные шаровики, которые за ПО никогда не платили и платить не будут.

                                                                                                                                                                                                                                                                                      >:( GPL и ШАРА разные вещи!
                                                                                                                                                                                                                                                                                        Цитата mo3r @
                                                                                                                                                                                                                                                                                        Э-э... OOo написан на c++. Или я что-то пропустил в его исходниках??

                                                                                                                                                                                                                                                                                        А зачем ему жаба-машина?
                                                                                                                                                                                                                                                                                        Цитата best_lamer @
                                                                                                                                                                                                                                                                                        Интересненько а в Delphi есть инструменты для коммандной разработки? cvs, rcs ? Этим удивил... Признаю не знал :unsure:

                                                                                                                                                                                                                                                                                        Есть зачатки. У Борланда для этого есть другое решение - StarTeam и в Delphi встроен клиент для StarTeam.
                                                                                                                                                                                                                                                                                          Цитата Smike @
                                                                                                                                                                                                                                                                                          А зачем ему жаба-машина?

                                                                                                                                                                                                                                                                                          Для биндингов к яве (чтобы плагины можно было писать на яве). А также во время сборки для компиляции оных (сборка у них немного глючит --- без них не собирается, но работать без них может).
                                                                                                                                                                                                                                                                                          Цитата Smike @
                                                                                                                                                                                                                                                                                          Есть зачатки. У Борланда для этого есть другое решение - StarTeam и в Delphi встроен клиент для StarTeam.

                                                                                                                                                                                                                                                                                          То есть, svn и cvs оно не держит.
                                                                                                                                                                                                                                                                                            Цитата Smike @
                                                                                                                                                                                                                                                                                            это не повод переписывать серьезные проекты на Питон.

                                                                                                                                                                                                                                                                                            Вот дела.. А мужики из Гугла и Наса не знают :lool:
                                                                                                                                                                                                                                                                                              Цитата mo3r @
                                                                                                                                                                                                                                                                                              Для биндингов к яве

                                                                                                                                                                                                                                                                                              Всего-то? И из-за этого он 100 метров памяти отжирает? Ну тогда этот продукт должен быть предан забвению, а программисты - анафеме.
                                                                                                                                                                                                                                                                                              Цитата Мыкв @
                                                                                                                                                                                                                                                                                              Вот дела.. А мужики из Гугла и Наса не знают :lool:

                                                                                                                                                                                                                                                                                              Мужики из Наса пишут на C#. See Nasa World Wind.
                                                                                                                                                                                                                                                                                                Цитата Smike @

                                                                                                                                                                                                                                                                                                Мужики из Наса пишут на C#. See Nasa World Wind.

                                                                                                                                                                                                                                                                                                http://www.python.org/about/success/usa/, соответственно.
                                                                                                                                                                                                                                                                                                  Цитата Мыкв @
                                                                                                                                                                                                                                                                                                  http://www.python.org/about/success/usa/, соответственно.

                                                                                                                                                                                                                                                                                                  Этих приложений никто не видит и не знает. Они под конкретные задачи затачиваются. Практически то же самое, что и скрипты в VBA. А Nasa World Wind - приложение широкого пользования.

                                                                                                                                                                                                                                                                                                  Добавлено
                                                                                                                                                                                                                                                                                                  Для сравнения - Basic я тоже не люблю, но это не мешает мне писать на VBA макросы для оффиса. Можно конечно все это сделать на Delphi, но чаще удобнее сделать это в родной среде, поскольку там под них все хорошо заточено (подсказки, объекты, формы и пр.).
                                                                                                                                                                                                                                                                                                    Цитата Smike @
                                                                                                                                                                                                                                                                                                    Этих приложений никто не видит и не знает. Они под конкретные задачи затачиваются. Практически то же самое, что и скрипты в VBA. А Nasa World Wind - приложение широкого пользования.

                                                                                                                                                                                                                                                                                                    Только вот WW не является флагманом NASA, для внутренней рутины им более другие вещи нужны (а там и Python). Ну не софтверная это компания, коробочно-публичный софт — это всего лишь побочный продукт их деятельности навроде как BRL-CAD для Армии США. Мне ли говорить, что в армии прежде всего не программированием занимаются, даже когда прокетируют танки?
                                                                                                                                                                                                                                                                                                      Цитата
                                                                                                                                                                                                                                                                                                      То есть, svn и cvs оно не держит.

                                                                                                                                                                                                                                                                                                      А, собсно, зачем?

                                                                                                                                                                                                                                                                                                      Цитата
                                                                                                                                                                                                                                                                                                      Этих приложений никто не видит и не знает. Они под конкретные задачи затачиваются. Практически то же самое, что и скрипты в VBA. А Nasa World Wind - приложение широкого пользования.

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

                                                                                                                                                                                                                                                                                                      Цитата

                                                                                                                                                                                                                                                                                                      А так пару миллиардов на рекламу и пиар и через время покупатель будет искренне верить в то что кроме (подставить сюда название ЛЮБОГО некоробочного продукта) ему ничего и не надо. :lol:


                                                                                                                                                                                                                                                                                                      Это вообще не относится к дискуссии.
                                                                                                                                                                                                                                                                                                      1) Кросплатформенное оно, или не кроссплатформенное - это вообще из другой оперы. Когда мне покажут писалку СДР, котроую можно было бы (пусть даже перекомилировав) запустить и в Win, и в Lin - я поверю в то, что такое ПО вообще существует.
                                                                                                                                                                                                                                                                                                      2) Хвастаться коробками можно. Это "немножко" другой уровень программирования.
                                                                                                                                                                                                                                                                                                      Попробуй, для начала, сделать что нибудь сам. Или с маленькой командочкой. Пусть даже не коробку. Пусть это будет банальное freeware, которое захотят скачать и установить себе .. ну скажем, 1000 человек (хотя бы) из.. ну скажем, 20 разных стран мира.
                                                                                                                                                                                                                                                                                                      возьмёшся?

                                                                                                                                                                                                                                                                                                      У тебя всё "если бы да кабы", потратить пару миллиардов баков на рекламу, и т.д. :). Сразу видно - идеалист и теоретик. Своих денег в дело никогда не вкладывал.
                                                                                                                                                                                                                                                                                                      Сообщение отредактировано: BugHunter -
                                                                                                                                                                                                                                                                                                        Цитата BugHunter @
                                                                                                                                                                                                                                                                                                        1) Кросплатформенное оно, или не кроссплатформенное - это вообще из другой оперы. Когда мне покажут писалку СДР, котроую можно было бы (пусть даже перекомилировав) запустить и в Win, и в Lin - я поверю в то, что такое ПО вообще существует.

                                                                                                                                                                                                                                                                                                        Мне кажется, или cdrecord таки есть для NT? По крайней мере, был. И работал. А так, основная платформа для него вообще солярка, потом *BSD, потом аж линукс (который автору, Йоргу Шиллингу, до зубовного скрипа не нравится, кстати). mkisofs с перекомпиляцией идет подо всем, что двигается.
                                                                                                                                                                                                                                                                                                          Цитата
                                                                                                                                                                                                                                                                                                          cdrecord таки есть для NT

                                                                                                                                                                                                                                                                                                          Честно говоря, такого я пока ещё не видел (пожимает плечами). В lin использую k3b.
                                                                                                                                                                                                                                                                                                            Цитата BugHunter @
                                                                                                                                                                                                                                                                                                            Честно говоря, такого я пока ещё не видел

                                                                                                                                                                                                                                                                                                            Есть. Если не ошибаюсь, работает под cygwin'ом.
                                                                                                                                                                                                                                                                                                              Цитата BugHunter @
                                                                                                                                                                                                                                                                                                              В lin использую k3b.
                                                                                                                                                                                                                                                                                                              Насколько я знаю, K3B это и есть frontend к cdrecord и прочему утилю типа growisofs, mkisofs, dvd+rw-format, etc.
                                                                                                                                                                                                                                                                                                                Цитата BugHunter @
                                                                                                                                                                                                                                                                                                                А, собсно, зачем?

                                                                                                                                                                                                                                                                                                                А есть кроссплатформенная альтернатива?

                                                                                                                                                                                                                                                                                                                Цитата BugHunter @
                                                                                                                                                                                                                                                                                                                Это вообще не относится к дискуссии.
                                                                                                                                                                                                                                                                                                                1) Кросплатформенное оно, или не кроссплатформенное - это вообще из другой оперы. Когда мне покажут писалку СДР, котроую можно было бы (пусть даже перекомилировав) запустить и в Win, и в Lin - я поверю в то, что такое ПО вообще существует.
                                                                                                                                                                                                                                                                                                                2) Хвастаться коробками можно. Это "немножко" другой уровень программирования.
                                                                                                                                                                                                                                                                                                                Попробуй, для начала, сделать что нибудь сам. Или с маленькой командочкой. Пусть даже не коробку. Пусть это будет банальное freeware, которое захотят скачать и установить себе .. ну скажем, 1000 человек (хотя бы) из.. ну скажем, 20 разных стран мира. возьмёшся?

                                                                                                                                                                                                                                                                                                                1)Мне не нравится когда к примеру о приложении написаном под .NET говорят якобы оно «кроссплатформенное» на Python реально написать кроссплатформенное приложение. Надеюсь ясно к чему?
                                                                                                                                                                                                                                                                                                                2)«Попробуй, для начала, сделать что нибудь сам.» Пробовал и уже не раз. И так «Или с маленькой командочкой» тоже было дело. «возьмёшся?» В общем то да. Без проблем. Все зависит от того за что именно браться и собственно конечная цель всего мероприятия.

                                                                                                                                                                                                                                                                                                                IMHO коробки от не коробок отличаются только одним – на коробки тратятся деньги которые разработчик хочет получить потом с продукта отсюда реклама. Не коробки не ставят себе целью зарабатывание денег. Вот и вся разница. Как в музыке ПОП музыка (на потребителя и с огромными затратами на рекламу) и андерграунд.

                                                                                                                                                                                                                                                                                                                Цитата BugHunter @
                                                                                                                                                                                                                                                                                                                У тебя всё "если бы да кабы", потратить пару миллиардов баков на рекламу, и т.д. . Сразу видно - идеалист и теоретик. Своих денег в дело никогда не вкладывал.

                                                                                                                                                                                                                                                                                                                Не приходилось откровенно говоря.

                                                                                                                                                                                                                                                                                                                Цитата BugHunter @
                                                                                                                                                                                                                                                                                                                Честно говоря, такого я пока ещё не видел

                                                                                                                                                                                                                                                                                                                Собственно по сабжу в Python думаю что проблем быть не должно.
                                                                                                                                                                                                                                                                                                                  Сейчас питон шумно сольет и пойдет курить в сторонке. Смотрите аттач. Это компонент для Delphi, а не Microsoft Office 2007, что еще раз подтверждает гибкость и богатство библиотеки VCL. :tong:
                                                                                                                                                                                                                                                                                                                  Прикреплённая картинка
                                                                                                                                                                                                                                                                                                                  Прикреплённая картинка
                                                                                                                                                                                                                                                                                                                    Цитата Smike @
                                                                                                                                                                                                                                                                                                                    что еще раз подтверждает гибкость и богатство библиотеки VCL. :tong:

                                                                                                                                                                                                                                                                                                                    :no: При чем тут "богатство VCL"? Это все равно, что утверждать, что оный скриншот показывает гибгость и богатство WinAPI. ;)

                                                                                                                                                                                                                                                                                                                    Добавлено
                                                                                                                                                                                                                                                                                                                    Кстати, скажи мне, сколько это чудо стоит? Судя по твоим высказываниям, я слабо верю в альтруизм разработчиков компонент для Delphi. А потому, прежде чем засчитывать слив чему-либо, озвуч конкретную циферьку. Дабы каждый разработчик смог бы убедиться - насколько ему по карману такое "богатство средств".

                                                                                                                                                                                                                                                                                                                    Добавлено
                                                                                                                                                                                                                                                                                                                    А то может получиться, что фотошоп то рулит, пока его стоимость - 100-200 руб...
                                                                                                                                                                                                                                                                                                                      Данный компонент бесплатен и FullSource.

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

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

                                                                                                                                                                                                                                                                                                                      Цитата Flex Ferrum @
                                                                                                                                                                                                                                                                                                                      А то может получиться, что фотошоп то рулит, пока его стоимость - 100-200 руб...

                                                                                                                                                                                                                                                                                                                      А для питона такой за деньги купить можно?

                                                                                                                                                                                                                                                                                                                      Цитата Flex Ferrum @
                                                                                                                                                                                                                                                                                                                      Дабы каждый разработчик смог бы убедиться - насколько ему по карману такое "богатство средств".

                                                                                                                                                                                                                                                                                                                      Причем тут это? DevExpress - не бесплатная библиотека, но стоит недорого, если она действительно нужна и будет использоваться в серьезном коммерческом проекте. Цифры порядка $100-200. Для Python'а же ничего подобного вообще нет. И я не представляю, чего бы стоило разработать что-то подобное на чистом питоне. Здесь факториал со всеми цифрами не поможет. А VCL очень сильно упрощает труд программиста, поэтому и рождается такое множество компонентов для Delphi, платных и бесплатных.
                                                                                                                                                                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                                                                                                                                                                        питон шумно сольет и пойдет курить в сторонке

                                                                                                                                                                                                                                                                                                                        «Шумно сливать» щаз будет Delphi. Smike как я уже говорил на Python плевое дело написать реально кросс платформенную программу (все вышеприведенные мною примеры таковыми являются!). Но кроме того я могу во время работы программы выяснить ее окружение: ось(windows or linux?); рабочий стол(KDE or Gnome or... ?). И дальше используя этот небольшой набор библиотек:
                                                                                                                                                                                                                                                                                                                        Цитата
                                                                                                                                                                                                                                                                                                                        kdebindings-python - Python bindings for KDE
                                                                                                                                                                                                                                                                                                                        python-gnome - Python bindings for GNOME
                                                                                                                                                                                                                                                                                                                        python-gtk - Python bindings for the GTK+ widget set
                                                                                                                                                                                                                                                                                                                        python-opengl - OpenGL bindings for Python
                                                                                                                                                                                                                                                                                                                        python-qt - Python Bindings for Qt
                                                                                                                                                                                                                                                                                                                        python-tk - TkInter - Python Tk Interface

                                                                                                                                                                                                                                                                                                                        рисовать визуальный интерфейс уже непосредственно теми средствами которые мне доступны. А могу вообще не использовать ГУЙёвого интерфейса (консольное приложение) или могу к примеру на ВЕБ интерфейс прикрутить.

                                                                                                                                                                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                                                                                                                                                                        что еще раз подтверждает гибкость и богатство библиотеки VCL...(cut) А VCL очень сильно упрощает труд программиста, поэтому и рождается такое множество компонентов для Delphi, платных и бесплатных.

                                                                                                                                                                                                                                                                                                                        Delphi+VCL=Простота и быстрота разработки. Тут я с тобой полностью согласен! Но я скажу что Python слил только тогда когда увижу что Delphi осилит хотя бы этот список виджетов(см выше)...

                                                                                                                                                                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                                                                                                                                                                        А для питона такой за деньги купить можно?

                                                                                                                                                                                                                                                                                                                        Можно! Smike только для тебя сегодня и до конца недели скидки – 20%. Продам 100% й рецепт «как к программе на Python прикрутить VCL или ваще «С»ёвое че нить.

                                                                                                                                                                                                                                                                                                                        Цитата Smike @
                                                                                                                                                                                                                                                                                                                        Для Python'а же ничего подобного вообще нет.

                                                                                                                                                                                                                                                                                                                        LOL! :D Smike ты начал разговор с TreeView. PLZ погугли на тему к примеру «Python TreeView» а потом говори что «питон шумно сливает» ладно?
                                                                                                                                                                                                                                                                                                                          Цитата best_lamer @
                                                                                                                                                                                                                                                                                                                          Delphi+VCL=Простота и быстрота разработки. Тут я с тобой полностью согласен! Но я скажу что Python слил только тогда когда увижу что Delphi осилит хотя бы этот список виджетов(см выше)...

                                                                                                                                                                                                                                                                                                                          Нет проблем. Было бы желание и необходимость. QT же прикрутили к CLX? А где-то на сорцфордже GTK+ for Delphi ;)

                                                                                                                                                                                                                                                                                                                          Цитата best_lamer @
                                                                                                                                                                                                                                                                                                                          Можно! Smike только для тебя сегодня и до конца недели скидки – 20%. Продам 100% й рецепт «как к программе на Python прикрутить VCL или ваще «С»ёвое че нить.

                                                                                                                                                                                                                                                                                                                          Зачем? Чего мне не хватает в Delphi, что дал бы мне Питон? Кроссплатформенность? Если правильно писать, то можно потом компилировать и FPC или хотя бы Kylix (а многие компоненты и на него рассчитаны) скомпилировать.

                                                                                                                                                                                                                                                                                                                          Цитата best_lamer @
                                                                                                                                                                                                                                                                                                                          LOL! :D Smike ты начал разговор с TreeView. PLZ погугли на тему к примеру «Python TreeView» а потом говори что «питон шумно сливает» ладно?

                                                                                                                                                                                                                                                                                                                          А ты уже погуглил? Покажи мне что-нибудь подобное. Начнем хотя бы с многострочных деревьев :)
                                                                                                                                                                                                                                                                                                                            fpc и Delphi несовместимы - это не значит что нельзя портировать... но портирование это работа! О Kylix я бы вообще помалкивал... У меня Delphi 7 под Wine замечательно себя чувствует раз туда разговор пошел.

                                                                                                                                                                                                                                                                                                                            Цитата Smike @
                                                                                                                                                                                                                                                                                                                            Покажи мне что-нибудь подобное. Начнем хотя бы с многострочных деревьев

                                                                                                                                                                                                                                                                                                                            Набираю в гугле "Python GtkTreeView example"
                                                                                                                                                                                                                                                                                                                            Первый в списке GtkTreeView: A short tutorial ;)

                                                                                                                                                                                                                                                                                                                            Добавлено
                                                                                                                                                                                                                                                                                                                            А вообще Smike если тут чего не найдеш спрашивай. 8-)
                                                                                                                                                                                                                                                                                                                              Цитата best_lamer @
                                                                                                                                                                                                                                                                                                                              fpc и Delphi несовместимы

                                                                                                                                                                                                                                                                                                                              Смотря на каком уровне.

                                                                                                                                                                                                                                                                                                                              Цитата best_lamer @
                                                                                                                                                                                                                                                                                                                              Набираю в гугле "Python GtkTreeView example"
                                                                                                                                                                                                                                                                                                                              Первый в списке GtkTreeView: A short tutorial ;)

                                                                                                                                                                                                                                                                                                                              И где там хоть слово о многострочных деревьях?
                                                                                                                                                                                                                                                                                                                                Цитата Smike @
                                                                                                                                                                                                                                                                                                                                Смотря на каком уровне.

                                                                                                                                                                                                                                                                                                                                На уровне открыл examples из Delphi(fpc) в fpc(Delphi) и просто нажав на кнопку Run получил готовую программу без всяких преобразований в исходном коде.
                                                                                                                                                                                                                                                                                                                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                                                                                                                                                                                                                                                                                                                0 пользователей:


                                                                                                                                                                                                                                                                                                                                Рейтинг@Mail.ru
                                                                                                                                                                                                                                                                                                                                [ Script execution time: 0,3859 ]   [ 14 queries used ]   [ Generated: 8.07.25, 05:53 GMT ]