Size: a a a

Обсуждения техдирские

2019 November 15

P

Pavel in Обсуждения техдирские
Etki
Ну слушай. Я могу сказать, что у джавы ее бесменный тайп эрейжа и N отставаний от шарпа; у шарпа нет ? и diamond operator, а также CLR тюнится гораздо хуже JVM; руби очень приятен для DSL, но принятый коммьюнити манки-патчинг прям беда; в нем и в питоне только намек на многопоточность из-за GIL; в ноде на самом деле нет никакой асинхронности, есть тупой ивент луп и надежда, что события будут происходить реже, чем успевает отработать соответствующий обработчик; но все это ни в какое сравнение не идет с этим адским порождением, где чуть ли не каждая строка воюет с рациональным мышлением.
Ну слушаю как могу. Были названы слабые места языков, и "чуть ли не каждая строка воюет с рациональным мышлением”. Вот для меня Java так же выглядит, я ее не хейчу, я просто на ней не пишу. Но я понимаю, что это отличный инструмент для решения намного более широкого спектра задач нежели Golang.
источник

E

Etki in Обсуждения техдирские
Ну, любой, кто более-менее тыкал языки программирования, знает, что дорогая именно сборка стектрейса, которая много где при необходимости отключается. И, естественно, собирается он не просто так - если откуда-то из недр придет ошибка без него, то человекочасы, потраченные на выяснение причины, не отобьют те микросекунды, которые были потрачены приложением на сборку стека. Вообще, меня каждый раз коробит слышать про медленность исключений - если у вас сломалась программа, последнее, о чем вам надо думать - это количество микросекунд, за которые будет обработана ошибка.
источник

P

Pavel in Обсуждения техдирские
Почему для всех Golang такая кость в горле - я не понимаю. Для программистов я еще пойму - их же по факту компания Google обозвала макаками выкатывая такой язык. Но для людей, которые стоят рядом с бизнесом - это великолепный язык, который очень хорошо решает свой пул задач.
источник

PD

Phil Delgyado in Обсуждения техдирские
А какой пул, кстати? Ничего кроме писания простеньких системных утилит в голову не приходит
источник

R

Ruslan in Обсуждения техдирские
Pavel
контр-аргументов для этого обычно несколько: исключения во многих языках достаточно дорогостоящая штука (особенно касается языков интепретируемых), ну и опять же чаще всего try/catch сверху не спасает вас. Ведь вы не всегда сможете гарантировать, что теперь есть бизнес-целостность и вы можете хендлить реквесты/что-то еще дальше.
Ни разу не сталкивался с тем, чтобы обработка ошибок стала узким местом. А про бизнес-целостность аргумент не понятен, ведь ошибку мы так и так получили, теперь задача отдать ее полчателю и можно сделать это сразу без использования 10 промежуточных переменных. Классическое try catch поможет вам сделать и так, как сделано в го, и так как сделано не в го. Го же заставляет повсюду явно возвращать то, чего обычно нет (ошибок обычно нет).
источник

P

Pavel in Обсуждения техдирские
Phil Delgyado
А какой пул, кстати? Ничего кроме писания простеньких системных утилит в голову не приходит
Мелкие сервисы. Я писал трейдинг, гео-мониторинг. Обертки над API всех мастей.
источник

E

Etki in Обсуждения техдирские
Ruslan
Ни разу не сталкивался с тем, чтобы обработка ошибок стала узким местом. А про бизнес-целостность аргумент не понятен, ведь ошибку мы так и так получили, теперь задача отдать ее полчателю и можно сделать это сразу без использования 10 промежуточных переменных. Классическое try catch поможет вам сделать и так, как сделано в го, и так как сделано не в го. Го же заставляет повсюду явно возвращать то, чего обычно нет (ошибок обычно нет).
Ну, единственный реальный случай - это когда программист проверяет инварианты методом better ask for forgiveness than permission (привет, питон) и валидирует число конвертацией object в int, но в этом случае не язык менять надо
источник

