LINUX.ORG.RU

Perl 6 vs Python 3

 , ,


3

4

Дискач.

Чтобы писать утилиты и демоны например для десктопа. Допустим оставим в покое веб-девелопмент, там и так тесно. И забудем былое, Python 2, Perl 5 и связанные стереотипы.

P.S. Прошу не удалять за тупняк, я понимаю как это выглядит. Но тема то интересная

★★★★★

Последнее исправление: vertexua (всего исправлений: 2)

Ответ на: комментарий от Lilly

питон, код умрёт в рантайме.

Ложь же, такие ошибки элементарно находятся статически.

% mypy a.py
a.py:3: error: Name 'moroning' is not defined
% mypy b.py
b.py:5: error: Too few arguments for "a"
slovazap ★★★★★
()
Ответ на: комментарий от Deleted

Смысл сравнивать с бесполезным мусором? Конечно я видел этот cython (на картинках), но этим никто не пользуется.

bread
()
Ответ на: комментарий от slovazap

Утверждение «python3 a.py при запуске мало что проверяет статически» это не одно и то же, что и «сторонний инструмент mypy a.py может искать».

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

Lilly
()
Ответ на: комментарий от Deleted

перл уникален, второго перла нет

НЕТАКИЕКАКВСЕ. Смотришь, а там мусорная скриптуха аля awk, поверх которой навернули нечто похожее на высокоуровневый ЯП (но с ручным разыменованием ссылок, чтобы не заскучать).

bread
()

Уж извините что пользуюсь вашим ехидным тредом в личных целях (не надо было писать «perl» в тегах хе-хе), всегда рад помочь тем кто пользуется Perl'ом. Домашнее задание делать за вас не буду, но могу показать как красивше переделать ту или иную конструкцию. 10 минут назад переписал babytalk знакомого. Так что обращайтесь, особливо хейтеры. Приносите ro пятёрочный код - вместе похохочем.

perl5_guy ★★★★★
()
Ответ на: комментарий от perl5_guy

Ага, ага.. прогонишь код через Deparse, и вуаля :-D

Deleted
()
Ответ на: комментарий от slovazap

Бинарники требуют культуры разработки. Как и любая информация, она распространяется медленно и неравномерно. То, что кто-то проверит, у кого-то упадёт после месяца рантайма. В этом и разница, нужно ли язык обвязывать вспомогательными инструментами, чтобы компенсировать отдельные характеристики, или нет. Если у тебя как цель любой ценой сейчас делать вид, что mypy это cpython, разговор продолжать бессмысленно.

Lilly
()
Ответ на: комментарий от bread

Ты не можешь править, ведь ты не понимаешь нихрена в том что говоришь. И об XS ты нихера не знаешь, и h2xs видел только на картинках. Всё это видно невооруженным глазом, и мнение твоё — пыль. Каждая реплика — высер: «perl6 не для скриптов, потому что запускается не 0.009 секунды, а 0.9». Ты убог.

Deleted
()
Ответ на: комментарий от Lilly

Если у тебя как цель любой ценой сейчас делать вид, что mypy это cpython, разговор продолжать бессмысленно

:-D

- А скорость? - pypy - А типизация? - mypy - A GIL? - jython - А работать? - cpython, который нихрена этого не умеет)

Deleted
()
Ответ на: комментарий от Deleted

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

Lilly
()
Ответ на: комментарий от Lilly

я действительно рад

хм... теперь сомневаюсь...

Deleted
()
Ответ на: комментарий от Lilly

Если у тебя как цель любой ценой сейчас делать вид, что mypy это cpython, разговор продолжать бессмысленно

Равно как и если у тебя цель любой ценой сделать вид что проверка типов перестаёт быть таковой если происходит не при запуске или компиляции.

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

slovazap ★★★★★
()
Ответ на: комментарий от anonymous

нет более мусорной скриптухи, чем питон

Питон не очень то и скриптуха. Это игрушечный ЯП для школьников, каким-то боком (блат, подкуп, лоббирование) пролезший в мейнстрим.

bread
()
Ответ на: комментарий от Deleted

Ты не можешь править

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

bread
()
Ответ на: комментарий от bread

мразь, ты был помножен мною на ноль. Побежал отвечать за скриптопарашу, клоун.

anonymous
()
Ответ на: комментарий от bread

Не «каким-то боком», а закономерно. Делали так, чтобы а) дуракам и б) элитке было негде «разгуляться». К чему это приводит: к понятному коду. Понятный код это что: Это хорошо. Для многих продакшенов это главней, чем скорость или безопасность.

anonymous
()
Ответ на: комментарий от anonymous

Тем более что на безопаность Питона пока массовых жалоб нет.

anonymous
()
Ответ на: комментарий от anonymous

Так ведь это плохо, Михаил. Дураков в принципе нельзя допускать к инженерным задачам. Чаще всего примеры говнокода написаны людьми которые даже пузырьковую сортировку без гугла не напишут. Таких чуваков должно ссаными тряпками гнать сразу после собеседования, а вы предлагаете их трудоустраивать?

perl5_guy ★★★★★
()
Ответ на: комментарий от Lilly

Но ведь это так специально задумано, проверка типов занимает время. Интерпретатор просто научили их принимать как валидный синтаксис, но игнорировать. А mypy, занимающий долгое время на верификацию, запускается во время релизов, на CI, там же где и тесты

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

На ракете даже если блоб собрать, то он запускается у меня 200 мс

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

bread
()
Ответ на: комментарий от Alve

Между перлом и питоном нужно выбирать Ruby.

