Пыха - бейсик наших дней. «Правильно писать» на ёй звучит как оксюморон.
Не, понято что все языки хороши и не бывает плохих наверное и вообще вордпресс же. Но всё-таки как-то ой. Даже на питоне или ноде бэкэнды (при всей интерпретаторности и однотредовости в большинстве случаев первого и гарантировано второго) по нынешним временам выглядят приличнее (и оплачиваются минимум в два раза лучше).
Я щаз для бэка плотно на Elixir/Phoenix/Absinthe подсел. И прикольно что там горизонтальный scaling уже в самом OTP есть готовый, не надо с контейнерами и балансерами огород городить.
У меня есть большой бизнес-проект на PHP с бэком примерно в 50-60 тысяч строк, который живёт уже 4 года и умирать не собирается. Внутри - ни разу не бейсик, а довольно стройная объектная модель :)
Мне, конечно, по большому счёту, всё равно на чём писать, но я когда-то поучаствовал в разработке пыхи и знаю её сильные и слабые места. Язык сильно недооценен из-за низкого порога вхождения и обилия школьного говнокода на нём.
В другом проекте мы в последние два года убили много времени на то, чтобы сделать быстрый горизонтально масштабируемый бэк на питоне, в итоге, пришлось всё это выкинуть и реализовать скалируемую архитектуру на REDIS-е и С++. Ибо "не приспособлены кролики для лазания по деревьям", при всей моей любви к питону как языку.
Скриптовые языки в принципе не предназначены для написания бэкендов. Они не масштабируются ни вширь ни вверх более чем никак. И питон ещё ничего - node вот что самая жирная порнография. Один тред, синхронные блокирующие нативные методы - ужос. Зато порог вхождения даже ниже чем в питоне, тамушта жабаскрипт.
Для скалинга опять же сейчас в восторге от Elixir/Erlang на OTP, там это всё делается вполне себе нативно, да и общий стейт реализуется несколькими способами дающими разные удобства, так что никаких ни редисов ни кубернетесов не надо.
Спросишь, бывало, на интервью: "а хорошо ли вы знаете питон?"
"Зашибись, как хорошо знаю", отвечают.
"А про asyncio и корутины расскажите, плиз!"
"А что это?"
:)
Вообще, масштабируемость - не свойство языка, а свойство архитектуры. На python-е очень удобно прототипировать, у меня вся песочница по большей части на нём. А в продакшен идёт код, язык для которого выбирается вдумчиво.
Я когда-то хорошо прочувствовал, что выход с этапа исследований в продуктивную разработку с отработанным API и скелетом архитектуры здорово экономит усилия и время, даже если приходится переписывать прототип на другой язык.
У нас просто не система массового обслуживания в привычном смысле, основной акцент не на обработке условного миллиона клиентских запросов в секунду, а на считывании миллиона стейтов и отдаче миллиона команд в устройства. Тут редис оказался просто настолько в кассу как промежуточное хранилище данных, что производительность выросла почти на порядок.
Но (опять продолжу нахваливать, извини) в эликсире есть отличный механизм GenServer, который тебе позволяет очень гибкие стейты делать, быстрые, асинхронные, с разнообразными подписками и прочими плюшками. А ещё сейчас копаю Elixir Nerves для embedded, тоже прикольная крайне вещица. Хватит уже сей что с плюсами что без ))
Reply
Эрланг:
-module(hello).
-export([world/0]).
world()->
io:fwrite("Hello, world!\n").
Пыха: echo "Hello, world!";?>
посеяла начальный
Reply
На эрланге норм, но явно просто стырило из тьюториала. Ну и да, кто сейчас на чистом эрле пишет когда эликсир есть.
Пыха да, но зачем echo? ))
Reply
Ну, версию пыхи я не задавал, а echo работает даже в древнейшей PHP/FI 2 :)
Reply
Но формально да, так код.
Reply
На пыхе мало кто умеет правильно писать, потому что правильно - это генерить HTML и JS в выводе функций, а не вставлять код врезками в HTML :)
Ну и для бэка пыха неплоха, там очень грамотный кэширующий компилятор опкодов начиная с версии 7. Тупо быстрая :)
Reply
«Правильно писать» на ёй звучит как оксюморон.
Не, понято что все языки хороши и не бывает плохих наверное и вообще вордпресс же.
Но всё-таки как-то ой.
Даже на питоне или ноде бэкэнды (при всей интерпретаторности и однотредовости в большинстве случаев первого и гарантировано второго) по нынешним временам выглядят приличнее (и оплачиваются минимум в два раза лучше).
Я щаз для бэка плотно на Elixir/Phoenix/Absinthe подсел. И прикольно что там горизонтальный scaling уже в самом OTP есть готовый, не надо с контейнерами и балансерами огород городить.
Reply
Ну, это предубеждение.
У меня есть большой бизнес-проект на PHP с бэком примерно в 50-60 тысяч строк, который живёт уже 4 года и умирать не собирается. Внутри - ни разу не бейсик, а довольно стройная объектная модель :)
Мне, конечно, по большому счёту, всё равно на чём писать, но я когда-то поучаствовал в разработке пыхи и знаю её сильные и слабые места. Язык сильно недооценен из-за низкого порога вхождения и обилия школьного говнокода на нём.
Reply
Имидж уже, имидж. И да, всё так, школота картину портит.
А так разумеется можно на любом стеке нормально сделать, а можно и лапши накрутить.
Reply
В другом проекте мы в последние два года убили много времени на то, чтобы сделать быстрый горизонтально масштабируемый бэк на питоне, в итоге, пришлось всё это выкинуть и реализовать скалируемую архитектуру на REDIS-е и С++. Ибо "не приспособлены кролики для лазания по деревьям", при всей моей любви к питону как языку.
Reply
Скриптовые языки в принципе не предназначены для написания бэкендов. Они не масштабируются ни вширь ни вверх более чем никак. И питон ещё ничего - node вот что самая жирная порнография. Один тред, синхронные блокирующие нативные методы - ужос. Зато порог вхождения даже ниже чем в питоне, тамушта жабаскрипт.
Для скалинга опять же сейчас в восторге от Elixir/Erlang на OTP, там это всё делается вполне себе нативно, да и общий стейт реализуется несколькими способами дающими разные удобства, так что никаких ни редисов ни кубернетесов не надо.
Reply
Порог вхождения - штука обманчивая.
Спросишь, бывало, на интервью: "а хорошо ли вы знаете питон?"
"Зашибись, как хорошо знаю", отвечают.
"А про asyncio и корутины расскажите, плиз!"
"А что это?"
:)
Вообще, масштабируемость - не свойство языка, а свойство архитектуры. На python-е очень удобно прототипировать, у меня вся песочница по большей части на нём. А в продакшен идёт код, язык для которого выбирается вдумчиво.
Reply
Я на питоне утилитки всякие пилю, очень удобно. И прототипировать, разумеется.
Reply
Я когда-то хорошо прочувствовал, что выход с этапа исследований в продуктивную разработку с отработанным API и скелетом архитектуры здорово экономит усилия и время, даже если приходится переписывать прототип на другой язык.
Ну и утильки, да :)
Reply
> никаких ни редисов ни кубернетесов не надо.
У нас просто не система массового обслуживания в привычном смысле, основной акцент не на обработке условного миллиона клиентских запросов в секунду, а на считывании миллиона стейтов и отдаче миллиона команд в устройства. Тут редис оказался просто настолько в кассу как промежуточное хранилище данных, что производительность выросла почти на порядок.
Reply
Ну да, редис - отличный кэш, пользую иногда.
Но (опять продолжу нахваливать, извини) в эликсире есть отличный механизм GenServer, который тебе позволяет очень гибкие стейты делать, быстрые, асинхронные, с разнообразными подписками и прочими плюшками.
А ещё сейчас копаю Elixir Nerves для embedded, тоже прикольная крайне вещица. Хватит уже сей что с плюсами что без ))
Reply
Leave a comment