P

Pavel in Обсуждения техдирские
Ruslan
Ни разу не сталкивался с тем, чтобы обработка ошибок стала узким местом. А про бизнес-целостность аргумент не понятен, ведь ошибку мы так и так получили, теперь задача отдать ее полчателю и можно сделать это сразу без использования 10 промежуточных переменных. Классическое try catch поможет вам сделать и так, как сделано в го, и так как сделано не в го. Го же заставляет повсюду явно возвращать то, чего обычно нет (ошибок обычно нет).
Фраза “ошибок обычно нет” - да ошибок вагон и телега всегда, отвалилось Third Party, лагнула сеть на AWS, отватился коннект и т.д.
источник

R

Ruslan in Обсуждения техдирские
Pavel
Фраза “ошибок обычно нет” - да ошибок вагон и телега всегда, отвалилось Third Party, лагнула сеть на AWS, отватился коннект и т.д.
Зря я ее написал. Но кроме этой фразы были и основные аргументы.
источник

P

Pavel in Обсуждения техдирские
Ruslan
Зря я ее написал. Но кроме этой фразы были и основные аргументы.
Я их не оспариваю. Проблема в том, что вы не можете сказать что в вашем стеке функций и как перехватывается. К сожалению.
источник

P

Pavel in Обсуждения техдирские
А err != nil это бойлерплейт которых многих раздражает, но меня к примеру нет. Не знаю почему.
источник

PD

Phil Delgyado in Обсуждения техдирские
Pavel
Мелкие сервисы. Я писал трейдинг, гео-мониторинг. Обертки над API всех мастей.
Но там же пока ещё вс инфраструктура бедная и зачастую кривая - даже драйвера с БД не очень. Смысл? Лучше уж питон. Или Котлин.
источник

P

Pavel in Обсуждения техдирские
Phil Delgyado
Но там же пока ещё вс инфраструктура бедная и зачастую кривая - даже драйвера с БД не очень. Смысл? Лучше уж питон. Или Котлин.
Ну драйвера с PostgreSQL отличные. Не знаю о чем вы.
источник

P

Pavel in Обсуждения техдирские
Kotlin - это JVM дороже в содержании на AWS, с пайтоном тоже самое в плане если используешь его хоть под какой-то нагрузкой.
источник

АЛ

Андрей Лесных in Обсуждения техдирские
Отвернулся на минутку... А тут такое!.. абалдеть! ПС: я за go. Ну просто интересно что из этого получится :))))))
источник

P

Pavel in Обсуждения техдирские
Golang - выгодное решение по DevOps/Поддержке/Цене с точки зрения бизнеса. И очень скучное с точки зрения программиста 🙂
источник

P

Pavel in Обсуждения техдирские
А мне приходится смотреть со стороны бизнеса, к сожалению. Был бы в стаке где-то Python/Kotlin я бы еще подумал над Golang. Но там где делал/делали сервисы - стак был Ruby/Node.js
источник

PD

Phil Delgyado in Обсуждения техдирские
Pavel
Kotlin - это JVM дороже в содержании на AWS, с пайтоном тоже самое в плане если используешь его хоть под какой-то нагрузкой.
А чем оно дороже? Да и нагрузка - вещь редкая
источник

PD

Phil Delgyado in Обсуждения техдирские
Pavel
Ну драйвера с PostgreSQL отличные. Не знаю о чем вы.
Доделали? Раньше был ужасный. А не к PG?
источник

P

Pavel in Обсуждения техдирские
Phil Delgyado
А чем оно дороже? Да и нагрузка - вещь редкая
Ну трейдинг должен был обрабатывать многоступенчатое дерево ордербуков от разных бирж и выдавать кросс/курсы торговать с нагрузкой в 2500 RPS, геолокация отрабатывала в памяти тоже через RTREE гоняя последние 50 точек клиента и выявляя аномалии, там в районе 250к RPS (планировалось)
источник