| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Perl vs Python |
| Автор: Logo 10.5.2010, 17:47 |
| Почему до сих пор нет этой темы? Языки очень разные по дизайну, но пересекающиеся по областям применения. Я перлист, питон представляю только в общих чертах, поэтому опишу преимущества и недостатки с точки зрения перловика.
З.Ы. Сейчас мой выбор, хоть и не с легким сердцем - Perl. |
| Автор: k0rvin 10.5.2010, 19:08 | ||
что это? |
| Автор: gcc 10.5.2010, 19:38 |
| это наверное eval http://perldoc.perl.org/functions/eval.html (можно еще кусок кода вставить ) вот пример (если тут речь про это) http://forum.vingrad.ru/forum/topic-290936.html |
| Автор: qweqwe 10.5.2010, 19:50 |
| мне оба языка не нравятся, python меньше не нравится |
| Автор: Logo 10.5.2010, 21:19 | ||||
кемелбук, глава 18. В кратце, в процессе работы программы, то компилятор в байт-код вызывает интерпретатор байт-кода, то наоборот, интерпретатор вызывает компилятор. Интерпретатор вызывает компилятор при eval. Компилятор же вызывает интерпретатор с помощью специальных блоков BEGIN {} или загрузки модуля use Module(... params ...), или no Module(... params ...) (редко используется). Когда компилятор доходит до use, он прерывает компиляцию остальной программы, загружает, компилирует, и исполняет модуль (если это первое использование модуля), вызывает функцию import модуля с параметрами. Лишь после того, как use, BEGIN, или no отработают, компилятор продолжит компиляцию программы. Алсо, есть магический хеш, привязанные к лексической области видимости блоков, он позволяет создавать директивы с лексической областью видимости. В него могут писать use, BEGIN, или no, и значения его видны в лексической области видимости блока. Алсо, разные дополнительные приблуды, вроде перехвата компиляции ключегого слова, или перехвата конца компиляции лексического блока. |
| Автор: Фантом 10.5.2010, 21:49 |
| Самая известная (и, на мой взгляд, точная) характеристика Perl - это язык, программу на котором через месяц после написания не сможет понять даже тот человек, который ее писал. С дпугой стороны, пресловутые табуляторы Python - это тоже ужас. Так что из всех языков этой ниши, на мой взгляд, лучший - Lua. |
| Автор: k0rvin 10.5.2010, 22:45 | ||||||||
как всё сложно... то ли дело CL:
|
| Автор: Logo 10.5.2010, 22:48 | ||
Это шутка Ни что не мешает написать понятную программу. С другой стороны, если тебе надо написать такой код, чтобы через месяц после его написания самому не понять, в Perl тоже ничего не будет мешать. В отличии от Python. |
| Автор: qweqwe 10.5.2010, 22:52 |
а что в этом плохого? это наоборот здорово, кстати табы никто не заставляет использовать, наоборот, там принято пользоваться пробелами |
| Автор: gcc 11.5.2010, 00:37 |
| k0rvin, я что-то этого не видел раньше и гугл не говорит: http://www.google.com.ua/search?hl=uk&q=python+%D0%BA%D0%BB%D0%B0%D1%81%D1%81+%D0%BD%D0%B0+%D1%8D%D1%82%D0%B0%D0%BF%D0%B5+%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F&aq=f&aqi=&aql=&oq=&gs_rfai= http://www.google.com.ua/search?q=python+%D0%BD%D0%B0+%D1%8D%D1%82%D0%B0%D0%BF%D0%B5+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F+compile&hl=uk&start=10&sa=N т.е. можно загрузить любые классы или пропустить те которые сейчас не нужны (не загружать их, чтобы они не занимали ресурсы) и выполниять их где угодно? т.е. загружать классы на этапе выполнения? (хотя, говорят, в web это не очень часто нужно делать если работает в mod_* ...) |
| Автор: gcc 11.5.2010, 00:57 |
| еще тема была тут http://forum.vingrad.ru/forum/topic-281755/unread-1/hl/freebsd/0.html я бы на обоих программировал в принципе, если надо... и еще есть: java, php, etc... |
| Автор: A5uKa 11.5.2010, 10:59 |
| http://www.staringispolite.com/likepython/ |
| Автор: k0rvin 11.5.2010, 17:38 | ||
то было лирическое отступление, к питону никакого отношения не имеющее. впрочем как и к перлу =) |
| Автор: JackYF 11.5.2010, 17:54 | ||
Любой язык позволяет писать нечитаемое и не работающее месиво. |
| Автор: djamshud 11.5.2010, 17:58 |
| >Любой язык позволяет писать нечитаемое и не работающее месиво. Ну как сказать... Перл в этом смысле все же даст фору многим. http://www.linux.org.ru/forum/development/392747/page-1 |
| Автор: Logo 11.5.2010, 22:05 | ||||||
В принципе, ничего сложного. Это часть модульного механизма Perl, и используется повсеместно.
Для пользователя и вовсе пожалуй достаточно знать, что use это comple-time директива.
Если специально писать, то будет |
| Автор: W4FhLF 12.5.2010, 04:30 |
| Я никогда особо не писал на перле, но всё чаще пользуюсь питоном. Среди всех достоинств и синтаксического сахара, стоит отметить, что у питона гораздо шире спектр задач. Все популярные фреймфорки и библиотеки с которыми я работал имеют биндинги для питона. Хочешь гуй? Qt, GTK, Wx... Хочешь графику? Mathplotlib, OpenInventor, PyOpenGL... Работа с изображениями? PIL, OpenCV... Распознавание образов? pyFANN, pySVM... Параллельное программирование? mpi4py, pyCUDA (для GPU)... Математика? NumPy, SciPy... Кроме того python достаточно легко позволяет работать на уровне OS API. На нём легко можно писать системные утилиты. |
| Автор: qweqwe 12.5.2010, 05:44 |
но лучше этого не делать xD |
| Автор: GoldFinch 12.5.2010, 08:17 |
| я бы их скрестил. |
| Автор: A5uKa 12.5.2010, 08:30 |
| Главное, что есть Iron Python и уже сделали для VS 2010 ) |
| Автор: GoldFinch 12.5.2010, 08:44 |
| A5uKa, вот когда IronPython3 сделают, тогда будет от него польза, правда небольшая |
| Автор: gcc 12.5.2010, 13:57 | ||||
это все есть давным давно, и на других языках ruby, java, etc... все или многое из перечисленного, скорее всего... количество модулей на cpan 80 000 в 20 000 дистрибутивах, список авторов 8000 у perl на порядок больше готового для применения в различных задачах... (но это не значит что это все нельзя написать на python Добавлено @ 13:59
я видел разрабатывался транслятор байткода .NET в представление байткода Parrot, и обратно и для использования библиотек из других языков и, в том числе и проприетарных. |
| Автор: Logo 16.5.2010, 12:10 | ||||
Если заметь здесь "Python" на "Perl" почти ничего не изменится. + CPAN хороший репозиторий, а как в питоне, есть ли подобная вещь, мне не известно.
К Perl это имет отношение чуть меньше, чем никакого) |
| Автор: W4FhLF 17.5.2010, 08:23 |
Тем не менее в задачах связанных с вычислениями и расчётами предпочтение отдают Python'y. |
| Автор: GoldFinch 17.5.2010, 13:31 |
| в питоне есть встроенная поддержка больших числел. а в перле есть? |
| Автор: bems 18.5.2010, 03:08 |
| А на перле еще кто-то пишет? |
| Автор: Shaggie 18.5.2010, 06:05 |
| bems, ты не поверишь... но я могу это сказать про любой язык. |
| Автор: Logo 18.5.2010, 17:31 | ||
А на дельфях еще кто-то пишет (: ? |
| Автор: Logo 18.5.2010, 21:49 | ||
Встроенной нету. Но, понятно, есть отдельные классы, они входят в стандартную поставку, и прагмы для перегрузки констант на создание объектов, выше как раз пример кода с use bigrat. |
| Автор: bems 18.5.2010, 22:00 |
| Shaggie, конечно можешь. Свобода слова же. Ну я спросил просто, думал кто ответит Logo, нет. Это как-то отвечает на мой вопрос? |
| Автор: Logo 18.5.2010, 22:32 |
| Если это был не троллинг, то - программирует. С работой на perl проще. См. например http://hh.ru 46 вакансий perl, 23 python. |
| Автор: bems 18.5.2010, 22:34 |
| Logo, а зачем, если есть РНР? |
| Автор: W4FhLF 19.5.2010, 11:40 |
| bems, php де-факто для веб-разработки, однако сфера применения скриптовых языков какбэ немного шире. Там, где рулит питон php тихо отсасывает в сторонке. |
| Автор: bems 19.5.2010, 16:05 |
| W4FhLF, дык я именно про перл на фоне рнр говорил, а не на фоне питона. Так что не в кассу |
| Автор: JackYF 20.5.2010, 15:44 |
Да, я. |
| Автор: Logo 22.5.2010, 11:13 | ||
[
Возможно, но Perl тоже используется. У меня например стоит случайно поставленная программа из репозитория ubuntu, PerlPrimer, ДНК какие-то. Как и Perl чаще используется для веб, хотя у Python тоже юзабелен. То есть, как я и писал в первом посте, области применения сильно пересекаются. |