24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Go (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего. Батарейки почти как в питоне.
Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не Pony или Erlang. Это в 2018 году-то. Дженериков нет, просто смирись. Обработка ошибок получается охуенно через http://github.com/pkg/errors | в приложениях обычно можно просто паниковать на ошибках. HTTP-сервер для убер максимального маня-хайлоада: https://github.com/valyala/fasthttp С версии Go 1.11 наконец-то появится официальный менеджер зависимостей vgo
>>1245569 (OP) >Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не Pony или Erlang. Это в 2018 году-то. Вы заебали уже, дохуя где это есть, от кложи до эликсира.
>>1245391 А чо, нельзя там к Грефу кабанчиком подскочить, обкашлять вопросик, я не знаю? Ну это же очевидная неповоротливость бюрократической машины, наверняка они в 2016 просто скопипастили это из предыдущей версии той же хуйни. Ну то есть бля, кто-нибудь вообще долбит их по этому поводу?
>>1245595 >Ну то есть бля, кто-нибудь вообще долбит их по этому поводу? После того как все участники электронного документооборота закупились системами работающими с xml в кодировке WINDOWS-1251? Включая налоговую?
Это еще не самый дикий тупняк. Самая дикая хуйня будет если ты крупное предприятие и у тебе на балансе котельная.
Тогда тебе придется сдавать отчет по форме 46. В виде Exсel файла. С макросами.
Гофаны, подскажите идею для проекта на go. Хочу перекатываться из php в go, но в голову лезут только бэкэнд для всратых магазинов, да блокчейн. Или может кто-то занимается своим проектом, и не против помощи php макаки. Я бы помог, в обмен на опыт.
>>1246170 Блокчейн заебись. Если идея будет, то технология сейчас популярная и достаточно опыта даст, потому что это не сайтики клёпать. Хотя идей не подскажу, я не углублялся пока-что, скоро собираюсь.
Общался с мудрым гофером недавно. Он мне поведал, что recover делать вообще не стоит - если паника произошла, то значит надо падать, перезапускать сервис и так далее. Я в-принципе согласен, но как мне быть с обработкой падения? У меня есть сокет-сервер, например. Мне кажется логичным в случае паники сначала послать клиентам сообщение о шатдауне, а уже потом рвать коннект. Насколько я не прав?
>>1246662 >>1246672 Двачую, тоже самое хотел написать. Тебе язык дал возможность перехватить и обработать, а ты себе принципов напридумывал. Если так надо в твоем приложение, значит так надо кто-то пишет большие приложения, а кто-то скриптики и там у каждого свои задачи и решения
>>1246707 >(видел кучу вариантов, rails-like, modules-like и т.п.); Модуле-подобно это типа как в питоне (и сейчас js пытаются), да? А rails-like как это?
>>1246662 В первую очередь надо понять, ч>>1246707 > Стандартизованной структуры приложения (видел кучу вариантов, rails-like, modules-like и т.п.); Вот с этим реально проблемы. Хотя это не проблема конкретно языка, а скорее проблема консенсуса между разработчиками.
>>1246707 >- Единого нормального менеджера зависимостей. Так vgo же. Не знаю, насчет нормальности, но он станет единым официальным.
>>1246724 rails-like это кажется как в руби он рейлс. Там на каждый контроллер свой жышэ файл и можно реквайрить файлы и зависимости //= require smth вроде
>>1246809 >Какие подводные? Язык ниочень нет дженериков
>Нормальненько ли здесь писать хттп запросики? да
>Если мне завтра приспичет развернуть борду на го как она себя будет чувствовать? нормально
>А может это очередной хайп как на руби в 2008? Он уже второй год падает во всех рейтингах (и это при том, что он только появился + его гугл тащит)
>Этот язык будет жив в 20+ десятилетии? Да жив-то будет, куда он денется, вон перл сейчас тоже жив, например. Или какой-нибудь дарт (простихоспоти) тоже жив (к сожалению). В качестве единственного языка для бэкенда который ты знаешь не подходит вообще, в качестве еще одного инструмента для своей ниши - почему бы и нет.
>>1246725 >Так vgo же. Не знаю, насчет нормальности, но он станет единым официальным. А как же go get? Почему люди сразу же забыли, про столь мощный и лучший депенденси-менеджер в го? Расплодили, расплодили кучу клонов. го не торт уже
>>1246809 > Какие подводные? + Отличный инструмент для решения асинхронных задач, в том числе и веб (там это мастхев и никаких страданий с асик-авей и тем более допотопными промисами и калбэками). + Отличный инструмент для микросервисов (лучший!) + Простые и прагматичные библиотеки надеюсь так и останется
- Плохой инструмент для программиста, в общем, ручками будешь писать много и долго, потому что это такая фича или потому что кто-то поленился и сделал упор на легкий компилятор, в ущерб труда программиста - Отсутствие исключений, это отсутствие проброса ошибки вверх. А значит где-то в глубине может "где-то что-то" немножко поломаться и ты как и в js не будешь понимать - почему "это" работает немножко не так или почему оно падает вообще в другом месте исключения бьют по рукам, если программист явно не замалчивает и бьет по рукам уже сам себя. Поэтому исключение решает несколько проблем 1. Всегда в курсе если что-то не так. 2. Можно нагуглить ошибку и найти решение за 5 минут, 3. Можно понять где из 100500 вызовов одного метода это сейчас произошло и запустить отладчик
>>1246822 >дарт (простихоспоти) тоже жив (к сожалению) На днях 2.0 зарелизили, там у них кросс-флагманский проект, которым они еще всякие котлины попугают. Я не фанбой, просто есть перспектива
>>1246809 >Этот язык будет жив в 20+ десятилетии? Да, потому что удобно решает ряд задач, то есть действительно является инструментом, а не очередным сахаром-ради-сахара. Так же есть еще потребность писать не на скриптовых языках веб, но джаву брать не хочется. он устойчиво займет такую промежуточную нишу
ИНСАЙД, ТОП ЯЗЫКИ 20+ летия позиция роли не играет python - ИИшки javascript - так было велено браузерами, а теперь он уже везде C - нужен C++ - тонны легаси php - тонны легаси java - тонны легаси, мобильная swift - мобильная go - есть ниша, так же возможно станет языком для игр в браузере на wasm (на хабре читайте будет поддержка в релизе каком-то). dart - (возможно) кросс мобильная разработка -неизвестный- - ключевой язык в нише робототехники, скорее специфичный и узкий.
остальные языки останутся и будут вечно телепаться в аутсайдерах, некоторые возможно окончательно протухнут
>>1246843 >Плохой инструмент для программиста, в общем, ручками будешь писать много и долго Не совсем понятно, о чем речь. >>1246843 >Отсутствие исключений, это отсутствие проброса ошибки вверх. Ошибки как раз вверх и пробрасываются. А чтобы знать, где что упало как раз и передаешь в тексте ошибки место
>>1246843 >Отличный инструмент для решения асинхронных задач Каналы давно уже везде есть, вы заебали. И го - это не эрлаг\эликсир. Вот реально, всю эту хуйню про ЛУДШИЙ ЯЗЫК ДЛЯ АСИНХРОНЩИНЫ вам маркетологи в голову вбили (ну по сравнению с сишечкой конечно лучший), и раз за разом эту хуйню пересказываете.
>Отличный инструмент для микросервисов (лучший!) Баззворд на баззворде. Опять же, прочитал на медиуме хуйню и ретранслируешь. А вот на ноде микросервисы получаются видимо недостаточно шелковистые, хехмда.
>Простые и прагматичные библиотеки Вообще какая-то субъективная хуйня. А у питона сложные и идеалистичные, да?
>ручками будешь писать много и долго Это правда, тут не поспоришь.
>Отсутствие исключений Это наоборот хорошо, ну и "проброс ошибки вверх" там таки есть.
>>1246844 Понимаешь, когда пилят новый язык, а потом через пару лет выкидывают все нахуй и переписывают заново без сохранения обратной совместимости - никакой нормальный человек к этому говну даже близко больше не подойдет, никогда. Но опять же, маркетолухи гугла говна в уши нальют про "а вот Х все переписали на дарте, бегите и вы переписывать!!!" и "ФЛАГМАНСКИЙ ПРОЕКТ гугла, бегите учите а то отстанете от всего и будете неактуальны!!!" - глядишь индусы со смузихлебами и подтянутся. Но хуй знает, дарт настолько провальный, что тут даже есть надежда, что это говно в этот раз не проканает.
>>1246850 >станет языком для игр в браузере на wasm >на хабре читайте будет поддержка в релизе каком-то )) Тебе сколько лет-то, инсайдер мамкин? Нахер ты со своими инсайдами лезешь, если не шаришь, а? Ладно бы сказал: "ну не знаю, вот лично мне вот эти вот нравятся" - нет ведь, блядь, ИНСАЙД у него. Тьфу, блядь.
>>1246851 >Не совсем понятно, о чем речь. гугли "бойлерплейт"
>Ошибки как раз вверх и пробрасываются. Это значит, что надо в каждой функции, на всякий случай, предусмотреть возврат ошибки. Вдруг она попадет в ту самую цепочку проброса.
>А чтобы знать, где что упало как раз и передаешь в тексте ошибки место Ну скажет тебе что упала функция работы с текстом, ты такой полезешь и увидишь что эта функции из 50 разных мест вызывается, да еще 1000 раз. Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение.
>>1246858 >увидишь что эта функции из 50 разных мест вызывается Значит в каждом месте пишешь return fmt.Errorf("cannot read text in function MyFunc: %v",err)
>>1246858 >Это значит, что надо в каждой функции, на всякий случай, предусмотреть возврат ошибки. Так это и есть go-style. Почти каждая функция должна возвращать ошибку.
>>1246858 >гугли "бойлерплейт" Я знаю, что такое бойлерплейт, пример приведи. Только без примеров, которые решаются за счет шаблонов в других языках( чего нет, того нет)
>>1246854 >Каналы давно уже везде есть И не забудь ручками асинк-авейт написать.
>А вот на ноде микросервисы получаются видимо недостаточно шелковистые Все скриптовые без реальных потоков, вкинул дробилку, убил целый процесс. Так что да, не шелковистые ни разу. Го он как - скомпилил с десяток сервисов и вкинул, не зависимостей не прочей мудотни - один бинарник - одна зависимость под что скомпилил - одна любовь.
>Вообще какая-то субъективная хуйня. А у питона сложные и идеалистичные, да? Самый близкий язык по сравнению это джава (статика, компиляция...), никто ничто не говорил про питон. Понятно это субъективно, но если сравнить с джавой, да, проще либы.
>Это наоборот хорошо, ну и "проброс ошибки вверх" там таки есть. Если ты про фатал - то такого не надо. Проброс конечно есть, исключительно трудом программиста (а не рантайма) если ты разработчик рантайма и компилятора - конечно это наоборот хорошо, но когда на программиста часть работы кидают - надо тут немного проснуться
>>1246864 >Так это и есть go-style. Это не го-стайл, это говно-стайл хи-хи, ну хотя да, ты прав из 80-ых. В сишечке так делали, после каждого вызова условие, ой а все ли нормально ниче не сломалось?))0) А сейчас как бы 2018, люди давно уже знают, как эта проблема решается правильно, но Пайк как всегда в танке. А еще он не осилил написать тайпчекер с дженериками. Ну то есть натурально чувак застрял в 80-ых и не лечится.
>>1246864 >Значит в каждом месте пишешь return fmt.Errorf("cannot read text in function MyFunc: %v",err) >Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение. Ты уже в ответе полез костыли заваривать, не надо :) Это не решение, это адаптация.
>Так это и есть go-style. Почти каждая функция должна возвращать ошибку. А потом до кого-то дойдет мысль "раз почти в каждой функции надо пробрасывать, а не сделать ли это автоматически??" И тут произойдет изобретение исключений, своих каких-то, через жопу, но уже автоматических. Эволюция блин, тут братюнь не поспоришь.
>Я знаю, что такое бойлерплейт, пример приведи. Я тебе прям в картинке ответил, эталонный пример бойлерплейта. В какой-то IDE даже придумали автоматическое сворачивание для этой штуки Эволюция блин, тут братюнь не поспоришь.
>>1246871 >И не забудь ручками асинк-авейт написать. Ты чем читаешь? КАНАЛЫ, какой асинк-авейт?
>Все скриптовые без реальных потоков Конечно, отсутствие мультитрединга - это гигантская проблема при микросервисной архитектуре. Спасибо, что открыл мне глаза, анон.
>не зависимостей не прочей мудотни А докер чо, уже немодно юзать?
>Самый близкий язык по сравнению это джава (статика, компиляция...) Да нет, как раз к ноде\питону оно ближе и по духу, и по нише. Статика там уровня /b, компиляция - ну, питон тоже можно компилировать, в чем поинт-то? А вообще, это типа сишка с гц по задумке же.
>Если ты про фатал - то такого не надо. Про него, по части «и "проброс ошибки вверх" там таки есть.» Надо\не надо - это уже другой вопрос, я тебя просто по части фактов подправил.
>>1246877 >>1246864 >>1246877 >Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение. Такая обработка ошибок в го, может привести к такой плавающей ошибке, что ты не за день, и даже не за неделю, не сможешь решить. Такое уже проходили и исключение это одно из лучший изобретений хер с ними с дженериками
>>1246875 >Ты чем читаешь? КАНАЛЫ, какой асинк-авейт? Мы про асинхронное программирование или про то как без гонки записать данные? может про мьютексы еще расскажешь?
>Конечно, отсутствие мультитрединга - это гигантская проблема при микросервисной архитектуре. Как бы да, один запрос один процесс это ужас и спасение было как раз в асинхронщине. Та же нода на один процесс могла отдать больше за счет асинхронной обработки. Но это справедливо если ответ достаточно быстро вычисляется. А если нет? Снова один один запрос один процесс (там где запросов тысячи).
В общем, скриптами можно делать микросервисы, способностей хватит, но это не лучшее архитектурное решение и да го лучше под это он и создавался
>А докер чо, уже немодно юзать? Меньше ПО в связке проекта, меньше проблем сопровождения. Если го предоставляет возможность тупо залить файл и запустить - то зачем платить больше? А вот если у тебя там 1000 машин и надо деплоить по клику - то да.
>Статика там уровня /b, компиляция - ну, питон тоже можно компилировать Статика и компиляция - это ближе к питону чем к джаве, ну да, ты способный, тут не отрезать.
>Про него Роль фатала - это когда надо сказать "кина не будет" и убиться (в рамках приложения или в рамках одного запроса). Так что не надо эволюционировать и адаптировать такие вещи под исключения потому что фатал там несет некоторые технические нюансы, которые привнесут приятные сюрпризы
>>1246880 >Мы про асинхронное программирование или про то как без гонки записать данные? Я не знаю, про что ты, а я про CSP.
>А если нет? То ты поднимаешь пул воркеров и фронтенд-сервер, который отдает им нагрузку. Это называется "микросервисная архитектура", привет.
>го лучше Спорно. >под это он и создавался А вот тут не поспоришь, лол.
>Если го предоставляет возможность тупо залить файл и запустить - то зачем платить больше? Джава тоже позволяет, и чо? На жвм еще и нормальные менеджеры зависимостей уже сотню лет как есть, а не вот эта параша, что в сабже. Ты уж определись, про микросервисы ты говоришь или про "руками тупо залить и запустить".
>Статика и компиляция - это ближе к питону чем к джаве Я ведь вроде по-русски написал: статика там уровня /b даже по сравнению с джавой (как в си, толку от нее около нуля). По нише он ближе к питону\ноде (ты сам это в прошлом абзаце написал). Компилировать можно и питон, и руби, и даже пхп, так что это вообще ни к чему упоминать. Ну что непонятно-то?
>Так что не надо эволюционировать и адаптировать такие вещи под исключения Так я тебе еще раз говорю, что я с исключениями фатал и не сравнивал, я тебя просто поправил насчет того, что "проброс ошибки вверх" там таки есть.
>>1246857 У тебя ирония сломалась, проверь пробрасываемую ошибку слово инсайд мемично на двачах и скорее всегда отражают маняфантазии автора, что как бы и есть
>>1246856 Я частично согласен, но там и людей то не было, какая разница, это же не аудитория питона 2.0 и релиз 3.0 может между 1.0 и 2.0 так же было??? Конечно, можно взять и тащить поддержку полностью протухшего языка, вопреки логики и здравого смысла, или же, быть может, дать ему второй шанс, полностью переписать и накатить флагман, чтобы не только на авось надеяться?
>никакой нормальный человек к этому говну даже близко больше не подойдет Питон едят же
>>1246881 >То ты поднимаешь пул воркеров и фронтенд-сервер Больше железа, богу железа. Один процесс - один запрос, это плохо даже с пуллом воркеров.
>Спорно Синтаксис там на отъебись сделан, а как инструмент для микросервисов он отличный.
>Джава тоже позволяет, и чо? Да кто говорит что нельзя или не позволено.
>нормальные менеджеры зависимостей уже сотню лет как есть Разве на джаве есть официальный менеджер зависимостей поставляющийся с языком? Это ты про ANT? Или про... ох шит...
>про микросервисы ты говоришь или про "руками тупо залить и запустить". Что не так? Какая сложность залить залить 1 файл или 10 или 100? Или ты думаешь обязательно надо руками и их запускать, а баш файл или супервизор для неудачников?
>Я ведь вроде по-русски написал Да там все понятно, умозаключение "Статика и компиляция - это ближе к питону чем к джаве" должна попасть в золотой цитатник.
> я тебя просто поправил насчет того, что "проброс ошибки вверх" там таки есть. И что? Как это решает проблему ручного проброса если использовать можно только для фатальных случаев. Не все же скрипты пишут, где можно просто падать по чиху в 100 строк кода.
>>1246883 Ну ладно, меня просто триггернуло твое откровение про васм и игры в браузере, лол.
>>1246886 >Питон едят же Ну ты сравнил. Говнидо конечно уебок, но к третьей версии питон уже в любом дистрибутиве искаропки был.
>дать ему второй шанс Нет, нужно было просто закопать говно и прекратить уже пытаться подмять под себя всю инфраструктуру веба. Единственный смысл существования дарта - вендор-лок миллионов макак на (((гугл))). В нем нет никаких улучшений, нет никаких новых идей, нет вообще ничего - только NIH и эффективные манагеры. Короче, нахуй его.
>>1246888 >Больше железа, богу железа. Ты сам только что ратовал за микросервисы. Когда я тебе описал, как выглядит микросервисная архитектура в простейшем случае, ты пишешь "Больше железа, богу железа". Анон, извини, но у меня начинает закрадываться ощущение, что ты не шаришь.
>Один процесс - один запрос, это плохо даже с пуллом воркеров. Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста.
>как инструмент для микросервисов он отличный. Ну, см. выше и предыдущий пост, где я про маркетолухов писал.
>Да кто говорит что нельзя или не позволено. Ну ты же писал, что на го все шелковисто заливается, а не на го - нешелковисто.
>Разве на джаве есть официальный менеджер зависимостей поставляющийся с языком? Да вроде ни в одном (промышленном) языке с самим языком менеджер зависимостей не поставляется. Я говорил про maven + gradle/lein/sbt, очевидно.
>Какая сложность залить залить 1 файл или 10 или 100? Эм, ну сложность в том, что тебе надо делать дискавери, балансинг, одновременный деплой итп итд. Опять же, гугли оркестрацию, девопс, ну или просто "микросервисы".
>умозаключение "Статика и компиляция - это ближе к питону чем к джаве" должна попасть в золотой цитатник. Ну, это ты сказал, ты и добавляй это в цитатники. Я-то тут при чем?
>И что? То, что ты озвучил фактически неверное утверждение, я тебя поправил. Все. Больше ничего, move on. Третий раз об этом говорю.
>проблему ручного проброса Ну, если ты хочешь поговорить на эту (отдельную) тему, то можно, благо в 2018 это уже решенная (но только не в го, лол) проблема. Не знаю, правда, есть ли в этом смысл.
>>1247236 Я вообще не в курсе всей этой кухни дарта, так как мне на него пох. Но флагман дающий кросс-мобильную разработку - это мощный флагман. Никакие докеры и новые браузеры не сравняться тут с этим, так как это не просто некий "показатель", а показатель с мощным и главное нужным инструментом - поэтому даю 70% что выстрелит.
Выкинуть дарт тоже никак, у гугла уже и так не очень репутация по закрытым проектам. Переделать - лучше, чем выкинуть и под новым именем подобное же сделать.
>>1247249 >Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста. Снова золотая цитата. Один процесс - один запрос - это внутренние обстоятельство программы (ну она больше не дает сама по себе, тебе надо больше процессов и машин). В общем ты топишь за ноду и даже не понял почему она выстрелила в свое время а после появления го тупо стала не нужной).
подсказка: нода выстрелила потому, что из-за асинхронной модели смогла исполнять не один запрос на процесс, а (условно) 10 запросов на процесс, в какой-то промежуток времени. И да, воркер и процесс одно и тоже, я сначала подумал ты ошибся и говорил про маршрутизацию, оказывается ты просто очень компетентен в этом вопросе
>...менеджер зависимостей не поставляется. Ты только представь насколько реально крут го, у него в отличие от джавы будет свой и официальный, поставляемый прям с самим языком и батарейками - менеджер зависимости. И это объективно же. Ты только подумай, насколько искаженно твое восприятие, что ты считаешь какие-то де-факто признанные библиотеки как достоинство? которая сначала была одна - ANT, потом другая - maven, а сейчас вообще две, а завтра три или четыре.... Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то?
>(промышленном) языке Что это такое? Питон промышленный? У него pip встроен.
>Эм, ну сложность в том, что тебе надо делать Наслушался конференций на ютубе? Ничего не надо, заливаю файл в папку, "говорю" ребут и супервизор (а может даже и скрипт) определяет по имени что есть новая версия (manja_service_1453) и ребутит нужный сервис. Все остальное роль небольшого супервизора и админской статистики, потому что мы не супер-гугл-хайлоад система и никогда не станем, а если станем, то меня выгонят и наймут такого как ты, который умеет балансить, дискаверить и при этом писать микросервисы на питоне или жс.
>я тебя поправил Поправил в чем? Фатал и проброс ошибок два совершенно разных случая. То есть альтернативы для проброса - нет. Фатал это другое. Ты бы еще похвастался что го может упасть в сигфолте и сказать что это альтернатива фаталу лол Не поправляй, когда не знаешь технических тонкостей похожих на первый взгляд вещей.
>>1247297 >Один процесс - один запрос - это внутренние обстоятельство программы Разберись с тем, что такое мультитрединг и асинхронность. Потом разберись с тем, что такое хттп и что означает слово "запрос". Потом перечитай мой пост еще раз. Я не вижу смысла объяснять тебе элементарные вещи которые можно нагуглить самому, когда ты общаешься в таком тоне.
>свой и официальный, поставляемый прям с самим языком Мавен тоже свой и официальный (ну и не кривой, в отличие от того же пипа), практической разницы нет никакой.
>а сейчас вообще две, а завтра три или четыре Анон, ты опять не уловил поинта, потому что не знаком с сабжем. Я говорю о менеджменте зависимостей, а не о билд тулах. Я хочу (могу хотеть) иметь разные билд тулы (в зависимости от нужд проекта, одно может быть удобнее другого; плюс для скалы, например, хочу пользоваться сбт, а для джавы - грейдлом; плюс элементарно со временем появляются более лучшие альтернативы, поэтому я не хочу вендор-лока), но при этом хочу иметь единый формат репозиториев зависимостей. На жвм все так и есть: у тебя есть мавен-репы, которые поддерживаются абсолютно всеми билд тулами. Поэтому в любой проект на любом жвм языке с любым билд-тулом я могу подключить любую жвм библиотеку. Смекаешь? Алсо, "сначала была одна" тоже неверно - она не была, она есть. Ант билд-скрипты поддерживаются мавеном и грейдлом. Мавен-репозитории поддерживаются всеми билд тулами. Это не "написали, выкинули, написали другое", а инкрементальное развитие, одни тулзы используют другие. Уловил?
>Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то? Тут как раз никакой радости и нет, лол.
>Питон промышленный? У него pip встроен. Куда встроен? Вот у меня стоит python3-pip, отдельный пакет. Да, с 2.7 он идет в дефолтной поставке в виртуаленв и является рекомендуемым ээ, даже хз как его назвать, "инсталлятором пакетов". Ну так и с рубиджемс та же история, например. Это же не значит, что они "встроены в язык".
>Ничего не надо, заливаю файл в папку Ну если тебе на вашей задаче не надо - ну так слава богу ж. Вопрос был "чем отличается 1 сервис от 100", конкретно про твой случай я ничего не знаю.
>Поправил в чем? В том, что "проброс ошибок" в голанг есть. В четвертый раз повторяю, лол, плюс еще другой анон тебе об этом тоже вроде писал.
>Фатал и проброс ошибок два совершенно разных случая. Ты видимо придаешь какое-то особое значение словам "проброс ошибок", а это не общепринятый технический термин (а телепаты в отпуске). В го есть фатал\рековер, которые, типа, можно вызвать при ошибке, и они, типа, эту ошибку пробросят вверх по стеку. Я ничем не хвастаюсь голанг - говно по части обработки ошибок (да и вообще говно), я вроде ясно это дал понять, я просто озвучиваю очевидный факт.
>>1245569 (OP) Сап, стоит учить вместо питуна? Взлетаете во всяких там научных вычислениях? В графичках/плоттинге? Почему шапка именно про сеть, это что, язык написания серверов?
>>1247871 >Сап, стоит учить вместо питуна? хочешь быстрый и асинхронный веб - да не хочешь считать отступы после копипасты кода - да долбишься об GIL - да
>>1247875 Сам с С/С++, его синтаксис будет мне ближе. Хочу import $matlib_name; import $plotlib_name; matlib.poshitay_eto_der'mo(data1); matlib.i_eto_pzh(data2); graphic.v_studiyu(data, axes, field);
По сути usage питуна, но надеюсь на более высокую скорость и удобный пакет-менеджмент.
>>1247876 смотри инструменты и как они решают твои задачи, а не красочность синтаксиса, в большинстве случаем питона тебе для научной фигни хватит, так как многое там в натив переписано и работает шустро.
>>1245569 (OP) >язык который на уровне синтаксиса позволяет синхронизировать подпрограммы >добавили сахарный синтаксис в язык для producer/consumer коллекции из стандартной библиотеки кек. никогда не понимал, зачем добавлять синтаксис для отдельных коллекций, если можно использовать просто интерфейс коллекции? ладно там хаскели всякие, где коллекции встроены, потому что на самом языке их нельзя сделать. Но в го то эти встроенные каналы и хэшмапы зачем?
>>1249144 >ладно там хаскели всякие, где коллекции встроены, потому что на самом языке их нельзя сделать. Но в го то эти встроенные каналы и хэшмапы зачем? Потому что без генериков ты не сделаешь типизированные мапы и каналы, очевидно же
>>1249144 Пайк не осилил нормальный тайпчекер написать, но сделать язык динамическим у него яиц не хватило, пацаны бы не понели. В итоге имеем вот такое govno.
http://tindaloscode.blogspot.com/2017/03/imitating-scala-futures-with-go.html >Clojure borrowed its go-routine and channels idea from Golang. Yet the difference between the Clojure and Go versions in terms of brevity is striking. >... >With generics many of Go's problems would go away. Rob Pike explicitly said, no generics, but hopefully someone will just force him or do it himself instead.
>>1246822 >Он уже второй год падает во всех рейтингах (и это при том, что он только появился + его гугл тащит) Классический цикл хайпа, ты видимо в ИТ недавно, да? Вот если бы гугл действительно бы тащил свои проекты, мы бы уже с 2014 года писали бы все на дарте вместо js, а вместо node.js юзали бы го на сервере.
>>1246848 Основной - пакет может существовать в приложении только в одной версии. Основная боль здесь в транзитивных зависимостях. Я хочу себе пакеты A и B (клиенты для апи амазона и гугла), при этом они оба зависят от пакета С (http клиент) разных версий. Всё, боль, паника.
Очень больно от ошибок. В отличие от боGOподобных исключений, в них по умолчанию отсутствиет стектрейс и код ошибки, из-за чего возникают весёлее игры "угадай, откуда оно пришло" и "проверь, какая ошибка вернулась".
>>1250818 Всегда лучше один час по-рассказывать что-то, чем реализовать это в рантайме на всех платформах и потом это еще и поддерживать. Это как со строками, в сети были целые статьи, рассказывающие что го-строки самые лучшие и вообще просто обосраться круть... но на деле это просто массив сырых байтов и все! Но как удалось завернуть :)
>...which applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.
Ничего не напоминает? Ну ты подумай, не торопись с ответом. какие же смузихлебы дауны
>>1250829 >Это как со строками, в сети были целые статьи, рассказывающие что го-строки самые лучшие и вообще просто обосраться круть... но на деле это просто массив сырых байтов и все! Но как удалось завернуть :)
Массив байтов, можно читать по байтам, можно по utf-символам, можно "бесплатно" загонять в bytes.Buffer Чего тебе не хватает, нуль-терминатора?
>>1250999 не понял о чем ты. видео это хорошее интро в стратегии управления ошибками, про преимущества и недостатки разных методов и как объединить их в одно решение
>>1251046 >Ничего не напоминает? Это паттен "докуратор". В данном случае декоратор ошибки.
И нет это никаким образом не Exception. Разница значительная. - Runtime Exception можно выкидывать из любой функции. В Golang если функция может вернуть ошибку это указано в сигнатуре функции - Одновременно может быть выброшено только одно исключение. Ошибки в Golang это обычные значения. Никто не мешает вернуть несколько или даже массив ошибок.
>>1251213 >Разница значительная Естественно, значительная. Потому что одно - средство языка, а другое - имитация. Исключения как раз и придумали, чтобы не писать эти if (error != null) return error; 99% програмных ошибок не нужно проверять и нельзя исправить, потому что это по определению исключительные ситуации, иначе это бы не было ошибкой. Обработка ошибок всегда выглядит одинаково: это сделать откат, там где нужно (в finally) и написать ошибку в лог. Все. Без исключений это превращается в кучу boilerplate кода и ошибок обработки ошибок. Непойманное исключение хотя бы крашит программу, необработанная ошибка-значение никак себя не выдает. Энджой ер поиск багов.
>>1251225 Вся дурная слава исключений от их неправильного применения. Особенно в java с ее checked exception и огромным ассортиментом исключений на любой вкус. В с# намного лучше это все. В 90% случаев ты просто кидаешь одно из немногих стандартных исключений и ловишь его где нибудь подальше, не оборачивая каждый вызов метода в catch
>>1251113 >Массив байтов, можно читать по байтам, можно по utf-символам Не п#зди, нельзя, нужно призывать к магии, то есть к рунам (тупо распарсить сырой поток байтов в настоящий 4-байтовый массив). И это нужно делать каждый раз, когда хочешь корректно обработать utf-строку (конечно, если твои строки не байтовые аскии символы).
>>1251225 >99% програмных ошибок не нужно проверять и нельзя исправить, Маня, ты хоть раз в жизни программировал? 100% Ошибок надо проверять. Ты только что обосрал все известные мне гайдлайны.Для примера, Сони за такое штрафует. Отправь такое приложение в Playstation store и через неделю ты им будешь хату должен и все свои органы. >99% програмных ошибок...нельзя исправить Какое, блядь, нельзя исправить? Нет сетевого соединения с хостом - попробовал через Х секунд или запасной. Remote Logging не отвечает? Не беда пишем логи на диск Нет файла с конфигом? Создаем конфиг по умолчанию БД вернула ошибку транзакции? Создаем sqlite локально и пишем туда, что бы информация не пропала, потом синхронизируем Даже после ООМ и ребута можно выжить записывая локальный журнал или используя Event Sourcing. Хули ты мне втираешь? С таким подходом только лендинги на ПоХаПе лепить. >Обработка ошибок всегда выглядит одинаково: это сделать откат, там где нужно (в finally) и написать ошибку в лог. Вон из профессии. Макаки думают что реальное программирование это высрать Happy Path и сидеть дрочить до конца работы. Большая часть кода это обработка ошибок. В критически важных приложениях соотношение до 80%/20%, где 80% обработка ошибок. Такие долбоебы. Не удивительно что ракеты падают.
>>1251264 Молодец, написал все 2 use case исключений: повторить что-то или выполнить другую функцию в случае ошибки. В языках с исключениями это пишется декларативно парой строк с использований библиотек. Например https://github.com/App-vNext/Polly
>В критически важных приложениях соотношение до 80%/20%, где 80% обработка ошибок Вот это манямирок. В коде с нормальной архитектурой вообще мест где может случится ошибка очень мало. Это буквально 1, 2 интерфейса.
>>1251359 >В коде с нормальной архитектурой вообще мест где может случится ошибка очень мало
Да-да, слышал про "нормальную архитектуру", подтверждаю. Но вообще это устаревший подход. Если разрабатывать по концепции "хорошая архитектура", то ошибок вообще можно избежать. Никаких сайд эффектов, все просто работает идеально. Вы дауны, что ли, разрабатывать систему, в которой могут проявляться ошибки?
>>1251374 Есть такой класс ошибок, которые называются transient error, которые возникают сами по себе и исчезают независимо от программы. Их нельзя предусмотреть и решить внутри программы. Например, перегружен сервер, или мыши перегрызли провод.
>>1251213 >- Runtime Exception можно выкидывать из любой функции. В Golang если функция может вернуть ошибку это указано в сигнатуре функции То есть ты не слышал ни про checked exceptions, ни про panic в го.
>Никто не мешает вернуть несколько или даже массив ошибок. Ты вообще ни с одним языком не знаком, ведь так? Ну либо тебе аллах запрещает возвращать в исключении любые нужные данные.
Анон, ну ведь со стороны видно, что ты совсем некомпетентен. Давай закончим этот разговор.
>>1251621 >Runtime Exception >То есть ты не слышал ни про checked exceptions Читать умеем? >checked exceptions Кроме Жабы исключения никто не использует? >ни про panic в го. В Го панику не используют для сообщения о такой ужасающей ошибке, как, барабанная дробь, КОНЕЦ ФАЙЛА ПРИ ЧТЕНИИ!!! java.io.EOFException!!! ФАЙЛ КОНЧИЛСЯ, ВСЕ В МАШИНУ!!! >Ну либо тебе аллах запрещает возвращать в исключении любые нужные данные. Одновременно выброшено может быть только одно исключение. Мат. часть, учим ее. > Давай закончим этот разговор. Ой все?
>>1251864 Работа со строками очень нативная операция. Любые накладные расходы на таком уровне, потом очень сильно отражаются на производительностей всей программы (а веб это как раз частая работа со строками). Так что парсить постоянно сырые байты в строку по правилам utf-8 рунами (не обращая внимание на то что еще и память засоряем) - не лучший дизайн.
>>1251883 >(а веб это как раз частая работа со строками). Так что парсить постоянно сырые байты в строку по правилам utf-8 рунами (не обращая внимание на то что еще и память засоряем) - не лучший дизайн. Чот мне сдаётся, что ты не в говорить то, о чём где-то слышал. Анон, расскажи, как ты будешь "парсить постоянно сырые байты в строку по правилам utf-8 рунами"?
>>1250715 Получить трейс так можно. А вот как понять, что это за ошибка? Поддержки кодов нету, тип всегда один (структура из pkg/errors), смотреть по тексту - ну вообще не очень..
>>1251942 >Чот мне сдаётся, что ты не в говорить то, о чём где-то слышал. По-моему ты перегрелся?
>Анон, расскажи, как ты будешь "парсить постоянно сырые байты в строку по правилам utf-8 рунами"? см картинку, но ты походу индиго и не знаешь даже как устроен utf-8 и что за правила ведущих нулей
>>1254365 1. Когда подвезут, тогда и поговорим. 2. Go2? Go мать его 2? Они уже собираются ломать обратную совместимость? Ебануться, если так, я вот с этой стороны подлянки от Пайка не ожидал. Он конечно мудак, но не настолько же, блядь. Кто в теме - поясните.
>>1254421 >Они уже собираются ломать обратную совместимость
Сам хуйню написал - сам пригорел. Типичный анон.
Никто обратную совместимость ломать не будет. Старый код как выполнялся, так и будет выполняться, сможешь вообще новые фичи игнорить и писать на го 2 так же, как на го 1.
>>1254427 >Сам хуйню написал - сам пригорел. Знак вопроса видишь? Значение знаешь?
>Никто обратную совместимость ломать не будет. В чем смысл названия "го2" тогда? Судя по тайтлам (сами их драфты я не читал если что), они собираются перелопачивать много базовой хуйни, с которой облажались изначально. А это значит, что придется менять библиотеки, в том числе стд. Так что ну такое, на словах конечно хорошо если они обещают полную обратную совместимость (пруфца кстати кинь заодно, а?), а уж как на деле получится - посмотрим.
Братишка, ну так чего спешишь мнением своим делиться? В драфте про дженерики как раз какие-то всратые контракты описаны, чтобы оно текущую концепцию языка не поломало.
>>1246822 > > В качестве единственного языка для бэкенда который ты знаешь не подходит вообще, в качестве еще одного инструмента для своей ниши - почему бы и нет.
Нет никакой возможности вызывать из GO код python, который использует C библиотеки? Как я понимаю единственная возможность - это пройтись по всему коду и обернуть C, но там типо не два моих файла, а огромные либы на вершине программной инженерии и компьютерной науки, созданные великими разработчиками и учёными, даже архитектура запредельна для смертных. Если нельзя, то придётся, не знаю, пользоваться либой для го от гугла.
>>1254751 Все так, как до недавного кричали что `go get` пиздат и больше ничего не нужно. А, еще что GOPATH это норм, ага. Есть такая пизданутая черта у гошного коммьюнити.
>>1254751 >Сейчас набигут годети, которые годами кричали, мол, джене штука в том, Анон, что на 10 шумных годетей приходятся таки 90 адекватов, которые слушают вайн хейтеров (и попивают смузи).
>>1254469 >Братишка, ну так чего спешишь мнением своим делиться? Каким мнением? Перечитай еще раз два предыдущих поста.
>чтобы оно текущую концепцию языка не поломало. Опять же, перечитай предыдущий пост.
>https://github.com/golang/go/wiki/Go2#compatibility >Go 1 and Go 2 code must be able to interoperate in programs with ease. Interoperate - значение знаешь? То есть это будут по факту два разных языка с интеропом между ними. Ровно то, о чем я говорил, причем походу даже хуже, чем с пи3. Впрочем, чего еще было ожидать от гугла с его дарт-клоунадой. Алсо, самое смешное, что все нормальные люди с самого начала говорили: вы сделали говно, вы тупые мудаки, сделайте нормально и потом релизьте. Нет, пайк уперся (потому что тупо не умеет компиляторы писать, лол), а теперь спустя эн лет после релиза они все будут переделывать. Рукожопие как оно есть.
Ни для чего серьезного го не годится. Лет через 10 можно будет на него посмотреть, сейчас это - игрушка для мамкиных блокчейн-стартапиров и двух с половиной команд, которым вместо python+c хочется нескучных обоев. Увы.
>>1254756 >Тогда просто разбиваешь сложную ёбу на дохуя блоков и их в дохуя промисов. Итерации тоже в промисы. Как это бывает в реальности - хер пойми где эта сложная йоба окажется в коде. Поэтому асинхронщина в одном потоке может идти лесом сразу
>>1254477 Так это го надо учить в придачу к чему-то основному. В целом, ящитаю как минимум надо знать один статический язык джаву, одну динамикодрисню, один современный функциональный язык.
>>1254851 > Ни для чего серьезного го не годится То есть Prometheus, CockroachDB, Kubernetes это не серьезно, DropBox просто так написали 1.3 ляма строк на го, а Microsoft просто так сама пишет порт для windows/arm архитектуры и уже уверенно начинает разрабатывать прикладной софт на нём? Попробуй хоть иногда из своего манямирка вылезать.
>>1254979 Тренд восходящий, не надейся. Хайп уже прошел, на го написано огромное количество серверного софта, так что влажные мечты о его смерти, к сожалению для тебя, хейтерок, уже не осуществимы.
>>1255406 > Остальным ответ очевиден, имхо. ОЧЕВИДНЫ такие вещи только сектантам. У адекватных технарей для простых вещей есть простое и понятное объяснение. Понятно, что хуже от знания какого-нить Хаскеля не будет, но вот практическая польза так же не очевидна.
>>1255421 Практическая польза в том, что ты сегодня даже форму на реакте не нашлепаешь без понимания основ ФП. Вылазь уже из танка или не вылазь, мне похуй.
>>1255432 >Вылазь уже из танка или не вылазь, мне похуй.
тааак, а теперь скажи: ты понимаешь разницу между "основами ФП" (в которые сектанты записывают всё подряд, вплоть до const в C) и изучением Хаскеля или другого ФП языка? Для форм на реакте ВНЕЗАПНО нужен JS, и понимание first class functions, а вот Хаскель -- не нужен.
>>1255481 >Если упомянул х-ль ДОЛЖОН ВЫУЧИТЬ, Я СКОЗАЛ сосачеры не меняются.
Ещё раз, для тех кто в танке. Для понимания функций как параметров других функций и прочего Map, Filter, Reduce на JS нужно учить (внезапно!) не х-ль , а JS. Вопрос сектантам: нахуя ж учить ФП языки программирования?
>>1255493 Нафига нам твой говно-жс, который дрочится в одном процессе/потоке с туевой тучей лапши из калбэков, промисов, когда есть божественный само-асинхронный ГО?
>Ещё раз, для тех кто в танке. Так и будешь сам с собой разговаривать?
>нахуя ж учить ФП языки программирования? Чтобы писать более лучший код. Твой вопрос звучит как "нахуя учить ООП" в 90-ом году. На эту тему столько всего уже везде написано, что ты либо совсем нюфаня, либо пытаешься в троллинг и наброс на вентилятор. В любом случае, мне похуй: не хочешь - не учи, твоя жизнь, мне на нее насрать, понимаешь ты это?
>>1255675 Понятно что го для бэкенда хорош и совершенно нормально со скриптов переписать на го свой проект и получить профит. Но какой смысл слазить с няшных засахаренных скриптов, чтобы идти на дядю писать ему if != nil ???
Docker работает и на винде, там нет chroot/jail, это уже давно все не обёртка, а де факто доминирующая технология. А CockroachDB и миллионы строк кода у дропбокс хейтеркам лучше игнорировать. Обзови огромный доминирующий проект обёрткой и пытайся всех убедить что это не серьезно - задетектируй в себе зашоренного хейтерка с горящей от го и проектов на нем жопой. Что же тогда на вашем любимом расте даже баззвордов таких нет?
Алсо, забыл про Graphana, да. Как же все таки больно хейтеркам от тотальной доминации гошечки в его нише и огромных темпах роста. Если бы го не было, его нужно было бы придумать только для этого. Наблюдать за горением ограниченных, завистливых, тупых ублюдков, подписывая уже 25-ый инвойс одной европейской конторе, пишущей бекенд исключительно на го - бесценно. А если потом ещё заглянуть в почту, на которую постоянно пишут HR с вакансиями для гоферов, то ещё смешнее становится.
Вылезайте уже из манямирка. В 2014 году, когда я начинал писать коммерчески на нём, когда только появлялся докер, который действительно был больше похож на обёртку - да, тогда было стрёмно. А сейчас он уже в топ-10 и совсем не собирается оттуда слазить, а совсем наоборот. Ну питон, конечно, лучше тоже выучить, всякие ML штуки, анализ данных и автоматизация деплоя (привет ансибл) на нём. Вот у меня же не болит срака от доминации питона в его сферах, я просто выучил, беру и использую. Так нелья, что ли?
ЛОЛ БЛЯТЬ ПАЦАНЫ Короче сидел выбирал фпшный-околофпшный язык, чтобы бекенд писать, да и вообще знания подтянуть я реакт.джс фроентендер, но и ноду знаю, уже неделю листал всякие скалотреды, ваш тред, дискуссии на разных форумах про бекенд на этих языках, смотрел синтаксис, читал особенности, смотрел количество вакансий... А ПОТОМ БЛЯ КАК ВСПОМНЮ, ЧТО Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ, ЗА БОЛЬШИЕ ДЕНЬГИ С БОЛЬШИМ ВЫБОРОМ ВАКАНСИЙ И КАК ЗАОРАЛ СНАЧАЛА С СЕБЯ, А ПОТОМ С ВАШИХ НЕДОЯЗЫКОВ
>>1256926 >Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ Можно и на ассемблере бэкенд писать. Но зачем? JS на бэкенде это настолько убогое зрелище, что в больших проектах его стараются не использовать.
>>1256926 >А ПОТОМ БЛЯ КАК ВСПОМНЮ, ЧТО Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ, ЗА БОЛЬШИЕ ДЕНЬГИ
Очередной гуманитарий-программист решает, что именно он выбирает технологии, а не бизнес.
Реальность такова, что лучше пойти в пхп контору чем нод.жс, во первых потому что это говно совершенно невозможно нормально сопровождать калбэк-спаггети-хелл, а при ошибке, ты утопишь целый процесс, во вторых, сразу ясно что язык притащили на хайпе фронтендеры, которые дальше своего фронта не видели и код там будет соответствующий. код на в ноде и так ужасен, а тут его еще пищут малоопытные люди, которые бэкенд раньше и не видели
Так что добровольно идти и потом кусать свои локти, потому что у тебя еще 2010 год и ты опоздал на хайпе-поезд ноды - ну не знаю...
я знаю что ты тупо тролль и у тебя бомбит от го, потому что он решает те же задачи ноды, но безболезненно. Поэтому можешь не отвечать
>>1257058 Ну, или возможно, просто предположить если, Го решает асинхронные задачи лучше чем нода (за счет чего она в свое время выстрелила верните мне мой 2009)
С точки зрения бизнеса - удобно конечно иметь фронт и бэк разработчика по одной цене, не спорю. Но нахера за это добровольно топят сами программисты?
>>1257213 У ноды кризис какой-то? Откуда такое засилье индиго-программистов с маня-победами? хотя, судя по сленгу и стилю, это может быть вообще один и тот же дебил? Не верю что на ноде все такие одарённые
https://habr.com/post/422049/ >Новый же механизм вводит контекстно-зависимый "прыжок", похожий одновременно на исключения, на defer, на break и на goto. И хотя данный подход сильно отличается от исключений, и больше похож на goto, Хороший механизм, одобряю, самое то для Пщ.
Го - просто невыносимый провал. Да, идея с асинхронщиной хорошая и идея вообще продукта, но как его сделали, это ппц. Так еще никто не посылал программистов на... Самое забавное, что они даже комьюнити выдрессировали посылать всех инакомыслящих на...
>>1257828 >Го - просто невыносимый провал. Авторитетненько. >Да, идея с асинхронщиной хорошая и идея вообще продукта, но как его сделали, это ппц. ППЦ сдилали, Ни магли сдилать в сто разов лучшее!!!11 >Так еще никто не посылал программистов на При чем тут истерички?
>>1259198 К сожалению нет, го показал свое отношение к комьюнити.
Ну нельзя почти 10 лет вменяемому программисту заливать в уши про особый путь, особые ошибки, ненадобность всего и вся, про эту тягомотину с дженериками и менеджера зависимостей и потом, еле как, начать двигаться в сторону реального мира программирования и начать копировать уже устоявшиеся решения, но опять же криво и по своему. Поэтом только дарт2 бро. Надеюсь под рантайм го сделают компиляцию дарта.
>>1259215 т.е. ты всерьёз предлагаешь переходить на Дарт, успевший сломать совместимость, не имеющий таки кошерного гошного рантайма, да и вообще являющимся "JS без _фатального недостатка_"? не-не-не, бро, столько смузи мне не выхлебать
>>1259246 >успевший сломать совместимость Где? Не утрируй, там нормальная миграция на 2.0 Переход на го2 с тем что нарисовали - тоже не будет безболезненным. Но язык должен развиваться, а не быть подобным "го", где раз в 10 лет завозят подобие goto для обработки ошибок.
>не имеющий таки кошерного гошного рантайма Кто сказал что он там такой прекрасный? Я вот слышал обратное. В любом случае, если бы он был так хорош, то уже сделали накатали какой-то транслятор из других языков или из новых, с лучшим синтаксисом.
>"JS без _фатального недостатка_" Причем тут js? как там в 2011? Дарт имеет отношение к жс так же как и котлин.
>не-не-не, бро, столько смузи мне не выхлебать Ты реально с 2011. Но я понимаю что у тебя просто бомбит, хотя дарт ппц как консервативно выглядит, в сравнение с теми же го, растом, котлином, свифтом. Там даже порядок "Тип переменная" на классическом месте, какой смузи?
>>1259252 Окей, дитя 2018-го, я готов тебя слушать: Чем в бекенде Дарт2 кошернее Го2? Без тралинга и саркезма, просто поясни на примерах. Ну там вот httprouter на go не удобный, а на Дарт смотри какой удобный. Вот у тебя в Go какая ебала из каналов и горутин, а в Дарт смотри пример какая охуенная конкурентность. Готов тебя слушать
>>1259334 Ты нормально для начала сформулируй, чтобы тебя хотя бы понял.
Ты спрашиваешь есть ли в дарте асинхронное программирование - да есть и конкурентность - в виде изолятов, которые сообщениями обмениваются как и во всех языках это уже давно все есть. В go даже без костылей свой поток не подымешь, приходится на каждый чих супер-микро-сервис пилить.
А теперь ты мне скажи, есть ли в го исключения, дженерики, ООП, коллекции...?
>>1259528 Дженерики таки будут, а с ними и дженерик-коллекции. ООП -- вопрос веры: Как способ объеденить данные и методы работы с ними, и полиморфизм через интерфейсы всегда было. А как наследование, и абстрактные фабрики конструкторов виртуальных объектов -- ну нах.
Теперь вопрос: чем хорош Дарт вообще, и лучше Го в частности? конкретно
>>1259646 >ООП -- вопрос веры ООП - это вопрос безопасного кода путем инкапсуляции данных, и decoupling объектов путем полиморфизма. go - это процедурно ориентированный язык со всеми недостатками.
>>1259646 >Теперь вопрос: чем хорош Дарт вообще, и лучше Го в частности? конкретно >исключения, дженерики, ООП, коллекции...? пакетный менеджер, потоки, флаттер который будет GUI в новой ОС вместо андроид и для пк, а пока кросс-мобильная разработка без абстрактных мостов. Удобная разработка gui на процедурном языке гуи ужасен язык впитал все лучше из джава-си-подобных языков, с минимум фантазий, что очень удобно.
>>1259772 GUI - это графический пользовательский интерфейс, а не то, что ты там себе придумал.
Даже интерактивная презентация, нарисованная в PowerPoint - это GUI, потому что у нее графический, а не какой-то иной интерфейс взаимодействия с пользователем.
>>1259824 На сайте golang.org посмотри инструкции по установке и пользованию. Когда хоть как-то поймешь, то качай IDE (vscode или jetbrains goland) и там пиши программы.
>>1259775 >GUI Не нужно мешать говно и палки, чтобы оправдать свое унижение. Если браузер это GUI, потому что это графический элемент твоей ОС, которая предоставляет тебе GUI и ты можешь взаимодействовать с ним локально, то веб-сайт с которым ты взаимодействуешь уже не является частью твоей графической среды, он предоставляет такое понятие как веб-интерфейс.
>>1259888 Все правильно говорит, если программа рисует внутри какой-то свой UI - это не часть общего графического юзер интерфейса например GUI рисует тебе командную строку (терминал), от этого командная строка не становиться GUI
>>1259892 Ну или у тебя GUI в ОС может быть в 256 цветов, а браузер (который тоже 256 цветом) рисует тебе графику (веб-интерфейс) в 32 миллионов цветов (как обычно).
>>1259896 Тебе, видимо, трудно понять. Все эти GUI, CLI... это интерфейсы взаимодействия с твоим железом, веб сайт, в общей форме, не является интерфейсом взаимодействием с твоей аппаратурой
>>1259901 Ты согласен с утверждением? >GUI рисует тебе командную строку (терминал), перестает от этого командная строка быть GUI?
>Лол. Лол в том, что такие как ты скоро начнут рисунки на обоях называть графическим интерфейсом, бегом читать что такое user interface вообще и что такое вообще interface.
Что значит эта часть? С большим трудом я смог сделать так, чтоб по команде run у меня появлялся хелло ворлд в цмд, но когда я прописываю ./имяфайла, то у меня пишет, что . не является внутренне или внешней командой, а как я понял, должен был появится хелло ворлд..
>>1260083 Вместо go run ./helloworld.go используй go build ./helloworld.go и тогда в папке $GOPATH/bin/ появится файл helloworld - то есть твоя программа.
Ананасы, как приделать к функции таймаут? У меня есть функци загрузки файлов из инета, но иногда подключение происходит ОЧЕ долго, и по хорошему, надо обрубать соединение секунд через 30. Это реально сделать?
Как в го принято тестить ошибки? Нашел https://github.com/bouk/monkey чтобы можно было мокать методы по типу os.Exit, это норм? Да и вообще, почему такая беда с остальным? Тесты на ифах в 2018... Из-за этого толком непонятно, сколько вообще тестов выполнено, ну хотя бы коверейдж неплохой завезли.
>>1261634 Имею в виду, что надо же как-то заставить функцию выбросить ошибку, чтобы if стейтмент проверить. Например, эта у меня файл открывала, поэтому я легко мог передать другой путь, чтобы специально ошибку получить, но вот будут другие, где так не получится.
> testify Да, то что нужно. Пиздец себя дураком чувствую, почему-то гуглил про тесты на го, а эту либу пропустил/не встретил, зато всякое говно на 0-1000 звезд откопал.
>>1261547 Ты же понимаешь, что просто пукнул и даже не объяснил в чем прав?
Статик типизированный язык не может быть интерпретируемым априори. Если ты думаешь что быстрая компиляция и последующий запуск это интерпретация, то ты глупее чем думаешь.
>>1259523 Ну ты сам посмотри, что ты вбросил. Первый вариант = 72 коммита, второй = temporary fork. С мускулем ситуация такая же. Мне если чо самая концепция дарта норм, но я хотя бы признаю, что серверный дарт на данный момент -- выбор для ебанутых наглухо фанбоев.
>>1252031 > см картинку > работаешь с настоящим utf-8 А как мне работать с настоящими индексами? Чёт ты хуйню какую-то пизданул, и рад. Пик стронгли рилейтед.
>>1262051 у ты монстр. А как ты так пишешь тест в начале? Вооще гря s.enumerated() возвращяет EnumeratedSequence<String>, а меж тем стринга сама по себе сиквенция.
>>1262058 > А как ты так пишешь тест в начале? Так обычно же, это prompt для баша с директорией, типа export PS1="\W \$ " в ~/.bash_profile > стринга сама по себе сиквенция Ну да, и нумеруются нормально, а у Go с range придётся поебаться.
>>1262059 >Ну да, и нумеруются нормально, а у Go с range придётся поебаться. Н у просто эти индексы это Int, по ним ты в саму строку не сможешь обратиться. Там тоже своя ебатория.
>>1262062 > Там тоже своя ебатория. Да ну хрен знает, не вижу вроде никакой проблемы. Да, вроде длинно создать индекс, но всё равно, по номеру символа я получу вменяемую utf-8 строку в один символ, а не какое-нибудь говнецо. >>1262063 Несколько лет сисадминства дают о себе знать.
>>1262070 > то вот тогда как раз я хуй знает А если мне нужен именно третий символ - я должен думать, а не введёт ли какой-нибудь кретин туда ü? И из-за этого пилить что-нибудь уровня пикрилейтед. >>1262069 Да ничего страшного не случится, в принципе. >>1262071 Зачем он мне, лол.
>>1262077 Я первый день сегодня вижу Golang, лол. Думал, чем бы развлечься, решил глянуть, что за язык такой, на котором средняя зарплата выше, чем у меня. Зашёл в тред, посмотрел литературу, увидел обсуждение про строки, решил пример состряпать, и сравнить. Самое интересное, что пример на Golang компилится и выполняет куда быстрее, чем на swift'е. Вот это и правда загадка. Пожалуй, и правда стоит поколупать. Пойду, попробую какой-нибудь проект пореальнее сделаю, да сравню.
>>1262093 Сам в том же положении себя обнаружил, айосник. Но какой же, блядь, го убогий после свифта. Для себя решил, что нахожусь в самом пиздатом технологичнском стеке, посмотрим что там дальше будет.
Но в целом трудно не согласиться что выбора не очень много, тем более что к топовым языка драйвер вообще пишут сами DB.
Язык относительно новый (если смотреть с релиза 2.0), но не все так критично. У Wrike бэк разве не на дарте? В ру-слаке сидят разработчики, спроси у них, если любопытно (сам я только играюсь конечно)
Мне смому интересно давно. Напимер Java. Переменные там строготипизируемые или нет? Давно его ковырял, уже забыл. А меж тем Джава машина вроде на лету интерпретирует язык чи нет?
>>1262158 Ну да, может и убогий, но если решает задачи, да за это ещё и платят - можно и привыкнуть. Попробую что-нибудь серьёзнее на нём сделать, посмотрю на его убожество воочию.
>>1259862 Го при всех его плюсах очень специфичен. Это не хуже, чем начинать с js'а, например - но я бы посоветовал что-нибудь более классическое. Java, C++ или, прости господи, PHP (сам я начинал с pascal/delphi, но это было довольно давно). В-общем, C-подобное, нормально развитое, с классическим ООП и без дополнительных взрывающих мозг концепций навроде зелёных потоков (новичку оно не надо).
>>1262749 Хотя, с другой стороны, гугл пропагандирует го, как максимально простой язык, из готорого вырезали всё ненужное.. Я даже засомневался. Если продожишь с го и выживешь, то напиши рассказ про свой опыт лет через 5, интересно будет прочитать.
>>1262830 Чего тебе, дибилушке не хватает? Говори не стесняйся.
Go второй год в лидерах по размеру заработка разработчиков. https://www.theregister.co.uk/2018/09/07/software_developer_salaries/ >According to the survey data, Go, Scala, Redis, and React are the technologies most associated with high salaries. PHP, ожидаемо, в жопе. >And PHP, it seems, is correlated with lower salaries.
Короче, пока додики пиздострадают, умные люди освоили перспективный язык и хорошо зарабатывают.
>>1262749 Чем зеленые потоки разрывают мозг? Если объяснить концепцию в изначальной форме, то это просто распределение задач на готовом наборе обычных потоков. Го тем и хорош, что в нем нет сложных концепций.
Скажите как в срез [ ]bytes добавлять байты в шестнадцатеричной системе исчисления и как это всё читать/писать в файлы также в шестнадцатеричной. И как ещё оперировать с числами размерами больше одного байта.
>>1262860 Ты совершаешь классическую ошибку профессионала: хорошо разбираясь в какой-то области и обладая определённым опытом, ты видишь многое простым и очень легко понимаешь многие концепции просто за счёт бекграунда. Новичку бы понять смысл таких вещей как "цикл", "ветвление" и "функция". Потом "объекты" и "классы". А ты сразу предлагаешь ему целую область многопоточных вычислений запихать в голову. Приди к школьнику и начни ему рассказывать про числовые ряды и их сходимость. Это всё очень просто, но без знания сложения, умножения и каких-нибудь степеней он этого не осилит.
>>1263547 >даже абстракцию никакую не повесишь Как это не повесишь. На него можно повесить другой синтаксис\язык поверх, который будет транслироваться. Го отличная платформа, чтобы не заморачиваться со сборщиком мусора и многопоточностью, и кросплатформенностью. А так же на выходе иметь статичный бинарь.
>>1263552 это "goto" в go2, который придумали, не решает проблем с ошибками никак. Если тебе надо решить все ошибки в одном скопе, то скорее всего тебе уже нужен фатал или же ты начнешь городить простыню из if, что будет доставлять, потому что даже в си гото внизу пишут, а не сверху этот трешь в функции читать.
Можно ли вообще вкатиться в микросервисы на самостоятельном обучение? Мне просто кажется, что бы я там не выучил, это будет настолько далеко от продакшена, что пиздец. Или все же можно до приемлимых знаний подтянуть?
>>1263858 Да хули бы нет, поработай с докером, напиши пару простых сервисов,чтобы один ходил в другой, оберни их в докер, поднимай вместе и эксплуатируй. Можешь книжку по микросервисам почитать от О'Райли.
что нужно, чтобы стать полноценным бекендером на го? Что написать, чтобы понять как писать на го и выложить на гитхаб, чтобы работодатель сказал "ай маладца". Алгоритмы и структуры знаю, писал на жаве и с.
>>1265105 Напиши интернет-магазин для каких-нибудь товаров. Товары храни в nosql базе данных. Разбей приложение на микросервисы, к примеру: сервис работы с бд, сервис админа ( то есть добавление товаров и тому подобное), сервис для работы с пользователями( показать товар, добавить в корзину и тд). Для взаимодействия сервисов используй gRPC.
Например есть метод os.Create("inform.bin"), да? И он иногда возвращает ошибку. Когда блять может быть такая ебанутая ошибка, чтобы он не мог файл создать?
>>1268209 >>1268211 Место на диске кончилось, сетевой диск отвалился, у ссд исчерпался лимит записи и он встал раком, ФС поломалась и перешла в read-only...
>>1271771 Пиздец с такими тестовыми, я теперь понимаю почему Windows 10 на SSD грузиться почти минуту, а macOS Mojave еще больше. Лютый ужас да и только. Поколение безликого стада, а не программистов.
>>1271891 >У кого-то руки кривые. Винда за секунд 15 грузится с нормального ссд При том что порезанная от дерьма линуха у меня грузится за 2 секунды. Без всякого говна на С++ и Java.
>>1271891 >Нормальное тестовое, как раз чтобы потренировать все веяния в разработке на го. Какие нахуй веяния? Вы что поехали головой, уважаемый анон?
Я понимаю научиться с каналами работать, с сетью показать работу, и другое системное, ну может чистый protobuf, но не блядь баговый gRPC разработанный дебилами для даунов.
Какие нахуй noSQL? Они не нужны в 99,999% случаев нахуй НИКОМУ(!). Поиграться - максимум, да базы без схемы данных! Ого, ничего себе. Конечно же на реляционке такое не реализовать(!). Давайте лишимся транзакция человеческих, согласованности, научим целое поколения срать на информацию. Для задачи - построить магазин, и обслужить клиентов хватит с головой православного PostgreSQL, не нужно плодить сущностей лишних.
Нужно масштабирование и шардирование - ебетеся с кластерами и Master-Master схемами с правильным человеческим подходом, а не блжад изобретаете хуйню очередную на базе Кассандры для шизофреников конченых. Есть еще крутейший Microsoft SQL, но всему свое время.
Нужен хороший RPC - делаете его на базе человеческого Protobuf и HTTP или простых сокетов самостоятельно.
>>1271915 Тред выше не смотрел, но сразу придирусь к твоим словам: > баговый gRPC разработанный дебилами для даунов. Я не думаю, что в google сидят дебилы или что они разрабатывают для даунов. > Какие нахуй noSQL? Они не нужны в 99,999% случаев нахуй НИКОМУ(!). После таких высказываний можно и заканчивать. noSQL по понятным причинам намного проще масштабируются это раз, позволяют хранить неструктурированные данные - это два. Не говоря уже о том, что в мире распределённых систем все представления о согласованности сильно видоизменяются (читай про саги). А транзакции даже и в монге недавно появились.
Подытожу, ещё один хейтер, который считает, что все вокруг дибилы, понавыдумывали хрень, а он один шарит. Видел я людей с такой точкой зрения в реальной жизни, код зачастую пишут вообще отвратительный.
>>1265108 Да не нужно таких сложных штук для тестового. Просто написать производительный веб-сервис, который вычисляет, например, N-ый член какого-нибудь числового ряда, с кэшированием результатов в бд, автотестами и длинной арифметикой. За глаза хватит.
>>1271963 > noSQL по понятным причинам намного проще масштабируются это раз, позволяют хранить неструктурированные данные - это два. 1) Охуенно так масштабируются - ценой крови программистов. Охунное масштабирование уровня /pr/ 2) Удивительно, но хранение данных без схемы - этап давно пройденный. В PostgreSQL том же уже давно есть JSON и XML колонки. Продолжать здесь не буду. Просто не вижу смысла.
>>1271963 >Не говоря уже о том, что в мире распределённых систем все представления о согласованности сильно видоизменяются (читай про саги) Охуенно так видоизменяются. Попробуй, мразь, в банке поставить свое говно уровня MongoDB. Пусть клиент А дважды снимет со своего баланса денежку, пусть банковские ведомости не сохранятся сразу, хули же видоизменились же по твоему профессиОНАЛЬному велению. Тебя нахуй убьют по стене на следующий день.
>>1271963 > А транзакции даже и в монге недавно появились. Нихуя себе, а параграфом выше ты топил за видоизменения понятий согласованности данных. Ты прост таки как истребитель Су-27... Еще в Кобру Пугачева тут исполни.
И последнее, вишенка на торте. >Я не думаю, что в google сидят дебилы или что они разрабатывают для даунов. Ну конечно не дебилы. Ведь не дебилы пишут Android который на топовых телефонах тормозит, тормозит на их пикселях с 4 гб ОЗУ, ведь нужно уже 6 гб сразу, а давайте 8 гб хули.
Не дебилы, ведь они же могли посмотреть какой тип параметра что они передавали при сериализации структуры данных в библиотеке C gprc. Не дебилы, ведь мне ЛИЧНО этим мразям не пришлось отправлять позорный для них фикс.
Итого: Гугл набрали даунов, который мыслить дальше дебильных интервью не могут. Они мыслят шаблонно и топорно, а это - ужасно. Пайк один из немногих адекватов которые там остались в режиме: "мы тебе дадим бабки, а ты сделай язык для наших макак".
>>1271963 >Видел я людей с такой точкой зрения в реальной жизни, код зачастую пишут вообще отвратительный. Ну по я по крайней мере не буду вставлять 100500 библиотек и переписывать в коде ICMP, чтобы реализовать задачу которая запускается раз в 1 минуту типа попингуй тот хост. Я запущу сторонним процессом /sbin/ping с нужными мне параметрами, и подожду завершения, и если надо - считаю stdout/stderr. И чтобы время получить точное с удаленного сервера я воспользуюсь ntpdate.
В этом и разница между нами, хомячок. Я не пишу нахуй не нужный код.
>>1271963 > Я не думаю, что в google сидят дебилы Почему ты так не думаешь? Я вот например могу вспомнить их провальный Dart. А параллельно с ним гуглы пытались написать что-то вроде jit-компилятора для питона, но признали что провалились и полностью переключились на Го. А еще их с треском провалившийся хостинг гит-проектов (уже забыл как он назывался)
> позволяют хранить неструктурированные данные Что вроде "анальный секс это хорошо потому что этот интерфейс есть у любого человека". На практике при создании интернет-магазина или платежной системы и тд у тебя всегда будут отношения между данными.
>>1272055 > Почему ты так не думаешь? Потому что их веб-сервисы стабильно работают под сумасшедшими нагрузками, которые мы не можем себе даже представить и обладают при этом огромной сложностью. Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс. А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе. Это называется "эффект Даннинга-Крюгера", если проще - если человек долбоёб, то он не способен даже понять этого, потому что он долбоёб. Для примера можно взять анона из >>1271998 которые убеждён, что в гугле работают дауны, которые мыслят шаблонно, только почему-то получают в 20 раз больше, чем он и задачами занимаются на порядки сложнее. Я примерно то же самое, чувствую, когда еду с такстом, который начинает рассуждать о политике ("а чего тут думать, отобрать и поделить" (с)). Что же касается Dart'а, провальных проектов и прочего, то непонятно, почему ты делаешь из неудачных проектов вывод, что они - плохие. Андроид всё ещё самая распространённая мобильная ОС, хром - самый популярный браузер, гугл - самый популярный поисковик, а youtube - видеоплатформа. В сухом остатке гугл всё ещё тотально доминирует, не забывая развиваться в новых областях (сейчас они активно лезут в CV, DataMining и прочее машинное обучение). А неудачные проекты у всех есть, провалов нет только у тех, кто не делает ничего.
> Нууу, нет. Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение. Тут есть тонкость в том, что noSQL - это очень расплывчатое понятие, туда входит куча нереляционных и прочих не-* баз данных, все со своими особенностями.
> Что вроде "анальный секс это хорошо потому что этот интерфейс есть у любого человека". На практике при создании интернет-магазина или платежной системы и тд у тебя всегда будут отношения между данными. Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд, очень быстрого доступа по ключу и т.п. - и под каждую есть свой оптимизированный под задачу инструмент. А если ты будешь для интернет-магазина использовать nosql просто потому что модно - то логично и справедливо получишь проблем.
Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого. Был среди "моих" разработчиков и такой, которому всё всегда было "а, понятно", "да тут всё понятно же", "да тут долбоёбы понаписали явно, хуйня какая-то", только вот какую задачу ему не дай - постоянно куча косяков возникала. Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так. Надо разобраться". Распространённое когнитивное искажение, начинаешь считать, что всё, что непонятно или странно - оно неправильно, а все, кто несогласен - идиоты. Только потом оказывается, что всегда находится кто-то умнее и .
>>1272192 >Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс.
Последствия - кучка CVE каждую неделю, С++ этому способствует только ИМХО. (Браузер) Последствие такой сложности - по 2 гб на вкладку памяти, и разработчики сами не могут уже понять где что там. (Blink + V8) И я сейчас говорю только за браузер. Это лютый ужас, который хрен пойми как работает, собирается на моей машине почти 6 часов в режиме Jumbo Build. В пизду такую сложность. Установил Firefox, который собирается намного меньше (хотя все кричат что Rust медленный в сборке), меньше жрет памяти, и в целом - лучше. Установил параллельно Epiphany (Эпифан, лол) :-) - и там все еще лучше вопреки WebKit.
>А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе.
У меня достаточно навыков и опыта чтобы слать тебя и всех твоих гуглоколлег в жопу, не волнуйся об этом
> Андроид всё ещё самая распространённая мобильная ОС
Что уже привело к весьма интересным последствиям. Люди молятся чтобы это говно не глючило при RAM <= 2GB... Да и stagefreight оказался сладким, к слову как там Accessibility service поживает?
>хром - самый популярный браузер Что не мешает мне снести это говно после 4-5 компиляция по 6 часов на Gentoo. Что я с успехом и сделал.
>>1272192 >Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение. В задачах человеческих сфер использования ( не для сайтов где обсуждают кто кого вчера трахнул, или "один другом писю показывает, а ему донатят" ) - в сущностях много зависимостей. Весь твой nosql с потерей данных будет кукарекать в сторонке. Никому нахуй не нужно бизнес терять данные. Kurwa no net.
>Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд, Вот там они блядь и применяются. Не в сука тестовом задании для магазина ебучего по продаже услуг шлюх явно(!).
>Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого. Я не первый десяток лет. И таких как ты послать подальше успел много. Помогало в 99% случаев.
>Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так.
Если твой код не может объяснить человек начального уровня, то проблемы у тебя. Нет, именно у тебя. Ни у кого-нибудь другого, а именно у тебя. Я не говорю, что не нужно следовать паттернам структуры и порождения, я говорю о том что не нужно злоупотреблять ебучими абстракциями. Я говорю о том что бинарник должен решать одну сука задачу, а не миньет делать направо и налево.
>>1272253 Я не истина в последней инстанции, но я серый кардинал того заказчика. Тот серый кардинал который посмотри на то говно которое ты сделал и скажет ТЕБЕ засунуть его в жопу и переделать.
Расскажите, чем вы в продакшене занимаетесь и что используете? Или может вы просто знаете, что чаще всего встречается? Список может состоять от простых баз данных до специализированных тулзов.
Инбифо: посмотри вакансии и что там требуют. Да очевидно конечно, но почему-то ГО это какое-то исключение, если для других языков перечислены кучи библиотек, фреймворков и прочих вспомогательных технологий, то для ГО "ну эт ниплоха если вы знаете ДЖИЭС или еще какой-нибудь язык в придачу". А где блядь что-то конкретное?
>>1273049 В период хайпа навтыкали код со своего го, хипсторов то потом по-увольняли, а код же надо теперь сопровождать. Вот и вакансии соответствующие.
>>1273049 Потому что для го не нужны фреймворки, чтобы написать бэк. Богатая net/http либа это все что надо. Ну хотя я лично ещё раутер chi юзаю, чтобы бойлерки поменьше было
>>1273049 Для Го написали много разных библиотек и нету такого, что надо использовать конкретную. А так, изучай базы данные, и пакеты к ним. Также может понадобиться уметь работать с профилировщиком.
блять, так что лучше изучить, го или руби? Сам я работаю и хочу изучить для себя, построить бекендик для себя из одного этих языко. Антуаны что посоветуете?
>>1279235 Современный php - это очень продвинутая и качественная штука, как бы его не хейтили. По уровню проработки доктрина или симфони оставляют многие другие фреймворки на других языках далеко позади. И бизнесу, кстати, php по нраву. Потому что он достаточно производительный, разработчиков найти легко, а существующие решения, как правило, многофункциональны и без проблем работают из коробки. Поэтому для новичков можно рекомендовать, ящитаю.
>>1279191 Слышал, что graphql не очень, потому что весь на рефлексии. И вообще, штука скорее хайповая, чем устоявшаяся. Я бы навернул обычный rest, хорошее, проверенное решение. Ну и там swagger ещё, но это уже красивости.
>>1280371 >>1280372 >>1280374 Чувствуешь что пхп скатывается в жопу и никому не нужен @ Расстраиваешься совсем, ведь больше то ничего и не умеешь @ Забежал в тред, нагадил какой-то херни, хер пойми откуда @ Чуток отпустило, легче стало @ Дальше ушел теребить laravel, который поддерживает 1 request per hour
>>1280371 >>1280372 >>1280374 Возможно, для тебя это будет открытием, но кассиров, охранников и таксистов-со-своим-авто требуется на порядок больше, чем программистов в целом и на пару порядков больше, чем программистов на Go.
Помогите. Я новичок во всех смыслах. Пытаюсь запустить gui версию одного приложения. Использовал библиотеку gtk+3. Запускаю и вижу >go build github.com/gotk3/gotk3/gdk: invalid flag in pkg-config --libs: -Wl,-luuid
Я несколько часов в гугле пытаюсь хоть что-то найти, ни видимо не туда смотрю. Можно на пальцах объяснить как это исправить?
Почему нужно делать такой уёбищный синтаксис? Сделали бы обычную си-подобную хуйню, и было бы ахуенно, но нет, блять, надо тут скобочку опустить, там func вместо function использовать. Тьфу, блять.
>>1287259 Да так то похуй, просто непонятно для кого всё это. Вот реально, в чём смысле убирать скобочки кондишена ифа?, но в тоже время оставлять для, например, параметров метода. Как-то вот всё как-то разрознено и кажется, что сделано по принципу "потому что могу". Хуй знает, я, как обычный джавамакак, блеванул, хотя и подумывал вкатиться.
>>1287812 >Да так то похуй, просто непонятно для кого всё это. Вот реально, в чём смысле убирать скобочки кондишена ифа?, но в тоже время оставлять для, например, параметров метода. Как-то вот всё как-то разрознено и кажется, что сделано по принципу "потому что могу".
Вопрос привычки по большому счёту, чем-то радикальным Go не является, просто очередной вариант настроек curly brackets. Мне вот Java заставляет глаз дёргаться
>>1287905 По поводу курле бракетов согласен, кто-то бегин-енд пишет и им норм - дело привычки, но с ГО же дело в консистенси, язык не выглядит как будто бы он продуман и решает какие-то проблемы. Просто смогли и сделали. Заебись канеш, уважуха, но смысловой нагрузки ноль.
Для работы с ошибками: github.com/pkg/errors Это самое распространенное решение, я бы сказал. Хотя вот недавно еще такое выкатили github.com/joomcode/errorx но я не щупал.
Для логирования github.com/sirupsen/logrus
Для клишных команд github.com/spf13/cobra
Для конфигов самый распространенный и фичастый github.com/spf13/viper но лично я только env переменные юзаю, потому мне и github.com/kelseyhightower/envconfig норм
Еще для валидаций можно что-то взять, там зоопарк и что-то конкретное пиздатое сложно выбрать. Я вот это заюзал github.com/asaskevich/govalidator вернее типизированные функции из него дергаю.
>>1289281 В твоем случае разницы никакой нет, т.к. ты просто считываешь поля структуры, не изменяя их.
Терминология:
по значению = передача методу копии объекта. Если во время выполнения метода меняешь значение какого-то поля структуры, то меняешь ты копию, и эту копию (как и все изменения) почистит сборщик мусора, когда метод завершает выполнение (если, конечно, ты никуда ничего не передаешь).
по ссылке = по указателю. В этом случае, изменяя значения полей структуры, будешь изменять именно переданный объект, а не его локальную копию.
>>1289321 > кирилицей c в имени переменной в main'е писать это типа тонкий троленг, да?
Нет, это я проебался когда писал, а потом бугуртил хули не собирается, блять.
> В твоем случае разницы никакой нет, т.к. ты просто считываешь поля структуры, не изменяя их
Это я просто тутор читал и там про методы было и был пример с передачей по указателю. Но там не было пояснения отличия. Потом догадался сделать пример с копированием и увидел что там как с обычными функциями будет.
А в го нет const? Если, например, я хочу передавать в функцию переменную и не хочу её там менять, то в Си я бы сделал аргумент константным, но тут либо указатель, либо копировать. В таком случае придётся лишний раз нагружать GC?
>>1289150 Не совсем так, очевидно, ты не будешь писать всё сам и в идеале должен писать только бизнес-логику, а весь системный слой должен быть уже доступен в виде каких-то библиотек. Другое дело, что в го сообществе сложился подход, немного отличный от мира php (или java, как понимаю). У php-шников обычно есть фреймворки, которые сразу содержат в себе код на все случаи жизни, rest, сокеты, модели, sql, логгинг, и прочая, и прочая. Это хорошо тем, что ты единожды ставишь какой-то фреймворк и у тебя сразу же есть всё, что нужно, заботливо раскиданное по папочкам. И плохо тем, что зачастую всё очень сильно связано и ты не можешь как-то изменить логику работы фреймворка, если это не предусмотрено авторами - и иногда приходится бороться с фреймворком вместо решения непосредственных задач. В мире го нет фреймворков в php-шном понимании, есть множество библиотек-пакетов, которые делают только одну вещь (и иногда даже делают её хорошо). Всю обвязку вокруг них должен написать ты сам. Это не всегда удобно, но зато намного гибче. А если кто-то будет говорить, что фреймворки не нужны, сторонние зависимости не нужны, вендор нужно хранить в гите и прочую ересь - надо ссать ему в лицо.
>>1289725 >А если кто-то будет говорить, что фреймворки не нужны, сторонние зависимости не нужны, вендор нужно хранить в гите и прочую ересь - надо ссать ему в лицо.
Хм, гайс. Такой вопрос. В ГО есть возможность передачи множества аргументов в функцию. К примеру (yoba ...int). А можно как- нибудь передать значение массива без использования слайса ? Ну, я тупо не хочу копировать массив слайсом. Только через цикл, что ле ?
>>1291394 Можем, однако тогда функция будет принимать ограниченное количество элементов. Энивей, погуглел, разобрался. Однохуйственно, слайс - всего лишь указатель на кусок памяти, так шо поебать.
Мне нужны разработчики го-лэнга бэкэнд + фронтэнд react JS. Плачу почасовую ставку от 7$/час, свободный график, полная удаленка, рад студентам. Если тут такие есть напишите мне пожалуйста в телегу @p19ads3
>>1294077 >напишите мне пожалуйста в телегу @p19ads3 Почему-то у меня ваша "телега" стала прочно ассоциироваться со студентотой или низкокачественными программистами. Это нормально?
Господа, а как на go можно решить задачу с поиском строки по большому файлу? Есть файл, в районе 800 Мб (20кк+ строк), и есть необходимость быстро найти строку в нём, причём полное вхождение. grep делает это долго, понятное дело. Может есть смысл загнать его в оперативку и построить какой-то индекс? Подтолкните, что загуглить.
Как вообще c работой на Go в России? Что по стеку технологий, требуются ли вообще джуны? Базовые знания математики, алгоритмов и прочего есть, думаю о перекате в разработку из администрирования.
>>1300477 Go - это как правило веб и микросервисы. На базовом уровне всё как обычно, общий веб, sql, базовые структуры данных, алгоритмы ну и очевидная гошная специфика в виде бест практик, оптимизаций, многопоточности. Дополнительно будут полезны паттерны программирования. Ну а дальше нужно уже смотреть по вакансиям для компаний в твоём регионе.
Сделал небольшой клиент-серверный чат. buf := make([]byte, 1024) len, err := conn.Read(buf) Но вот в этом куске кода кроется проблема - он работает только с заранее выделенным размером памяти. Как сделать так чтобы он принимал сообщения любой длины? Пробовал сначала передавать два байта для того чтобы сервер понимал какой размер у сообщения, но этот способ соснул.
кто-нибудь привязывал godoc к sublime, чтобы можно было внутри редактора смотреть исходники той или иной хуйни? если получилось, то как? заебался уже искать
Посоны, допустим у меня есть очередь из миллиарда чего-то там. Как сделать так, чтобы в любой момент времени моя программа обрабатывала 100 элементов из этого миллиарда? То есть вот запустил я 100 горутин, один елемент обработался и надо сделать так, что бы сразу его место занял новый. Как это делается с этими ебучими каналами?
>>1303089 Гугли worker pool golang. Алсо, если у тебя задачи жрущие ЦПУ/Память, а не ждущие IO -- то мало смысла запускать больше работяг, чем у тебя ядер. Алсо2, я хуй знает что у тебя за лярд элементов и откуда, но читай их оттуда последовательно, а не все сразу.
Доброго утречка! Есть raspberry, пилю на нее ПО для работы со сканером штрих-кодов. Сканера работает по UART, соответственно работа происходит по serial-порту. Использую библиотеку https://godoc.org/github.com/tarm/serial с порта снимаю строку как на пике. Какой бы не была строка, fmt.Println() выводит как раз то, что нужно, а именно номер между двумя переносами строк. Но как мне получить этот номер в переменную? Толи я додвачевался и не вижу элементарного решения, толи здесь нужны какие-то ухищрения делать из строки массив с помощью split, разбивая по '\r' и выбирать элемент, соответствующий нужной длине.
Ребята, а что используете как IDE? Я вскод юзаю для интерпретируемых языков, для компилируемых вроде и работает все, но ппц неудобно, а завозить отдельную иде чисто для компилируемого языка не очень хочется.
>>1303580 ну да, уже пробую эту штуку просто у меня небольшие стереотипы после идеи, потому как та выжирала много ресурсов, а на больших проектах тормозила
>>1303584 Когда работал с руби пробовал использовать RubyMine. Охуел с этого тормозного говна и перекатился обратно в уютненький саблайм. Сейчас под гошечку решил еще раз попробовать, но уже Goland. Работает на удивление очень шустро, брат жив. От фич в восторге.
>>1303245 >Алсо, если у тебя задачи жрущие ЦПУ/Память, а не ждущие IO -- то мало смысла запускать больше работяг, чем у тебя ядер Сетевое IO. >Алсо2, я хуй знает что у тебя за лярд элементов и откуда, но читай их оттуда последовательно, а не все сразу. Допустим я читаю миллиард строк из файла на машине с 8 гигами рамы. Скорее всего, весь файл в память не влезет. Если я сделаю worker pool из 10к каналов, то этот пул будет висеть пока последний канал не закроется, так же?
>>1304145 Читай свой файл через буфер, складывай строки (предположим урлы) во входной канал. силами 10к воркеров (если у тебя система потянет столько открытых соединений), бери строки из входящего канала - что-то там обрабатывай - отдавай результат - бери следующий. Каждый работяга будет держать только один элемент входящих данных, ну и понятно свои личные данные.
Заебись, блядь. Проебал 2 дня на курс по суслику на курсере. Всё заебись, понятно, чотко-стильно-молодежно. И ТУТ, СУКА, НА НАХУЙ, ЕБАНИ ДЕРЕВЦЕ КАТАЛОГОВ, КАК ПРАКТИКУ.
Не, я понимаю, стильно- модно- молодежно. Но, какого хуя, после рассмотрения БАЗИСА языка, нужно написать dirtree, в котором повсеместно используется пакет io (который, конечно же, никто разбирать не собирается). Причем, мало того, сам по- себе синтаксис в практике в два раза сложнее, чем программа курса.
Почему в англоязычных курсах\книжках\документации все нормально и по- человечески, а практика дается ПО ПРОЙДЕННОМУ МАТЕРИАЛУ, зато единственный в своем роде контент в ру-зоне такой отбитый ?
Причем, это касается большинства курсов, зопиленых рашн погромиздами. Почему, блядь, нельзя сделать адекватную подачу материала, а все находится на уровне - "ну, мне похуй, загугли сам".
сука роб пидар ебанный зачем ты camelCase ты чо блять ебанутый что ли. ну чо нормально нельзя было сделать как человеки? вот мразь же а все равно буду snake_caseом все делать. пидор.
Блядь, хайс. Объясните, у меня есть строка. Как проитерироваться по строке и сравнить какую- либо букву строки ? К примеру,у меня есть s := "yoba". Как мне сравнить одну букву этой строки ? к примеру s == "a" ? Причем, хочется именно проитерироваться по строке.
Пацаны, поясните за го пакеты. Если я хочу разбить код на разные файлы, но я не хочу создавать папки по пути /github/go/... , а хочу импортировать просто из папки в моей ветке и коммитить ее тоже, например import "utils/parsers", то как это сделать и можно ли? ГоланД ругается и не хочет видеть мои функции, если я так импорчу.
>>1314347 Понимаю просто привык к такому подходу, а тут выходит, что даже если у меня в сервисах 2-3 функции, то надо отдельный прям ПАКЕТ по этому уебищному пути. Пиздец просто.
>>1314376 Ни в чем, просто как-то не очень на мой взгляд выглядит. если у меня утилита для локального проекта, которую я хочу просто вынести и пушить в репо, то не вижу смысла выносить ее вот так.
Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не Pony или Erlang. Это в 2018 году-то.
Дженериков нет, просто смирись.
Обработка ошибок получается охуенно через http://github.com/pkg/errors | в приложениях обычно можно просто паниковать на ошибках.
HTTP-сервер для убер максимального маня-хайлоада: https://github.com/valyala/fasthttp
С версии Go 1.11 наконец-то появится официальный менеджер зависимостей vgo
https://github.com/avelino/awesome-go - список всяких разных пакетов, написанных на Go.
Для вката в Go читай Донован, Керниган "Язык программирования Go", https://www.golang-book.com/, книги из списка https://github.com/dariubs/GoBooks, а также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
Вкатываемся в эпоху докера, микросервисов и адово кошерной сетевухи.
Прошлый тут: https://2ch.hk/pr/res/1159767.html