На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (11) « Первая ... 2 3 [4] 5 6 ...  10 11 все  ( Перейти к последнему сообщению )  
> Python vs Delphi
    Цитата 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:

                                Я думаю так если продолжать дальше конструктивно то другое дело а так как разговор скатывается в холивар есть смысл продолжать в холиваре это моё мнение.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (11) « Первая ... 2 3 [4] 5 6 ...  10 11 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0635 ]   [ 15 queries used ]   [ Generated: 18.07.25, 16:51 GMT ]