Re[7]: на чём писать бэкенд?
От: Буравчик Россия  
Дата: 09.04.19 10:38
Оценка: 3 (1) :)
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Буравчик, Вы писали:


C>1) Динамичности. Любая реальная большая кодовая база становится крайне лохматой, даже если писать в стиле Питон-с-классами и избегать магии в виде декораторов и прочих страшностей. Тестов обычно бывает недостаточно.


Динамичность добавляет не только проблем, но и большое количество плюсов. Особенно при работе с JSON и другими слабо структурированным вещами.
Ошибки типов часто выявляются с помощью IDE и аннотаций типов (их использование в больших проектах крайне желательно).

C>3) Интерпретируемости. Если нужно делать высокоскоростные сервисы, то можно забыть про высокоуровневые библиотеки типа SQLAlchemy. Теоретически на подходе есть PyPy, но он всё ещё не дорос.


Прикладное программирование это в основном склеивание библиотек. Для клея интерпретируемости вполне хватает.

C>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/


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

C>Так что пожалуйста, не надо использовать Питон для чего-то сложнее скрипта в сотню строк.


Уверен, что смело можно писать и тысячи строки и десятки тысяч.
Best regards, Буравчик
Отредактировано 09.04.2019 10:39 Буравчик . Предыдущая версия .
Re: на чём писать бэкенд?
От: Vetal_ca Канада http://vetal.ca
Дата: 09.04.19 10:55
Оценка: +1
Здравствуйте, Dair, Вы писали:

С бэкендом уже написали. Смотри еще с т.зр. если надо будет потом это кому-то спихнуть на поддержку.

С балансировкой могут быть моменты, особенно, если https. И если L4 (OSI Model) load balancing перед SSL termination/Offloading

Например

Internet -> (Amazon ELB, L4) --(Proxy Protocol) --> Traefik Proxy (SSL Termination) -> Services

Например, связка [Traefik — Cloudflare — Let's Encrypt] будет работать полностью на автомате, бесплатно, С HTTPS/2. При этом полностью самостоятельно (если log rotation правильно сделаешь ). Про возню с SSL сертификатами можно будет забыть.

Ключевые слова:

(AWS ELB или HAProxy или F5 или ...) , Traefik Proxy, PROXY Protocol, Let's Encrypt/ACME
Re[5]: на чём писать бэкенд?
От: Calc Россия  
Дата: 09.04.19 12:45
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Calc, Вы писали:


D>>>Нет, как-то миновала меня чаша сия.

C>>бери PHP и не выеживайся
C>За новый софт на PHP надо расстреливать без разговоров.

весь мир с ним работает, а на RSDN надо расстреливать. Я уже вижу тут застой в IT мозгах.
аргументы в пользу расстрела будут?
Re[7]: на чём писать бэкенд?
От: Ватакуси Россия  
Дата: 09.04.19 13:47
Оценка: 1 (1)
Б>>>>Почему оно будет трещать по швам, если будут тесты?
C>>>Потому, что Питон.
Атеист, что-ли7

Б>>Откуда такая неприязнь? Расскажи, пожалуйста, про фейлы питона, с которыми ты сталкивался (лучше, если лично сталкивался).

C>Проблемы Питона в:
C>1) Динамичности. Любая реальная большая кодовая база становится крайне лохматой, даже если писать в стиле Питон-с-классами и избегать магии в виде декораторов и прочих страшностей. Тестов обычно бывает недостаточно.
Самый мой крупный проект содержал более 3-х миллиардов строк на питоне. Работало там 7 тысяч программистов.
Кол-во бардака было такое же как и в проекте на яве. Сравнивомогу по размеру.

C>2) Однопоточности. Это реально проблема — сервер придётся запускать в виде нескольких процессов, что делает невозможным вещи типа разделяемого кэша.

Никогда не нужно. CPython, корутины, сервлеты и вообще торнадо. или твистед. числодробилки не берём во внимание. Их менее 1%

C>3) Интерпретируемости. Если нужно делать высокоскоростные сервисы, то можно забыть про высокоуровневые библиотеки типа SQLAlchemy. Теоретически на подходе есть PyPy, но он всё ещё не дорос.

Алё. CPython и компиляция в ц++.

C>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/

Это о чём?
Докер, хренокер — одной пяткой. Уставновка на виртуалку или в процессе разворачивания — элементарно.

