Как Python складывается с другими языками сценариев?

1

Я изучаю Python (и это мой первый язык программирования, поэтому не слишком интенсивный с вашими причинами), и я хотел знать, как он складывается на другие языки сценариев, такие как Perl и Ruby. Что такое Python лучше по сравнению с другими языками сценариев, и для чего это хуже?

  • 3
    это должно быть сообщество вики?
  • 0
    Python - отличный выбор для вашего первого языка! Хотелось бы мне узнать это еще в начале девяностых. Теперь я доволен написанием кода на Ruby, но думаю, я был бы одинаково рад написанием кода на Python.
Теги:
comparison

3 ответа

10
Лучший ответ

Прежде всего, совет - ищите ПОЗИТИВНЫЕ вещи, сказанные с разных сторон. Значит, вы должны доверять положительным словам о Perl источниками, связанными с Python (или положительные вещи, сказанные о Python источниками, связанными с Perl) гораздо больше, чем наоборот.

Две причины таковы:

1) Люди, у которых есть основания любить Python, НЕ были склонны говорить о Perl хорошие вещи, если они действительно не пытались быть объективными (чего вы в идеале хотите). И наоборот - это проблема с человеческими предубеждениями и мотивами, а не с Perl или Python.

2) Люди, пишущие такие сравнения в пользу одного языка, ОЧЕНЬ часто полностью неверно информированы и не очень практиковались в отношении того, с которым они неблагоприятны. Как доказательство см. В этой статье: http://python.about.com/od/gettingstarted/ss/whatispython_5.htm - в значительной степени все, что он может сказать о Perl, заключается в том, чтобы мягко и мягко сказать, компрометировать и полная койка. Я уверен, что у поклонников Perl есть одинаково мрачные удары Python, я просто никогда не читал достаточно о Python, чтобы иметь возможность подумать, что у меня на голове.


Во-вторых, помните, что, по крайней мере, для Perl - и я сильно подозреваю, для Ruby и Python - прозвище "скриптового" языка больше не применимо.

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

Однако на этом этапе своей долгой истории Perl никоим образом не ограничивается этими возможностями и дистанционно ограничивается этими возможностями и используется для разработки чего-либо: от сценариев до веб-фреймворков до серверов до крупномасштабного корпоративного программного обеспечения для программного обеспечения для биоинформатики.


В-третьих, посмотрите на это: у него много ссылок:

http://wiki.python.org/moin/LanguageComparisons

  • 4
    И, для яркого примера пункта №2, посмотрите на ответ Пола Натана. По крайней мере, некоторые из его сравнений сравниваются, основываясь на некоторых архаичных особенностях Perl, которые не были верны в последние пару лет (ненадежный ОО, отсутствие исключений, отсутствие веб-фреймворков), и некоторые, которые просто не являются реальными показателями (больше набор «основных» модулей)
  • 0
    @DVK: не согласен. Языки не являются библиотеками.
Показать ещё 4 комментария
6

Я изучаю Python (и это мой первый язык программирования, поэтому не слишком интенсивный с вашими причинами), и я хотел знать, как он складывается на другие языки сценариев, такие как Perl и Ruby. Что такое Python лучше по сравнению с другими языками сценариев, и для чего это хуже?

ММО.

Я некоторое время пытался Python 2.x и возвращался к Perl и С++.

Что хорошего в Python. Python обладает лучшей переносимостью и имеет современные библиотеки графического интерфейса. Стандартная библиотека в некоторых местах тоже очень приятная (мне понравилось случайное). Скорость выполнения арифметических выражений превосходит скорость выполнения Perl.

Что плохого в Python. Плохая документация. Никаких предупреждений, никаких типизации в сочетании со слабым типом/динамической природой языка - это ад. Обучение легкое - использование жесткого, в основном из-за незрелого оптимизатора, заставляющего задуматься о крайних случаях работы на ранней стадии цикла разработки. (Это несколько раз напомнило мне о Паскале.) OO - это беспорядок на данный момент: отличительные особенности и различия между классами старого и нового классов не очень хорошо прописаны; библиотеки не упоминают, какой тип классов они определяют.

Плохая документация, вероятно, должна быть выделена. Есть груды стандартных функций, но их цель в жизни на самом деле не указана и не приведены достойные примеры. И лучшая половина этих стандартных функций на земле Perl будет сидеть где-то в perldoc perlguts. Во всяком случае, поиск Google гораздо быстрее с Google.

Отсутствие предупреждений и отсутствие набора текста (и что по сравнению со слабыми Perl use warnings/use strict и субпрототипами) - это то, что в итоге привело меня обратно. Частично это потому, что я пишу код быстрее, чем я его читаю, поэтому мне нравится полагаться на компилятор/интерпретатор, чтобы сказать мне, где я мог бы написать то, что я на самом деле не имел в виду.

Также извините, но я бы бросил это на Python еще раз: использование отступов для обозначения структуры кода является kind'a kinky. Я не против этого сам по себе, и для коротких функций это очень приятно. Но через неделю я обнаружил, что более читаю код Python медленнее (по сравнению с С++ или Perl), потому что мне приходится всегда проверять, действительно ли оператор закрыт или он все еще продолжается. Если код не подходит ни одному экрану, то всегда нужно просто нажать PgDown/PgUp, чтобы проверить. Никогда раньше я не был благодарен {} s.

Все рассмотрено, Python в настоящий момент беспорядок. Достойный соперник, которого я наблюдаю, но недостаточно зрелый для моих повседневных потребностей. Если бы я сейчас принимал решение об изучении Python, я бы предпочел, чтобы Python 3.x созрел. Многие вещи, которые можно было бы изучить сейчас с Python 2.x, могут оказаться бесполезными в Python 3.x. И Python 3.x на данный момент не очень полезен, поскольку многие библиотеки еще не портированы на него.

P.S. Основная фиктивная часть, с которой я столкнулся, - это указатели на функции. Я обнаружил их раньше, чем я нуждался в них, написав start_time = time.time и time_elapsed = time.time() - start_time. Через полчаса, когда script закончил вместо результатов, мне представилось отличное исключение интерпретатора, в котором говорилось, что я не могу вычесть объект функции. И полчаса было вызвано стандартным циклом for, как научили меня уроки. Оптимизации, которые я просмотрел позже (range vs. xrange, ручная развертка цикла), запустил script менее чем за одну минуту.

2

Вот хороший обзор того, почему Python (язык) - очень приятное место для запуска программирования: http://www.python.org/about/

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

Как только вы изучите Python, я бы посоветовал вам также изучить другие языки, такие как Ruby, потому что разные языки предоставляют разные парадигмы для размышлений о программировании, расширяя тем самым ваше знание моделей вычислений.

  • 0
    +1: ссылка на сайт питона.
  • 0
    +1: не обсуждать другие языки без фактической основы (как в подавляющем большинстве ответов на вопросы, как это в конечном итоге делают).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню