На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Модераторы: RaD
  
    > Почему Python ?, Чем он лучше, совершеннее?
      У меня общий вопрос. По поводу предпочтения именно этого языка. Стоило ли бы уделять ему внимание, более особое нежели, скажем языку появившимуся, ранее его. Например Паскалю?

      Я слышал что одной из особенностей этого языка, являются так называемые "модули исключений". Что бы это могло означать?

      И что например означают точки, принятые в синтаксисе процедур и функций, вроде:

      Function.rsc (x + y); Как то так.

      Я бы понял это как в Delphi, когда речь идёт о обозначении одной из вариабельностей функции "Function"?

      Добавлено
      Ошибся. Я хотел сказать: Области задействования функции.
        Цитата Ximial @
        Стоило ли бы уделять ему внимание, более особое нежели, скажем языку появившимуся, ранее его

        Если бы этот критерий был существенным, то мы до сих пор сидели бы на Кобол и Ада. Так, что "время появления" - не критерий вовсе.

        Цитата Ximial @
        модули исключений

        Не знаю что такое "модули исключений". Может имеется в виду конструкция try/except/else/finally? О ней можно почитать здесь, например. Действительно очень нужная фича и существует в большом количестве более-менее современных языков.

        Цитата Ximial @
        точки, принятые в синтаксисе процедур и функций

        Точка - обращение к атрибуту объекта, чем бы он не являлся: свойством, методом, пакетом, модулем.

        Цитата Ximial @
        вариабельность функции

        Поиск по фразе "Delphi вариабельность функции" не дал релевантных результатов. Может вы о переопределении? Или о таком?
        Сообщение отредактировано: piksel -
          Цитата Ximial @
          У меня общий вопрос. По поводу предпочтения именно этого языка.
          Если тебе язык не нравится, можешь его не изучать. Если на его изучении кто-то настаивает, вопросы надо задавать ему.

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

          Из недостатков: управление памятью на основе счётчиков ссылок хоть и позволяет уничтожать объект сразу после окончания его использования, затрудняет параллельное выполнение потоков - все потоки исполняются на одном ядре.
          Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
            Цитата
            позволяет уничтожать объект сразу после окончания его использования


            Вы говорите об объекте, типа "Edit1, Memo1". Или имеете ввиду, задействованную область памяти, которую надо очистить?

            В Паскале, хотя и ходят слухи, о очистке области памяти, посредством самого паскаля.
            Но лично на мой взгляд, если охота, перестирать массивы данных, для нового использования, то там вернее бы это делать, через встроенный ассемблер.


            Цитата
            Поиск по фразе "Delphi вариабельность функции" не дал релевантных результатов. Может вы о переопределении? Или о таком?


            В Delphi, например пишется:

            Memo1.lines - И речь идёт, не о том же самом, что о:
            Memo1.lines.text
            Memo1.lines.Add(s:string);
            Memo1.lines = Memo1.lines;
            Memo1.lines <> Memo1.lines.text

            Если Memo1, просто считать, не обстрактным понятием "объект", и понимать как "функцию" или "подпрограмму", то помоему, мая характеристика бы подходила.





            В паскале бы, аналогичное "по моему", обращение, звучит как:

            Function ERT(y:integer; s:string; c:char);

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


            Цитата
            try/except/else/finally


            А понятно. Это усовершенствованности условных операторов.

            Добавлено
            piksel: А если, точка, как вы говорите, используется в случае работы с обектами.
            Вероятно имеются ввиду визуальные обьекты Windows окна программы.
            А меня бы интересовал питон, в чистом виде, не относящийся к Windows обьектам.
            Означало ли бы это, что точку я больше не должен видеть. Там где я её видеть не привык?

            Добавлено
            Цитата
            затрудняет параллельное выполнение потоков - все потоки исполняются на одном ядре

            Я использую, например TMT Pascal 3, компилятор, и по моему, о нескольких, парралельных потоках - не приходилось как то и догадываться.

            Добавлено
            В то же время как компилятор TMT Pascal 4 для windows. Вроде и даёт возможность работы с несколькими потоками. Но сам по себе язык, я бы не назвал уже паскалем. Потому что спецификация синтаксиса, настолько сильна что уже кажется что речь идёт о другом языке.

            Добавлено
            TMT Pascal 4, при установке, так и пишет: "Multi targets".

            Добавлено
            А какой, бы компилятор, был бы предпочтительнее для Питона?
              Цитата Ximial @
              Вы говорите об объекте, типа "Edit1, Memo1". Или имеете ввиду, задействованную область памяти, которую надо очистить?
              Объект типа "Edit1, Memo1" в питоне является литералом. На него есть ссылка в таблице констант, поэтому он никогда не уничтожается. К тобу же он неизменяемый, поэтому всегда остаётся в памяти.
              Речь идёт об объектах, создаваемых в ходе работы программы (включая все встроенные типы типа int, float, str, библиотечные классы, и классы, описанные пользователем). Как только на объект такого типа исчезает последняя ссылка (завершается функция, в которой эта ссылка существует или производится присваивание переменной другого значения) объект удаляется. Вызывается финализатор, если задан, чистятся все ссылки, которые были внутри объекта, и память из под объекта освобождается. Существуют некоторые особые ситуации, но в целом происходит именно так. Объекты, ссылки на которые потеряны (можно например создать кольцевой список и потерять на него ссылку) так не очищаются, для их очистки вызывается сборщик мусора. Он, правда, иногда не может самостоятельно удалить объекты, имеющие финализатор, поскольку там может быть важен неизвестный ему порядок удаления объектов. Но он возвращает их список, позволяя очистить их вручную.
              Цитата Ximial @
              то там вернее бы это делать, через встроенный ассемблер.
              Зачем тогда тебе ЯВУ? Пиши всё на ассемблере. И ещё интересно, как ты сможешь воспользоваться ассемблером, если тебе неизвестна исполняющая система? Паскаль в отличие от Delphi - многоплатформенный.
              Цитата Ximial @
              Если Memo1, просто считать, не обстрактным понятием "объект", и понимать как "функцию" или "подпрограмму", то помоему, мая характеристика бы подходила.
              Эта фраза выдаёт в тебе начинающего "программиста" нахватавшегося кое-каких сведений по верхам. И которому лень эти сведения самостоятельно систематизировать. Или оказалось не по силам. В данном синтаксисе Memo1 может означать только переменную, хранящую ссылку на объект (или функцию без параметров, возвращающую такую же ссылку). С объектом по этой ссылке и производятся дальнейшие действия, точнее с его атрибутом lines.
              В принципе, это могла быть не ссылка а запись (структура), но само имя переменной выдаёт брошенный на форму контрол, у которого даже имя не поменяно (его редко кто меняет - лень-матушка).
              И, Delphi вовсе не является идеальным образцом языка программирования.
              Один из существенных, на мой взгляд, недостатков Паскаля - вызов функции без параметров неотличим от обращения к переменной.
              Цитата Ximial @
              А понятно. Это усовершенствованности условных операторов.
              Никогда больше этого не повторяй. Это блок обработки исключений. Исключение - ситуация, которая по каким-либо причинам не может быть обработана в точке возникновения. Можно, как в старые времена, возвращать код завершения и каждый раз анализировать его в точке вызова (тратя на это время даже пи нормальном выполнении программы), а можно "бросить исключение". Где-нибудь выше по иерархии вызовов, какая-нибудь из функций должна знать, что в такой ситуации делать. Обработка исключения в таком случае достаточно медленный процесс, зато при нормальной работе программа почти не замедляется. И забыть обработать ошибку тебе не дадут (программа просто завершится с ошибкой).
              Цитата Ximial @
              Я использую, например TMT Pascal 3, компилятор, и по моему, о нескольких, парралельных потоках - не приходилось как то и догадываться.
              Большинство ЯП не предусматривают параллельной обработки, но как правило, при соблюдении некоторых не очень обременительных ограничений, и не препятствуют ей. Иногда нужные для запуска параллельных потоков процедуры даже есть в библиотеке.
              В Питоне параллельная обработка предусмотрена языком, и её даже можно использовать (к примеру, для параллельного приёма данных с нескольких источников, вариант - скачивание нескольких файлов из сети), но при этом все потоки поочерёдно исполняются на одном ядре процессора. Возможно, разработчикам в будущем удастся справиться с этим ограничением, и тогда параллельную обработку можно будет использовать и для внутренних задач.
              Цитата Ximial @
              А какой, бы компилятор, был бы предпочтительнее для Питона?
              Питон, вообще-то, интерпретируемый язык. Хотя для него и существует компилятор PyPy. Часто он даёт существенную прибавку в скорости, но не всегда. Лично я обхожусь интерпретатором от создателей языка CPython

              Тебе стоит нормально, чтобы можно было полноценно пользоваться, изучить хотя бы один язык, а не кидаться с одного на другой.
              Загляни на "Rosetta Code". Там много примеров решения небольших задач сразу на нескольких языках. Сможешь сравнить языки между собой.
              Сообщение отредактировано: amk -
              Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                Одно из отличий питона от паскаля в том, что в облаках aws и gcp (и, может быть, в других) интегрированный функционал типа лямбды на питоне писать можно, а на паскале - нет.
                Мои религиозные убеждения не позволяют мне комментировать код.
                Моё мировоззренье таково: в программе комментария ни одного!
                  Цитата
                  Можно, как в старые времена, возвращать код завершения и каждый раз анализировать его в точке вызова (тратя на это время даже пи нормальном выполнении программы)


                  Не согласен. Сам я никогда не прибегаю, не к чему сложнее, чем оператору, указывающему, выполнить ли часть кода или пропустить. Мне всегда этого хватает. Вы ориентируетесь, посто на стандартное, теоритическое мировоззрение. Которое убеждает, что архитектура ПК. Сама по себе, обязательно бы была, той, как о том написанно. Можно всё время не снимая очки, мыслить в ключе именно этого мировоззрения, и даже не заподозрить, что мировоззрение может быть и другим.

                  Цитата
                  Это блок обработки исключений.

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

                  Не всегда нужные, и немалые блоки ассемблера, подразумеваются, под использованием в программе, даже переменной определённого класса. Хотя казалось бы, что это всегда только область памяти, и только размер этой области, якобы без обрабатывающей её подпрограммы.

                  Добавлено
                  Возвращаясь, бы к первой цитате. Как бы вы думали сами? Ассемблер IBM - элементарен или разлогаем на составной язык? По учебникам вроде говорят, что - нет. А я своего мнения.

                  Добавлено
                  Почему бы просто, продавцу и изготовителю ПК, не заменить наклеенную на нём позорную этикетку "ЯВА" на респектную "Parlament"? Что выглядело бы более правдоподобным?

                  Добавлено
                  И потом, я знаю что за люди, американцы, сами по себе. Они до гробовой доски, будут дорожить секретами своей фирмы. Секреты эти, они умеют охранять, с одинаковой степенью секретности и на протяжении долгого времени. Менять позорную этикетку сигарет, на красивую - тоже их привычный обычай. Я имею ввиду, выдавать велосипет, за мотоцикл. Свои секреты, по привычке - они зарывают очень глубако. Так же как и характерно - водить кого то по ложному следу тайны. Более того на этих тайнах, они вообще повёрнуты.

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

                  Добавлено
                  Цитата
                  И ещё интересно, как ты сможешь воспользоваться ассемблером, если тебе неизвестна исполняющая система?

                  Что это значит? Что значит исполняющая система?

                  Добавлено
                  Цитата
                  Объект типа "Edit1, Memo1" в питоне является литералом. На него есть ссылка в таблице констант, поэтому он никогда не уничтожается. К тобу же он неизменяемый, поэтому всегда остаётся в памяти.
                  Речь идёт об объектах, создаваемых в ходе работы программы (включая все встроенные типы типа int, float, str, библиотечные классы, и классы, описанные пользователем). Как только на объект такого типа исчезает последняя ссылка (завершается функция, в которой эта ссылка существует или производится присваивание переменной другого значения)


                  Ну понятно. Вы говорите, просто. Что при присовокуплении объекта Memo1, к программе. В EXE, зашивается его подпрограмный модуль. После этого EXE, от этого модуля уже не очистиш. А то что мы можем, это почистить и сыкономить, ту немногую память - как процесс возможного. Я вас понимаю?

                  Добавлено
                  При этом, модуль зашивается, не куском а фрагментно и даже кое где на уровне смешивания напитков.
                    Цитата Ximial @
                    Ассемблер IBM - элементарен или разлогаем на составной язык?
                    Ты хочешь сказать, что знаешь ассемблер IBM? Сейчас не многие могут похвастать, что видели хоть строчку на нём.
                    Цитата Ximial @
                    Почему бы просто, продавцу и изготовителю ПК, не заменить наклеенную на нём позорную этикетку "ЯВА" на респектную "Parlament"? Что выглядело бы более правдоподобным?
                    Это что за набор слов?
                    Цитата Ximial @
                    Что это значит? Что значит исполняющая система?
                    Ну вот, ты даже не знаешь, что такое исполняющая система. А ты знаешь, что многообразие процессоров не ограничивается Intel-совместимыми процессорами? И почти для всех из них можно писать на паскале.
                    Цитата Ximial @
                    Вы говорите, просто. Что при присовокуплении объекта Memo1, к программе. В EXE, зашивается его подпрограмный модуль.
                    Это ты сам придумал.
                    Цитата Ximial @
                    Я вас понимаю?
                    Похоже, не понимаешь. А следующая фраза вообще непонятно, на каком языке написана.
                    Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                      Цитата
                      Исключение - ситуация, которая по каким-либо причинам не может быть обработана в точке возникновения. Можно, как в старые времена, возвращать код завершения и каждый раз анализировать его в точке вызова (тратя на это время даже пи нормальном выполнении программы), а можно "бросить исключение"


                      По моему, это просто одна сплошная теория, не имеющая с реальной механикой никаких отношений. Причём теория идеализированная. Если я понял эту фразу что она как таковая о:

                      Использовании (к примеру) оператора паскаля if then befin end; в сравнении с if then begin else;
                      И вы бы сказали, что для симуляции, второго оператора - требовалось бы два оператора, первого вида.

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

                      Но точно такой же множественный возврат, к точке анализа условия, получился бы в случае, сравнения одной строки с другой, т.е. string. Но переменная типа string - это массив байт.
                      И сравнивая пару строк на идентичность, через оператор, мы вынуждены по отдельности сравнивать каждый их байт. И из за этого множественно возвращаться в точку обработки исключений. Чего бы не произошло, сравнивай мы две переменный в один байт, скажем char или byte.

                      Добавлено
                      Цитата
                      Это ты сам придумал.

                      Ну, ещё раз обьясняю, на примере delphi. Как только мы решим, использовать в своей программе компонент Memo, или может быть какой другой. Даже взглянув, на список подключёных модулей, сможем заметить - что там появился, один из тех, которого раньше там не было. При компиляции этой программы. Можно так же заметить, что если сравнивать по размеру, пару exe программ, с кинутым на форму Memo и которая без него. То эта пара программ, будет отличаться по размеру - заметно. Хотя и в Delphi, и предусмотренна операция уничтожения обьекта: Memo1.Free; Кстате от которой иной раз, программа вообще может уже не прочухаться.
                      Но получается что, уничтожили мы только ссылку, на этот компонент. Но ресурсы компюютера, такие как оперативная память, модуль Memo, зашитый в exe, и кстате говоря зашитый, не лучшим способом, потомучто есть мнение, что программа ассемблера, будет постоянно спотыкаться о куски этого модуля, так как этот модуль зашивается не цельным фрагментом кода, а в разделённом на фрагменты виде.

                      Добавлено
                      Цитата
                      Ты хочешь сказать, что знаешь ассемблер IBM

                      Ну, мне казалось что я имею ввиду стандартный ассемблер для ПК.

                      Добавлено
                      Цитата
                      А ты знаешь, что многообразие процессоров не ограничивается Intel-совместимыми процессорами? И почти для всех из них можно писать на паскале

                      Ну, знаю.
                      Цитата
                      Это что за набор слов?

                      Это о том, как опытный рекламный делец, продавая покупателю, велосипед. Смог бы поднять в глазах покупателя, статус того велосипеда, до статуса мопеда.
                      И этот бы, рекламный делец, мог бы быть настолько ловок. Чтобы внушить, покупателю, что велосипед, работает, по совсем не тому принципу и правилам эээ физики.
                        Почему, я просто, пришол и создал, вот эту тему, именно про этот язык Питона:

                        Из того опыта, который есть лично у меня. Я заметил, вот что.
                        Я писал, и довольно долго, сначало на Delphi 6 а потом на Delphi 7.
                        Когда я стал писать на Delphi 7, то заметил за собой, что стал, в десятки раз, реже вообще создавать на нём программы. Я задавал этот вопрос,сначало своей лени, а потом заподозрил что надо бы задать его своей психологии. Что, не от смены ли интерфейса компилятора - я стал программировать - хуже?

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

                        Или можно было бы сказать, что если я пишу, или привык писать ручкой, определённой формы. То не стану ли я лучше писать, если заменю эту ручку на ручку другой формы, не смотря на опыт писать, ручкой первой формы.
                          Спасибо, за ответ.
                            С чего бы? Ответ тебя, похоже, вовсе не интересовал. Он у тебя уже был, готовый.
                            Питон плох уже потому, что похож на Delphi 6 ещё меньше, чем Delphi 7.
                            Всё написанное выше это всего лишь моё мнение, возможно ошибочное.
                              Ximial бредит, видели как он "ответил" самому себе? Наверное, он ошибся разделом. Или форумом. :rolleyes:
                              --Взошедшему на кучу да не погрязнуть бы!
                              user posted image
                                Об этом же свидетельствуют лишние запятые в предложениях. Даже я, путающий причастный оборот с деепричастным (потому что не гуманитарий, как большинство здешних посетителей, наверное), не ставил бы СТОЛЬКО лишних запятых. Может, Ximial просто бот?
                                --Взошедшему на кучу да не погрязнуть бы!
                                user posted image
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1551 ]   [ 14 queries used ]   [ Generated: 20.11.17, 22:59 GMT ]