C>При этом начинать проект легко, да. Сначала код пишется как будет сам. Но вот потом всё становится очень уныло. Я и сам попадал в эту ловушку, и в других проектах тоже встречал.

С индусами что-ли работал?

C>Так что пожалуйста, не надо использовать Питон для чего-то сложнее скрипта в сотню строк.

Как раз на сотню строк подойдёт что угодно.

C>Да, всё то же относится к Ruby и немного меньшей степени к NodeJS (он хотя бы быстрый).

Угу, особенно яваскрипт тут поможет.
Все будет Украина!
Re[6]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 09.04.19 19:02
Оценка: -1
Здравствуйте, Calc, Вы писали:

C>>За новый софт на PHP надо расстреливать без разговоров.

C>весь мир с ним работает, а на RSDN надо расстреливать. Я уже вижу тут застой в IT мозгах.
C>аргументы в пользу расстрела будут?
Да. PHP.

Это самый уродливый язык в природе. Если хочется чего-то динамического — можно взять тот же Питон, он хотя и не сильно хорош, но лучше ПХП на порядок.
Sapienti sat!
Re[8]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 09.04.19 19:28
Оценка: 1 (1) +1 :)
Здравствуйте, Ватакуси, Вы писали:

C>>1) Динамичности. Любая реальная большая кодовая база становится крайне лохматой, даже если писать в стиле Питон-с-классами и избегать магии в виде декораторов и прочих страшностей. Тестов обычно бывает недостаточно.

В>Самый мой крупный проект содержал более 3-х миллиардов строк на питоне. Работало там 7 тысяч программистов.
В>Кол-во бардака было такое же как и в проекте на яве. Сравнивомогу по размеру.
Я участвовал в миграции проекта с Питона на Go. Количество бардака после миграции сильно упало, а качество увеличилось. Количество строк там было меньше, в районе десятка миллионов. Миграция заняла несколько лет.

Понятно, что при желании и должной дисциплине можно и на ассемблере всё писать. Но зачем?

C>>2) Однопоточности. Это реально проблема — сервер придётся запускать в виде нескольких процессов, что делает невозможным вещи типа разделяемого кэша.

В>Никогда не нужно. CPython, корутины, сервлеты и вообще торнадо. или твистед. числодробилки не берём во внимание. Их менее 1%
Брехня это всё. Оно всё равно будет однопоточным, асинхронность просто размажет тормоза по всем клиентам.

Корутины в текущих реализациях Питона относятся к категории "do not use" из-за "coloured function problem".

C>>3) Интерпретируемости. Если нужно делать высокоскоростные сервисы, то можно забыть про высокоуровневые библиотеки типа SQLAlchemy. Теоретически на подходе есть PyPy, но он всё ещё не дорос.

В>Алё. CPython и компиляция в ц++.
Эээ... Ты ТОЧНО писал на Питоне? CPython — это интерпретатор Питона. Есть Cython, но он крайне ограничен и требует писать на (фактически) С с питоновским синтаксисом.

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

C>>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/

В>Это о чём?
В>Докер, хренокер — одной пяткой. Уставновка на виртуалку или в процессе разворачивания — элементарно.
Даже с Докером хорошей практикой является создание наиболее лёгкого образа, без компиляторов и сред разработки внутри.

C>>При этом начинать проект легко, да. Сначала код пишется как будет сам. Но вот потом всё становится очень уныло. Я и сам попадал в эту ловушку, и в других проектах тоже встречал.

В>С индусами что-ли работал?
В том числе и с ними (разных национальностей), как на любом большом проекте.

C>>Да, всё то же относится к Ruby и немного меньшей степени к NodeJS (он хотя бы быстрый).

В>Угу, особенно яваскрипт тут поможет.
JS нынче чаще всего заменяют TypeScript, который более-менее адекватен по сравнению с Питоном.
Sapienti sat!
Re[8]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 09.04.19 19:31
Оценка: +3 -1 :)
Здравствуйте, Буравчик, Вы писали:

C>>1) Динамичности. Любая реальная большая кодовая база становится крайне лохматой, даже если писать в стиле Питон-с-классами и избегать магии в виде декораторов и прочих страшностей. Тестов обычно бывает недостаточно.