Игра была равна, играли дватри этих самых.

bread
()

Чтобы писать утилиты и демоны например для десктопа

Надо брать C++ или C или раст. ЯП, требующие интерпретатор плохо годятся на что-то, кроме скриптов и прототипов. Ну а из этих двух однозначно питон.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от anonymous

К чему это приводит: к понятному коду. Понятный код это что: Это хорошо.

Здесь соглашусь. Хорошо перлоилитку пропололи этим питоном.

bread
()
Ответ на: комментарий от bread

Бизнесу нужна предсказуемость, поэтому например взлетела Ява. Питон - это такая Ява для бедных.

anonymous
()

Дискач.

Ok

Чтобы писать утилиты и демоны например для десктопа.

Правило простое: «поддерживать и отвечать будешь сам? Пиши на чём угодно».

Perl 6 vs Python 3

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

Но тема то интересная

Одно «сдохло», и всем это известно, а другое активно развивается. Понятно, что смысла вкладываться (не ради «интереса») в перловку под любым названием нет, на мой взгляд.

В технические детали не вдаюсь, так как ни на одном из них «профессионально» (то есть за деньги) не пишу.

anonymous
()
Ответ на: комментарий от peregrine

Надо брать C++ или C или раст. ЯП, требующие интерпретатор плохо годятся на что-то, кроме скриптов и прототипов. Ну а из этих двух однозначно питон.

Поддержу оратора.

anonymous
()
Ответ на: комментарий от vertexua

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

Может быть, это был такой хитрый план Гвидо, который видел на двадцать лет вперёд и подумал «Но ведь проверять базовые проверки это дорого, будем это делать отдельным инструментом». А может быть, когда он на коленке дизайнил язык, он подумал «А зачем вообще проверять, определена ли переменная, просто упади в рантайме, сейчас пойдёт такое, а там посмотрим», а потом, когда выяснилось, что всё-таки это не очень, пришлось этот анализ вкорячивать сбоку синей изолентой, как с юникодом, присваиванием в условиях и другими историями. Об этом история уже умалчивает и, на самом деле, нет никакой разницы, как было на самом деле.

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

Вообще, обсуждать питон это довольно скучное занятие, если у тебя есть что по raku спросить - спрашивай, если нет - не кастуй. :)

Lilly
()
Ответ на: комментарий от Lilly

Ок, спс. Можно поподробнее о M:N многозадачность? Как оно решает когда создавать новые потоки? Есть ли work stealing? Есть подводные камни? Опять же, например тот же Go - нету подводных камней. Просто работает. Идеально и всегда. IO-bound, CPU-bound, не важно, планировщик будет работать отлично.

Например в том же Rust будет куча приседаний по вопросам:

  1. Какой планировщик? Например далее пускай Tokio (еще есть runtime-native)

  2. Хорошо ли ты подумал, отдать задачу на пул потоков или оставить в главном loop вместе с IO?

  3. Не применил ли ты внутри Tokio обычный Mutex, вместо правильного mutex, совместимого с неблокирующим кодом.

  4. Если создать цепочку вычислений, то на каком пуле конец цепочки будет выполнен? А если я попытаюсь результат двух future объединить и обработать, а один запущен на Tokio, а другой на пуле потоков? В той же Scala каждый сегмент цепочки получал на вход свой executor, как укажешь так и будет (хотя там никто и не ставил задачу делать zero-cost)

Там сейчас целая рабочая группа мозги ломает как улучшить эргономику. Я думаю у Perl 6 просто никто не дает таких гарантий по overhead как там, все чуть проще, но work stealing все равно неплохо бы иметь

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 5)
Ответ на: комментарий от RazrFalcon

А что оно? Я тебя о Rust скастовал если что, читай второй абзац. Может async/await в каком-то статусе не оч, но сами Futures уже давно продакшн. И вот эти все танцы

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от bread

Тю, вон адепты перловки считают, что и секунда норм.

1/10 секунды, пиздабол. 😁

Deleted
()
Ответ на: комментарий от vertexua

Так я же и говорю - в такие дебри не лез. Оно мне не надо. Тот же actix все это непотребство абстрагирует и ок.

PS: смотрел сорцы actix - это ужас. Не ад уровня C++, но всё же слишком большая плата за zero-cost. Надеюсь async упростит код. Но всё равно жуть.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

от же actix все это непотребство абстрагирует и ок.

Там все future в IO потоке. Сделаешь в SyncArbiter актора, тогда будет thread pool. Делаешь ручками.

Если что, я не говорю что это плохо, но я могу себе представить как вот так «не интересующиеся» влепят на обработке request какую-то блокирущую парашу или cpu-bound task и все станет раком

vertexua ★★★★★
() автор топика
Ответ на: комментарий от anonymous

К чему это приводит: к понятному коду.

Понятный код - это не хороший код. Это понятный код.

Понятный код это что: Это хорошо

Нет, понятный код - это понятный код. Говнокод понятный лучше чем говнокод непонятный, но это не хороший код, а сорта говна.

Deleted
()
Ответ на: комментарий от bread

Мне просто нравится смотреть как адепт рвется в каждом комменте.

И в подъезде небось срешь чтоб поржать с бугурта соседей? Ыыы, капец они рвутся, ыыы.

Deleted
()
Ответ на: комментарий от bread

Прикинь, даже такой дебил как я

Это очевидно и в доказательстве не нуждается

может работать с вашей скриптопарашей

А это нуждается в обосновании. Так как противоречит вышесказанному факту.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.