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


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0532 ]   [ 14 queries used ]   [ Generated: 18.07.25, 13:02 GMT ]