Про Perl 6! а) я считаю маловероятным превращение шестого перла в распространенный продакшен-язык. во-первых, у перла плохая карма в ноосфере, не всегда заслуженная, но это действительно очень специфическая вещь. во-вторых, мне кажется, что вся эта клоунада с десятилетним циклом разработки очень сильно подорвала доверие. Для меня лично перл является языком выбора для решения "алгоритмических" задач, обработки текста и прочих данных и т. п. В то же время я лично не планирую серьезное изучение шестого перла и переход на него. в-третьих, как всегда, в полный рост встает проблема тулинга и экосистемы.
Я считаю, что перл как язык разработки будет "финальным" — старперы будут его использовать до конца карьеры, а приток новых разработчиков будет минимальным. в первую очередь это, очевидно, будут существующие компании с большими системами на перле. Тот же Букинг, на мой взгляд, компенсирует unsexiness перла двумя доводами — а) "наша компания зарабатывает охулеард евра в месяц на екоммерсе, wanna join?" и б) сильнейшая инженерная команда, которая решает вопросы, ортогональные языку и технологии. То есть очевидно, что если бы букинг был написан на Scala + Postgresql, то решаемые вопросы были бы примерно такими же как сейчас (Perl + Mysql) с точностью до некоего изоморфизма. ‎- псы в рапиде
В то же время, на мой взгляд, Ларри Уолл — гениальный разработчик языков программирования. много лет назад я читал серию Apocalypses + Exegeses (http://squadette.ru/blog/2006/02/22/larry-wall-perl-6-apocaly...), и для меня это один из самых интересных текстов по разработке языков программирования ever. Я собираюсь внимательно прочитать все диздоки по шестому перлу: http://design.perl6.org/. конечно, часть повествования становится особенно понятна, если иметь хороший опыт разработки на стандартном перле — но в любом случае вещи, на которые Уолл обращает внимание и учитывает — очень сильно расширяет горизонты. ‎- псы в рапиде
Я так понимаю, что какая-то часть экосистемы/ноосферы перейдет в шестерку из пятерки, но с нуля изучать шестерку будет имхо сложновато. Думаю, там будет много моментов, которые абсолютно непонятны без опыта пятерки, но тривиально вытекают из опыта пятерки — на этом будет возникать много разных вопросов у людей, привыкших к другому. Я с трудом представляю себе переход того же Букинга на шестерку. Миграция с 5.14 на 5.18 заняла в районе года, сейчас идет постепенная подготовка к миграции на 5.22. Я так понимаю, в районе середины шестнадцатого может перейдем почти всюду! При этом в каком-то смысле тот же Букинг залочен на стандартный перл, потому что в кодовой базе адское, невероятное количество тулинга, знаний, опыта, стандартной функциональности и т. п. Сейчас если ты пишешь нечто новое в рамках стандартной кодовой базы, то тебе сразу из коробки доступно нереальное количество инструментов. Я думаю, что чтобы воспроизвести (с новыми, неизвестными глюками) тулинг стандартной кодовой базы на новом языке (хоть на Perl 6, хоть на Haskell, хоть на Elixir) — тебе нужно потратить год-два-три (речь не про человеко-годы, а про набор знаний, который возникает с течением времени). ‎- псы в рапиде
Как-то так, имхо. ‎- псы в рапиде
Мне кажется ты не раскрыл свой самый первый пункт - почему ты думаешь, что приток стартаперов будет небольшим. ‎- лишний бобр
@1master: там есть "во-первых", "во-вторых" и "в-третьих". Этого недостаточно? И там не про "стартаперов", а про "старперов". ‎- псы в рапиде
Я про "приток новых разработчиков будет минимальным". Остальное я видел, те части выглядят убедительно. ‎- лишний бобр
@1master: ну "там будет много моментов, которые абсолютно непонятны без опыта пятерки, но тривиально вытекают из опыта пятерки" вот это отвечает на вопрос ‎- right wing hug squads
(тянет руку с задней парты) это конечно на грани NDA, но если в общих словах -- а появление шестёрки не рассматривается (вашей компанией) как новый риск? ну, типа, переедете вы на 5.22, основной тим разработчиков языка уйдёт контрибьютить в шестёрку, пятёрка поболтается годик-два в bugfix-only режиме, а потом начнёт стареть -- и что делать? ‎- right wing hug squads
мне кажется, что плохая репутация в ноосфере может отступить, если есть киллер апп. вот взять руби - ну говно же, придумал какой-то японец, нет спецификации, никто не знает, как работает интерпретатор (в отличие от явы и сишарпа, например), но появился киллер апп и поперло. ‎- urquan
хочу напомнить про плачевное состояние Python 3, например, а там судя по всему отличий сильно меньше чем Perl 5 -> 6. Настолько меньше, что большая часть синтаксиса тупо конвертится скриптом. Тем не менее процент перешедших на Py3 крайне низок. ‎- Я много страдала
что касается "притока новых разработчиков" (все сказанное мое ИМХО, конечно), то нужно быть идиотом, чтобы начинать сейчас учить Perl, если ты не олдовый UNIX/Linux админ. Сила перла всегда была в тесной интеграции с UNIX environment, а в условиях "BASH уже мало, C нужно компилировать каждый раз" и в отсутствии других вариантов Perl был хорошим выбором. Как Bash только лучше, ага. Как general purpose language Perl, мне кажется, вообще никогда не рассматривался. И поэтому если ты не пишешь что-то околосистемное, то Perl тебе не нужен, потому что Python/Ruby/Clojure/Go умеют все то же самое минус ебанутый синтаксис, ебанутые умолчания во всех местах и умирающая экосистема. ‎- Я много страдала
для меня логичным стал переход от перла к руби. Порадовала и документация, и лёгкий привкус функциональности. И выглядит внешне где-то похоже. Конечно, в перле было много потаённостей, вроде анонимных переменных и тд, но в руби есть лямбды. ‎- Mörkö
@vinsentru перешел в смысле перетащил большую кодбазу? мне кажется, это имеет смысл делать, если добавили что-то реально крутое, генерики, поддержка асинхронности и т.п. ‎- urquan
я сужу по проценту либ, поддерживающих py3. ну да, асинхпрнность они там вкрутили, ну так и для py2 их был охулиард разных, все уебищные. пользовать можно, но прям стиснув зубы. ‎- Я много страдала
^ процент большой, кстати. https://python3wos.appspot.com ‎- адский хардлайн в засаде
на HN многие писали что не переходят на py3 ровно потому что не видят смысла -- слишком косметические изменения, проще ничего не менять ‎- right wing hug squads
ну не совсем так, если бы были совсем косметические, все либы автоматом бы заработали, а они не. там на самом деле небольшие дурацкие изменения синтаксиса (и непонятно вообще какого хуя) и много всякого под капотом поменяли. Но я в списке либ вижу сразу несколько шоустопперов (для меня): MySQL-python - сразу прощай py3, Fabric - то же самое ‎- Я много страдала
^ ну есть pymysql, который работает на пи3. а фабрик это такая недоделаная капистрана, поэтому не нужен :) но да, с пи3 получилось, что делать что-то для перехода надо, а зачем — не всегда ясно. ‎- адский хардлайн в засаде
на Fabric не песдеть, фабрик решает ровно те задачи которые заявлены. и при этом написан и скриптуется не на рубях. ‎- Я много страдала
Читаю про pymysql: "This package contains a pure-Python MySQL client library". В то время как MySQL-python это по сути C-шная надстройка над стандартной клиентской либой. Т.е. pymysql сразу идет в сад. да еще и основной сайт их (не гитхаб) похоже не работает. Не, нахер-нахер. ‎- Я много страдала
Нелепая подстава с третьим питоном еще и в том, что сейчас актуальная версия питона - 3.5.0, а минимум, на который хочется переходить - это 3.4. Но если ты хочешь использовать PyPy, то максимум, что тебе доступно, - это 3.2.5 и более старшие версии появятся нескоро. ‎- newtover
Короче вывод: вот это все про py3 мы скоро будем слышать про perl6 в разных сочетаниях и с разным количеством жопоболи. Но слышать будем обязательно. ‎- Я много страдала
Вбок от темы замечу, что более хорошие шансы обычно у языков с относительно маленьким объёмом концепций. Они позволяют быстро освоить себя до продуктивного уровня. Таковы были lisp (особенно scheme), си, руби, питон, ява до введения generics, go. В перле (как и в C++ или Scala), наоборот, есть огромная туча разнообразных фич, всячески полезных и удобных в определённых контекстах — но прежде, чем начать понимать чужой код (или хотя бы интерфейсы важных библиотек), нужно разобраться в горе материала. При этом перл — язык интерпретируемый (местами — по-разному в зависимости от данных) и синтаксически изощрённый, поэтому для новичка эти фичи, скрывающиеся за небольшими опечатками, неотличимы от граблей (равно как и в C++, но там хоть компилятор изругается на пол-экрана). Когда перл был the языком системного администрирования, всё это осваивали; сейчас менее понятно, зачем. Я лично полагаю перл в первую очередь художественным проектом, очень удачным (на perl4 можно было писать стихи, как все помнят), но (опять же мне лично) показывающим, что не следует подходить к машинным языкам с теми же идеями, что к естественным. ‎- 9000
"скриптуется не на рубях" %) — это содержание примерно всех докладов презентаций про capistrano vs fabric: "ну да, у капистрано есть такие и такие фичи, а мы pdsh просто не умеем, зато на питоне!". про "сайт не гитхаб" улыбнулся — капризы дело весёлое! ‎- адский хардлайн в засаде
@1master: посмотри пожалуйста на выступление @vinsentru. Оно стопроцентно демонстрирует мой тезис. "ебанутый синтаксис, ебанутые умолчания во всех местах и умирающая экосистема.". при этом у меня даже не наливаются кровью глаза, потому что ну правда — я прекрасно осознаю свой импринт. ‎- псы в рапиде
@screamager: мне кажется, что это не произойдет так быстро. в перловом сообществе традиционно сильна идея обратной совместимости и почти бесконечной поддержки фич. при этом есть все для этого — есть гигантского размера CPAN который представляет собой гигантского размера testing scaffold. То есть ты можешь проверять работу новых версий перла на сотнях миллионов строк (а также находить реальное использование определенных конструкций, которых никаким грепом не поймать — только внутренними проверками компилятора). ‎- псы в рапиде
Но при этом я точно знаю, что если на букинговские сервера сейчас накатить 5.22, то все остановится сложными способами, несмотря на дикое количество усилий, вложенных в обратную совместимость. а перевод всего этого на любой другой язык (включая шестой перл) — ну просто не нужен, зачем? я думаю, что в мире достаточно кодовых баз с точно такими же характеристиками. при этом например внутри букинга регулярно делают какие-то ебанутые оптимизации в апстрим, которые делают в точности то, что нужно — ускоряют работу живой кодовой базы на живых потоках реальных данных. ‎- псы в рапиде
это даже не NDA — я не знаю, о чем трут между собой сеньоры. ну да, ситуация непростая, но я не думаю, что она хоть где-то простая. я не знаю, помнишь ли ты, но когда в андеве товарищ владелец предлагал перестать жестко отбирать чуваков и начать программировать на пыхе — ну мы ему быстро ведь объяснили, что произойдет если сейчас отодвинуть меня от найма и начать набирать по критерию "главное чтобы слюна не текла из уголка рта". ну то есть в перле охуенно ебанутые умолчания, но зато где-то есть какой-то Настоящий Язык, в котором Нет Ебанутых Умолчаний, и в нем можно В Любой Момент Набрать с Рынка Охуенных Программистов, да-да, да-да. В этом месте у меня происходит бессознательная эякуляция и я просыпаюсь. ‎- псы в рапиде
вот в этом плане кстати python 2 был хорош. у меня тут на работке проект, изначально писавшийся на python2.6, ну и плюс гребаный Centos, старый как говно мамонта. Решил я попробовать запуститься под последним python 2.7, собранным, понятное дело, руками. Поставил питон, поставил зависимости, задеплоился. Ну, думаю, ща пойду по граблям. Но нет, оно просто взяло и сразу заработало. ‎- Я много страдала
@squadette: ну что значит "не думаю где-то она простая". гугл вот запилил себе go, и будет теперь трескать свой dog food. :) да и всё-таки другие языки -- питон там, руби -- не проходят через такой драматический транзишен, через который проходит перл, это объективный факт. но пойнт про обратную совместимость я услышал, он резонный. спасибба ‎- right wing hug squads
@squadette ну вот в питоне нету Ебанутых Умолчаний, синтаксис в целом однозначный (за что мне и нравится), но вот насчет Охуенных Программистов.. каждый раз, когда мне нужна была какая-то либа и я ресерчил гитхаб, для пейтона обнаруживалось 3 разных реализации. Заебись, чо. Только вот при беглом осмотре сорцов минимум в 2 из 3 либ волосы на жеппе начинали становиться примерно дыбом, а в плане хакабельности оно примерно никак все. А когда то же самое я делал для Erlang, то (если вдруг!) либа находилась, то она сразу была написана как надо и/или хачилась под себя легко и приятно. ‎- Я много страдала
@screamager: гугл это совсем отдельная ситуация, потому что условно говоря, в гугле в технологическом плане превышена скорость света (скорость распространения сигнала). мне кажется, что в гугле реальная сингулярность в этом плане. я говорю про команды, которые ограничены real-world constraints. что касается драматических транзишенов — ну именно в питоне все еще грустнее. насколько я понимаю, сейчас есть третий питон, который lurkmore://Всем_Похуй. Все нормальные пацаны которым надо get things done, а не помастурбировать, сидят на 2.7. ‎- псы в рапиде
ну то есть не, прогресс безусловно есть! но он происходит строго в рамках "предела скорости распространения сигнала". постепенно даже букинг перейдет на шестерку, но это произойдет не в 2016 почти точно. а если еще вскроется какая-нибудь херня, которая не соответствует уровню ожиданий соответствующего года — значит все совсем обидятся. мне смешно читать про "умирающую экосистему", при том что вообще говоря, имхо, именно Перл в районе конца девяностых поставил высочайшую планку качества той самой экосистемы, которая позволила ему стать языком выбора для веб-программирования образца конца 20-начала 21 веков. ну потом можно разбираться дальше, что пошло не так — но это уже второй вопрос. ‎- псы в рапиде
вообще я надеюсь что я продолжаю отвечать по сути исходного вопроса — если нет, поправьте. ‎- псы в рапиде
Кстати про Go. Из того что я вижу, Go пожирает нишу именно Питона. Потому что Гвидо очень долго ебал вола, вместо того чтобы решать проблемы: разобраться с GIL, увеличить быстродействие и дать из коробки нормальную concurrency. В результате гугол выкатил Go, причем именно с прицелом на питоновских программеров, где все это было изкоробки. И вот мы имеем просто взрывной рост приличных штук на Go именно в области сетевых распределенных приложений и всякого такого: Docker, Consul, ETCD и тд. И в результате Гвидо со своим 3м пейтоном действительно никому особо не вперся уже, момент упущен. Что уж говорить о перле, долю которого давно сожрал пейтон. ‎- Я много страдала
почему мы говорим о Go и Питоне в треде, посвященном шестому перлу?... ‎- псы в рапиде
потому что про сам 6й перл пока особо нечего говорить? ‎- Я много страдала
@squadette слушай, а вот "постепенно даже букинг перейдет на шестерку" — а почему? в смысле, есть натурально unsexiness, есть по сути новый язык, на который надо будет всё равно код переписывать. нет ли уже (или не предвидится ли в будущем) тенденции писать какие-то новые вещи на других языках (в виде отдельных сервисов)? и нет ли в букинге желания вместо перехода на 6ой постепенно как-то переползти на что-то другое, более sexy? Насколько можно судить по другим большим компаниям, многие прошли через такой путь (с питона, руби, джавы). С перлом, с учётом кармы и взглядов на него, доводов за подобный путь развития должно быть даже больше, как мне кажется. ‎- адский хардлайн в засаде
@larhat: потому что инженерный тим в XXX рыл пишет на пятёре с 1996 года, очевидно. миграция на шестёрку совершенно резонна с такой вводной ‎- right wing hug squads
^ это с одной стороны понятно, но с другой, там же люди меняются наверняка? с каждый годом, количество людей, которые неприятно морщат нос на перл, наверное, растёт и тд. Я не в курсе, много ли придётся переписать для миграции с 5 на 6, не будет ли объём работ сравним с переписыванием на что-нибудь ещё? Но вообще, из тех историй про постепенное переписывание и улучшение старых систем на что-то другое вспоминаются в основном проинвестированные стартапы :) а тут у людей бизнес. ‎- адский хардлайн в засаде
@larhat: в шестёрке есть (предусмотрен) режим совместимости с v5 (в букинге очевидно не заработает). но если поебстись -- то наверное заработает. ‎- right wing hug squads
@larhat: я с одной стороны "надеюсь", что Букинг will reinvent itself на каком-нибудь "более интересном" технологическом стеке. с другой стороны, я совершенно не вижу претендентов в том смысле, что любой из вариантов по дороге сломается восемь раз, его придется адово заставлять уметь делать то, что сейчас умеет делать кодобаза. при этом я совершенно не вижу как принципиально изменится ситуация "каждый месяц нанимать 30 человек, которые умеют программировать на <x>" или ситуация "есть 4 млн. строк на <x>, надо развивать ее со скоростью, к которой привыкли все стейкхолдеры и с уровнем качестве к которому привыкли все стейкхолдеры" (при том что стейкхолдеров несколько десятков миллионов, в общем случае) — при любом значении параметра <x>, которые я знаю. ‎- псы в рапиде
да все строится на барьерах. преодолеть можно любой барьер, но возможно что просто некоторые уже не в этой жизни. может быть в 2036 году Букинг будет куплен крупным китайским игроком на рынке онлайн-тревела и я тогда буду писать артритными пальцами скрипты для финальной миграции всех этих данных из legacy-системы на MySQL v14.2. Вот тогда и перейдем на Скалу (про которую к тому времени, понятно, будут снисходительно писать что-то про умирающую экосистему и т. п.) ‎- псы в рапиде
@squadette если с архитектурной точки зрения сейчас все хорошо, те оно масштабируется как надо и тд, то наверное смысла переписывать нет. Переписывать есть смысл не когда "язык плохой", а когда плохие/старые технологии, на которых это все написано. Ну там, не знаю, хочется сделать модерновый фронтенд с вебсокетами и куртизанками, а платформа/язык не поддерживает, не будет поддерживать и самим написать не получается. ну или например весь сервис написан в виде одного большого CGI на перле (шучу, шучу). ‎- Я много страдала
в какой-то момент будет очень сложно найти вот этих "каждый месяц нанимать 30 человек, которые умеют программировать на <x>" и это dead end ‎- семейство диких шлюх в лесу
@manaka: а сейчас можно подумать это очень просто. я не верю в подразумеваемые тезисы типа "а вот если бы букинг писал на <y>, то сидели бы сейчас и в ус не дули, только успевай визы в IND подавать." ‎- псы в рапиде
А также: насколько букинг монолитен? Насколько разные части системы могут быть написаны на разных языках? Если порезан приемелмо тонко, то переезд между языками вполне реалистичен — включая переезд на идиоматическую шестёрку путём существенного переписывания, но не всего сразу. ‎- 9000
@manaka да хуй знает, "хочу писать код, чтобы люди пользовались/который много денег зарабатывать" это такая причина, из-за которой люди отказывались от всяких модных/интересных штук. ‎- адский хардлайн в засаде
@9000: да, конечно, одним из разумных путей очевидно является разделение системы по границам сетевых протоколов. но опять же — в букинге сложно внедрить новую систему, если она не умеет выдавать примерно десяток вещей, причем все сразу. то есть "давайте это в продакшен, а потом разберемся" — ну никто просто это не возьмет в продакшен. короче, это замкнутый круг (но, еще раз, при наличии воли преодолимый). ‎- псы в рапиде
Это очень хороший тред, но я пришел в него, чтобы зарыдать над словами "а когда то же самое я делал для Erlang, то (если вдруг!) либа находилась, то она сразу была написана как надо и/или хачилась под себя легко и приятно." Извините меня, пожалуйста, у меня очень болит попа от этих слов. ‎- Сад расходящихся фидиков
что ж такое то, что от моих каментов пригорать начинает. надо меньше пиздеть мне, да. ‎- Я много страдала
@f355 Ты жопой рыдаешь? До чего доводит эрланг-то. А про питон3 vs питон2 - в третьем питоне encodings сделаны так, что эммм, скажем, весьма трудно портировать. Я не буду говорить, что оно не работает, но мне "за 10 минут" не удалось заставить ЭТО работать. ‎- Кубинский щелезуб
в пейтоне в целом все энкодинги сделаны пидорасами для гомосеков. рад слышать, что ситуация не улучшилась. ‎- Я много страдала
Картинка про перл 6 в тему. http://cs315429.vk.me/v315429325/3efa/CKf4BZP08e4.jpg ‎- Mörkö