Б>Динамичность добавляет не только проблем, но и большое количество плюсов. Особенно при работе с JSON и другими слабо структурированным вещами.
Не надо работать со слабо структурированными вещами.

Б>Ошибки типов часто выявляются с помощью IDE и аннотаций типов (их использование в больших проектах крайне желательно).

Но проще всего сразу взять типизированный язык.

C>>3) Интерпретируемости. Если нужно делать высокоскоростные сервисы, то можно забыть про высокоуровневые библиотеки типа SQLAlchemy. Теоретически на подходе есть PyPy, но он всё ещё не дорос.

Б>Прикладное программирование это в основном склеивание библиотек. Для клея интерпретируемости вполне хватает.
Вот только библиотеки обычно сами на Питоне. И оно всё равномерным образом тормозит.

C>>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/

Б>Неплохой инструментарий. Для проектов используются виртуальные окружения с нужной именно тебе версией питона и библиотек, это стандарт де-факто. Pycharm отлично работает и все это очень хорошо поддерживает.
venv не решают проблем пакетных менеджеров. Это просто способ лёгкой изоляции окружения, который местами глючит.

C>>Так что пожалуйста, не надо использовать Питон для чего-то сложнее скрипта в сотню строк.

Б>Уверен, что смело можно писать и тысячи строки и десятки тысяч.
Можно. И миллионы строк можно. Но не нужно.
Sapienti sat!
Re[2]: на чём писать бэкенд?
От: Ночной Смотрящий Россия  
Дата: 09.04.19 20:16
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Если тебе нужна масштабируемость, тут я посоветую Google Cloud.


А я бы не советовал. Оно далеко позади AWS и Azure.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: на чём писать бэкенд?
От: Ночной Смотрящий Россия  
Дата: 09.04.19 20:16
Оценка:
Здравствуйте, Vetal_ca, Вы писали:

V_>С балансировкой могут быть моменты


Это ему сейчас очень важно знать.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: на чём писать бэкенд?
От: kov_serg Россия  
Дата: 09.04.19 20:33
Оценка:
Здравствуйте, Dair, Вы писали:

D>Наверно, есть что-то ещё.


D>Сервер надо чтобы раздавать контент пользователям.

D>Контент сравнительно небольшой — ну десятки мегабайт. Пользователей тыщ 100.

erlang links
Re[9]: на чём писать бэкенд?
От: novitk США  
Дата: 09.04.19 21:29
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

Б>>Ошибки типов часто выявляются с помощью IDE и аннотаций типов (их использование в больших проектах крайне желательно).

C>Но проще всего сразу взять типизированный язык.

Продуктивность по-сравнению с питоном садится в разы. Проверенно не на убогом Котлине, а на Скале.
Re[10]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 09.04.19 23:19
Оценка: +6 -1
Здравствуйте, novitk, Вы писали:

C>>Но проще всего сразу взять типизированный язык.

N>Продуктивность по-сравнению с питоном садится в разы. Проверенно не на убогом Котлине, а на Скале.
Не садится. Продуктивность старой недоброй Java в разы больше, чем у Питона для более-менее размерного проекта. Просто за счёт надёжной навигации в IDE и более удобного отладчика.

Scala? LOL.

Продуктивность определяется не тем, какие в языке есть средства метапрограммирования и мега-супер-фичи, а удобством обычной разработки и отладки. Т.е. как быстро подключить библиотеки, как делать навигацию по исходникам (простейший Find Usage спасает часы разработки) и как отлаживать.

Краткость написания list comprehensions — где-то на 20-м пункте по важности.
Sapienti sat!
Отредактировано 10.04.2019 1:56 Cyberax . Предыдущая версия .
Re[8]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 09.04.19 23:24
Оценка:
Здравствуйте, neFormal, Вы писали:

C>>1) Динамичности. Любая реальная большая кодовая база становится крайне лохматой, даже если писать в стиле Питон-с-классами и избегать магии в виде декораторов и прочих страшностей. Тестов обычно бывает недостаточно.

F>это если с дизайном кода плохо
С ним всегда плохо.

F>в статике ровно то же самое будет

До такой степени — не будет. Просто за счёт типов.

C>>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/

F>вообще, все давно проекты держат в локальных окружениях для конкретного проекта
venv — это просто Докер для бедных. Он не решает проблем версирования и повторяемых сборок.

F>поэтому и таким сложностей не испытывают

