Подтвердить что ты не робот

Следующий шаг после PHP: Perl или Python?

Может показаться, что его спрашивали много раз, но на самом деле это не так. Я сделал свое исследование, и теперь я очень хочу услышать мнения других.

У меня есть опыт работы с PHP 5, как с функциональными, так и с объектно-ориентированными методами программирования. Я создал несколько функционально-минималистических веб-сайтов.

Профессионалы могут согласиться с тем, что PHP не является языком программирования, который поощряет хорошие привычки развития. (Я считаю, что это не задача инструмента, но это не имеет значения.) Кроме того, его производительность также противоречива и часто считается плохим по сравнению с конкурентами.

В 42-м подкасте в блоге Stack Overflow разработчик из Польши спросил, на каком языке он должен учиться, чтобы улучшить свои навыки. Джефф и Джоэл предположили, что каждый из них поможет, хотя есть определенные, которые в лучшем случае улучшились. Несмотря на то, что они сделали несколько замечательных моментов, это не очень помогло мне.

С точки зрения новичка, не существует, который нельзя увидеть (исправление, предложенное S. Lott), многие различия между Perl и Python. Я хотел бы, чтобы вы подчеркнули свои сильные и слабые стороны и назвали несколько уникальных услуг.

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

Прежде всего, я хотел бы следовать структурам ООП и использовать его в корне. Я частично планировал многопользовательскую CMS, используя MySQL и XML, поэтому чем больше реализаций, тем лучше. Из-за его предполагаемого характера интенсивно будет использоваться строчная манипуляция.

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

Итак, вот мой вопрос: какой из них я должен попробовать first - Perl || Python?


Заключение

У Perl и Python есть свои поклонники, и это здорово. Я хотел бы сказать, что я благодарен за все участие - никаких следов пламенной войны нет.

Я принял самый ценный ответ, хотя здесь есть много прекрасных мини-статей. Как было предложено чаще, я сначала пойду с Python. Тогда я попробую Perl позже. Позвольте мне посмотреть, какой из них подходит мне лучше.

Во время разработки моей специальной CMS я собираюсь задать больше вопросов о программировании, потому что разработчики теперь могут рассчитывать друг на друга! Спасибо.

Изменить: Были некоторые люди, предлагающие выбрать Ruby или Java. Java действительно разочаровала меня. Возможно, у него отличные возможности, может быть, нет. Мне бы это не понравилось.

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

4b9b3361

Ответ 1

Perl - очень хороший язык, и CPAN имеет массу зрелых модулей, которые сэкономят вам много времени. Кроме того, Perl действительно продвигается вперед в настоящее время с множеством интересных проектов (в отличие от того, что неинформированные фанаты любят распространяться). Даже версия Perl 6 теперь освобождает рабочий Perl 6.

Я хочу сделать OO, я бы рекомендовал Moose.

Ответ 2

Честно говоря, "большинство" моего программирования было в Perl и PHP, и я недавно решил сделать свой последний проект на Python, и я должен признать, что с ним очень приятно программировать. Я колебался в целом не фигурные фигурные скобки, как то, что я всегда делал, но это действительно очень чисто. В конце концов, тем не менее, вы можете создавать хорошие веб-приложения со всеми 3, но если вы устали отбрасывать PHP, чтобы попробовать что-то новое, я бы рекомендовал Python и Django.

Ответ 3

Я бы пошел с Perl. Не все согласятся со мной здесь, но это отличный язык, хорошо подходящий для работы в системном администрировании, и он предоставит вам еще некоторые функциональные конструкции программирования. Это отличный язык для изучения того, как использовать наименьший объем кода для данной задачи.

Для сценария использования, о котором вы говорили, я думаю, что PHP может быть вашим лучшим выбором. Однако у Python есть несколько отличных веб-фреймворков, поэтому, если вы просто хотите попробовать новый язык для разработки веб-приложений, Python может быть вашей ставкой.

Ответ 4

У меня нет опыта работы с Python. Я очень ручаюсь, чтобы узнать Perl, а не из-за истощения, а потому, что TON учится на платформе. Ключевыми понятиями Perl являются: Do What я Mean (DWIM) и там больше, чем один способ сделать это (TMTOWTDI). Это означает, что, как правило, нет ошибочного подхода к решению проблемы, если проблема адекватно решена.

Начните с изучения базового языка Perl, а затем продолжите изучение ключевых модулей Perl, таких как IO:: File, DBI, HTML:: Template, XML:: LibXML и т.д. и т.д. search.cpan.org будет вашим ресурсом. perlmonks.org будет вашим руководством. Почти все, что вам нужно сделать, скорее всего, опубликует модуль.

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

Где используется Perl? Системные админы используют это сильно, как уже упоминалось. Вы по-прежнему можете делать отличные веб-приложения либо с помощью простой инфраструктуры CGI или MVC.

Ответ 5

Я не очень много работал с Python, но могу сказать, почему мне не понравилось в Perl, когда я его использовал.

  • Поддержка OO ощущается. OO в perl сильно отличается от поддержки OO на других языках, которые я использовал (включая такие вещи, как PHP, Java и С#).
  • TMTOWTDI (там больше, чем один способ сделать это). Хорошая идея в теории, ужасная идея на практике, поскольку она снижает читаемость кода.
  • Perl использует много волшебных символов.
  • Perl не поддерживает именованные аргументы функции, а это значит, что вам нужно выкопать в массив @_, чтобы получить аргументы, переданные функции (или, скорее, sub, поскольку perl не имеет ключевого слова function). Это означает, что вы увидите много вещей, подобных приведенному ниже примеру (перемещение), потому что SO не нравится код в пронумерованных списках.

Сказав все это, я посмотрю на Python. Если вы не хотите идти с чем-то более тяжелым весом, например С++ или С#/Java.

О, прежде чем я забыл: я хотел привести пример для 4 выше, но SO не любит помещать код в пронумерованные списки:

sub mySub {
    #extremely common to see in Perl, as built-ins operators operate on the $_ scalar or @_ array implicitly
    my $arg1 = shift;
    my $arg2 = shift;
}

Ответ 6

Недавно я сделал шаг от Perl до Python после нескольких Perl-только лет. Вскоре после этого я обнаружил, что начал читать все виды Python-кода, как и любой другой легко читаемый текст - чего я никогда не делал с Perl. Необходимость вникать в сторонний код Perl всегда была для меня кошмаром, поэтому это стало очень приятным сюрпризом!

Для меня это означает, что Python-код намного проще поддерживать, что в долгосрочной перспективе делает Python гораздо более привлекательным, чем Perl.

Ответ 7

Python чист и изящен, а тот факт, что LOTS C API был завернут, дает много мощных перехватов. Мне также нравится " Zen of Python.

  • Красивая лучше, чем уродливая.
  • Явный лучше, чем неявный.
  • Простой лучше, чем сложный.
  • Комплекс лучше, чем сложный.
  • Плоский лучше, чем вложенный.
  • Рельеф лучше плотного.
  • Показатели удобочитаемости.
  • Специальные случаи не являются достаточно сложными, чтобы нарушать правила.
  • Хотя практичность превосходит чистоту.
  • Ошибки никогда не должны проходить молча.
  • Если явно не отключено.
  • Перед лицом двусмысленности откажитесь от соблазна угадать.
  • Должен быть один - и желательно только один - сделайте это.
  • Хотя этот путь может быть не очевидным сначала, если вы не голландский.
  • Теперь лучше, чем никогда.
  • Хотя никогда не бывает лучше, чем сейчас.
  • Если внедрение трудно объяснить, это плохая идея.
  • Если внедрение легко объяснить, это может быть хорошей идеей.
  • Пространства имен - одна хорошая идея - позвольте сделать еще больше!

Ответ 8

Как программист Perl, я бы обычно говорил Perl. Но, исходя из PHP, я думаю, что Perl слишком похож, и на самом деле вы не получите этого. (Не потому, что мало чему учиться, но вы, вероятно, будете программировать на Perl, используя тот же стиль, что и на PHP.)

Я предлагаю нечто совершенно другое: Haskell (предложенный Джоэлем), Lisp, Lua, JavaScript или C. Любой из них сделает вас лучшим программистом, открыв новые способы взглянуть на мир.

Но нет причин останавливать изучение PHP тем временем.

Для хорошего взгляда на темную сторону этих языков, я от всей души рекомендую: Что вам не нравится в вашем любимом языке?

Ответ 9

Я предлагаю пройти начальный учебник каждого и решить для себя, который подходит вам лучше. Вы обнаружите, что можете делать то, что вам нужно сделать:

Учебник по Python= "http://docs.python.org/tutorial/classes.html#class-objects" rel= "nofollow noreferrer" > Python Классы)

Perl Tutorial= "http://perldoc.perl.org/perltoot.html" rel= "nofollow noreferrer" > Perl Классы) (Не удалось найти ни одного "официального" учебника perl, не стесняйтесь предлагать его)


По моему опыту, python обеспечивает более чистую, более прямолинейную работу.

Мои проблемы с perl:

  • 'use strict;', Taint, Warnings? - В идеале это не нужно.

  • Передача переменных: @; против $, vs shift

  • Scope my, local, наш? (Местная дефиниция, как представляется, особенно указывает на некоторую путаницу с perl: "Вы действительно, вероятно, хотите использовать меня вместо этого, потому что локальные не то, что большинство людей считают" локальным ".).

В целом с моими навыками perl я по-прежнему нахожу свою собственную справочную документацию для встроенных функций. Где, как и в python, я нахожу это меньше. (Я работал примерно в то же время, но мой общий опыт программирования со временем вырос. Другими словами, я, вероятно, буду лучшим программистом perl)

Если ваш гуру командной строки unix, хотя, perl может стать более естественным для вас. Или, если вы используете его в основном в качестве замены или расширения для задач администрирования командной строки, это может удовлетворить ваши потребности. По-моему, perl "быстрее на ничью" в командной строке, чем python.

Ответ 10

Почему в вашем списке нет Ruby? Возможно, вам стоит попробовать.

Ответ 11

"Я бы хотел следить за структурой OOP..." защищает Python или, тем более, если вы открыты, Ruby. С другой стороны, с точки зрения существующих библиотек, порядок, вероятно, Perl > Python → Ruby. С точки зрения вашей карьеры, Perl в вашем резюме вряд ли заставит вас выделиться, в то время как Python и Ruby могут привлечь внимание менеджера по найму.

Как программист PHP, вы, вероятно, увидите все 3 как несколько "обременительные", чтобы получить веб-страницу. У всех есть хорошие решения для веб-фреймворков, но ни одна из них не фокусируется на предоставлении веб-страницы, как на PHP.

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

Ответ 12

Если эти 2 являются вашим единственным выбором, я бы выбрал Python.

В противном случае вы должны изучить javascript.

Нет, я имею в виду, действительно изучаю это...

Ответ 13

Если вы не будете заниматься веб-разработкой с помощью этого языка, любой из них сделает это. Если да, то вы можете обнаружить, что создание веб-разработки в perl немного сложнее, поскольку все структуры требуют большего знания языка. Вы можете делать приятные вещи в обоих случаях, но я считаю, что perl позволяет более быстрое развитие.
Кроме того, perl regexes rock!

Ответ 14

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

PHP VS PYTHON OT PERL ИЛИ RUBY? Остановите его

Как отмечалось во многих комментариях, python чище, когда-нибудь, чьи фигурные скобки используются полностью. Вам просто нужно практиковать.