Те кто пишет что-то серьёзное — испытывают.

F>короче, это всё от незнания

Я продал два стартап с кодовой базой на Питоне почти на 100%.
Sapienti sat!
Re[11]: на чём писать бэкенд?
От: Буравчик Россия  
Дата: 10.04.19 05:32
Оценка: 3 (1) +1 -1
Здравствуйте, Cyberax, Вы писали:

C>Продуктивность определяется не тем, какие в языке есть средства метапрограммирования и мега-супер-фичи, а удобством обычной разработки и отладки. Т.е. как быстро подключить библиотеки, как делать навигацию по исходникам (простейший Find Usage спасает часы разработки) и как отлаживать.


Имхо, с этим, в питоне все очень хорошо. В PyCharm и отладчик норм, и навигация есть, и Find Usage, и библиотеки легко подключаются.
Best regards, Буравчик
Re[12]: на чём писать бэкенд?
От: Cyberax Марс  
Дата: 10.04.19 05:57
Оценка: +3
Здравствуйте, Буравчик, Вы писали:

C>>Продуктивность определяется не тем, какие в языке есть средства метапрограммирования и мега-супер-фичи, а удобством обычной разработки и отладки. Т.е. как быстро подключить библиотеки, как делать навигацию по исходникам (простейший Find Usage спасает часы разработки) и как отлаживать.

Б>Имхо, с этим, в питоне все очень хорошо. В PyCharm и отладчик норм, и навигация есть, и Find Usage, и библиотеки легко подключаются.
Отладчик в PyCharm не может нормально работать с gevents или в удалённом режиме.

Find Usages работает за счёт эвристик и очень часто ничерта не находит, особенно если надо смотреть библиотечный код.
Sapienti sat!
Re[10]: на чём писать бэкенд?
От: Слава  
Дата: 10.04.19 06:15
Оценка:
Здравствуйте, novitk, Вы писали:

N>Продуктивность по-сравнению с питоном садится в разы. Проверенно не на убогом Котлине, а на Скале.


Работать вообще надо меньше.
Re[9]: на чём писать бэкенд?
От: neFormal Россия  
Дата: 10.04.19 06:52
Оценка: -3
Здравствуйте, Cyberax, Вы писали:

F>>это если с дизайном кода плохо

C>С ним всегда плохо.
F>>в статике ровно то же самое будет
C>До такой степени — не будет. Просто за счёт типов.

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

C>>>4) Уродский инструментарий. Питон до сих пор нормально ниасилил пакетные менеджеры, так что распространение и установка программ на нём часто весьма нетривиальна. XKCD в тему: https://xkcd.com/1987/

F>>вообще, все давно проекты держат в локальных окружениях для конкретного проекта
C>venv — это просто Докер для бедных. Он не решает проблем версирования и повторяемых сборок.

дык он для разработки, лел
с докером его можно сравнить только от большой фантазии

F>>поэтому и таким сложностей не испытывают

C>Те кто пишет что-то серьёзное — испытывают.

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

F>>короче, это всё от незнания

C>Я продал два стартап с кодовой базой на Питоне почти на 100%.

нашёл чем гордиться ._.
...coding for chaos...
Re[9]: на чём писать бэкенд?
От: neFormal Россия  
Дата: 10.04.19 06:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Понятно, что при желании и должной дисциплине можно и на ассемблере всё писать. Но зачем?


конечно, лучше наговнякать на жяве
...coding for chaos...
Re[2]: на чём писать бэкенд?
От: neFormal Россия  
Дата: 10.04.19 07:22
Оценка:
Здравствуйте, kov_serg, Вы писали:

D>>Наверно, есть что-то ещё.

D>>Сервер надо чтобы раздавать контент пользователям.
D>>Контент сравнительно небольшой — ну десятки мегабайт. Пользователей тыщ 100.
_>erlang links

вообще, для такого жрланг лучше не брать.
непривыкшему человеку будет неудобен синтаксис, непонятна платформа. возможно, elixir будет лучше.
оно хорошо для распределённых систем, как эдакий оркестратор.
...coding for chaos...
Re: на чём писать бэкенд?
От: romy63ru Чехия  
Дата: 10.04.19 07:56
Оценка: +1 :)))
Ну, узнаю RSDN

Старый, добрый, ламповый срач на простой вопрос...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.