GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.Для вката в Go читай Донован, Керниган "Язык программирования Go", https://www.golang-book.com/, книги из списка https://github.com/dariubs/GoBooks, а также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSwПэкеджи можно искать тут https://github.com/avelino/awesome-goЖивем в ожидании Go2, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериковПрошлый >>1563445 (OP)
Насколько раз слышал, что что-то делать осознанное на пщ можно уже через пару дней.Что я должен прочитать чтобы сделать это?Пишу на питоне и жс
>>1603162дольше в пару раз, статический язык, для каждой структуры, например, нужно реализовывать сортировку руками и парсить json в полуручном режиме.
>>1603323Ты про перегрузку аргументов функции как в жаве? В жсе мне такое не нужно было, так что сложно сказать. Насколько заебно писать без такой фичи?
>>1603326> В жсеВ динамически типизированных языках нет такой проблемы. Ты пишешь одну функцию и можешь передавать что угодно. Здесь же в худшем лучшем случае есть interface{}мимо
>>1603326>Насколько заебно писать без такой фичи?Это мастхев для статического языка, иначе твое API будет говном, с префиксами или постфиксами и мы видим что так оно и есть
>>1603329>>1603330Зато так проще? Может вы не видите ценности в таком трейдофе. Но потом вряд ли запутаетесь в своих функциях. Пайк заботится о тебе, анончик.
>>1603162JS лаконичнее + статическая типизация в Go, поэтому чтобы такое же выразить нужно больше кода.
За всё время существования Go находили ли в его официальных компиляторах зонды? Гугл был бы не гуглом, если не встроил зонд в своё детище. А если не нашли, то в чём подвох? Кстати, с патентами всё нормально? Гугл сможет, как создатели жабы, подавать в суд за использование стандартных конструкций языка?
>>1604214Это немного проблематично, если у языка доступен исходный код https://github.com/golang/goне то чтобы совсем невозможно, но сложно, очень
>>1604214> официальных компиляторахБудто есть другие.> в чём подвохТам кто-то из гугла говорил про то, что go такой простой в изучении специально, чтобы как можно больше хомячков его выучило и работало за бесценок.> Гугл сможет, как создатели жабы, подавать в суд за использование стандартных конструкций языка?Толсто.
>>1604228Может же быть так, что компилятор собран с одного кода, а на гитхабе другой код. Мало же народу будут собирать из исходников, все скачают сдк.
>>1604242Один из вариантов, но опять же есть шанс попасться.Ну и в целом надо понимать, что логика по сливу чего-то интересного гуглу, да еще предварительно это найти на рандомном серваке, а еще это все в докере или клаудной VM, а там еще рулы на фаерволе...
>>1604241gcc-go, llvm-go, emgo, tinygo, плюс ещё куча велосипедных, никому ненужных компиляторовещё понаделали форков go под названием vlang, odin-lang и т.д.https://roem.ru/10-10-2016/231632/oracle-vs-google/"Причиной судебных споров между Google и Oracle стал язык программирования Java, разработанный в 1991 году компанией Sun Microsystems. [...]В мае 2014 года было опубликовано решение апелляционной инстанции, которая пришла к противоположному выводу, что «общая структура API», а также «структура, последовательность и организация программного кода» могут быть предметом авторского права, и Google, соответственно, частично нарушила права Oracle. "https://www.linux.org.ru/news/android/14765971суд до сих пор идёт
>>1604303И вообще, у меня складывается впечатление, что как есть аноны, сидящие в рид-онли, так есть и такие, кто сидит в write-only, то есть не читают треды перед тем, как что-то запостить.
>>1604303Помню несколько лет назад гоферы бегали и срали статьи, как они перешли с успешно с очередного "x" языка на го. А теперь им кидают эти истории успеха, но уже с го.Больно? Да?
>>1604349Мне похуй на го, я вообще джавист и здесь ради срачей про дженерики. Но я всё охуеваю от уровня некоторых, сидящих здесь.
>>1604352Тебе не больно что жаба больше не нужна? Ну есть котлин, кто в шарпе, кто даже в го. А на жабе одно легаси только.Даже в моей говноконторе еще в 2019 выкинули последние строки на жабе.
>>1604357> Тебе не больно что жаба больше не нужна?Хедхантер лучше знает, нужна она или нет.> Ну есть котлинА ещё есть скала, груви, кложура, цейлон. Котлин скоро к ним присоединится.> кто в шарпеШило на мыло.> кто даже в гоТолько для микросервисов и годится. Бизнес всерьёз его не воспринимает.< на жабе одно легаси толькоАктивно пишутся новые проекты для тырпрайза.
>>1604363>Хедхантер лучше знает, нужна она или нет.Это капитал кода из легаси, нашел чему радоваться, словишь код, который достался из текучки кадров.>Только для микросервисов и годится. Бизнес всерьёз его не воспринимает.Однажды на ковер пришли гоферы и сказали, мы сделаем то что делают жабисты, на коленке. И меньше чем за месяц написали на микросервисах то что спринганутые писали годами. Сейчас в конторе жаба считается моветоном, синонимом генератора плохосопровождаемого (читаемого) кода.Хотя для меня го хуже чем жаба, но практика показала, что го для бизнеса более привлекателен.>Активно пишутся новые проекты для тырпрайза.На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет.
>>1604382> Это капитал кода из легаси, нашел чему радоваться, словишь код, который достался из текучки кадров.Будто на других работах люди каждый день выкидывают старые проекты и пишут новые с нуля. Легаси есть абсолютно везде, это норма.> Однажды на ковер пришли гоферы и сказали, мы сделаем то что делают жабисты, на коленке. И меньше чем за месяц написали на микросервисах то что спринганутые писали годами. Сейчас в конторе жаба считается моветоном, синонимом генератора плохосопровождаемого (читаемого) кода.Если это станет не единичным случаем, а общим трендом, я в первых рядах пойду перекатываться в другие языки. Я не цепляюсь за джаву из каких-то сентиментальных чувств, но пока что она чувствует себя хорошо.> На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет. У нас в одном зелёном банке плюются от почти всего, кроме жабы, и все новые проекты пилят на ней.
>>1604406Никак, это маркетинговый ход, чтобы заткнуть тех, кто ноет про дженерики и прокидывание ошибок.
>>1604297>discordТак они молодыешутливые с эликсиром и электроном, хуй знает существует ли более хипстерская контора
>>1604409Чем больше язык был в топе, тем более дремучие там легаси.Проблема легаси жабы - оно практически нечитаемо.Одно дело хеллоуворд в контроле спринга записать, другое увидеть самописный спринг.>плюются от почти всего, кроме жабы, и все новые проекты пилят на ней.>потому что больше ничего и не умеют.Жабисты пишут на жабе, классика же. А могли бы пилить на котлине, но не осилили.
>>1604461> Проблема легаси жабы - оно практически нечитаемо.От проекта зависит. Если его пишут люди "Мы сюда исключительно за деньгами ходим, поэтому будем костылять, говнокодить и антипаттернить, чтобы закрыть побольше тикетов", то это уже не в жабе проблема, а в головах.> А могли бы пилить на котлине, но не осилили.> могли быАга. А на хаскелле могло бы быть больше всего вакансий. Вот только живём мы не в сослагательном наклонении.
>>1604382>На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет.Синдром утенка из палаты мер и весов.
Блин, а вообще гошечка у кого-то может быть первым языком? Просто странно, что на нее активно накидываются джависты и иногда ржавые.Ну норм язык. Я вот пишу и на го, и 6а расте, на питоне, и на typescript. Мне норм.Три языка разного уровня, каждый под свою задачу.Гошечка мне нравится больше. Писать легко и приятно, программки быстрые, многопоточные, простые в понимании.
>>1604733Прям совсем первым - вряд ли.Но если говорить, как первый коммерческий язык - то такое есть, когда из студентов набирают стажеров и учат го
>>1604363> А ещё есть скала, груви, кложура, цейлон. Котлин скоро к ним присоединится.Не понял, это кукарек в духе "нинужна, я скозал"? Сижу на скале и котлине, получаю удовольствие от работы, и платят больше чем тебе минимум в 2 раза, а то и во все 4.
>>1604492>больше всего вакансийКакие нахрен вакансии, мы говорим про уже работающих джавистов в банке.У вас уже как у ботов один и тот же триггеры, услышал про котлин, пишешь про вакансии, лол
>>1604492>От проекта зависит.Можно фантазировать и философствовать до усрачке. Но реальность такая, что львиная доля легаси проектов на жабе, не читаемая жесть (как минимум на моем опыте).И люди радуются что им на +500$ больше платят, да в таком коде я бы и за 10К не сидел бы.
>>1604531>Вот набежали шарписты в жаба-тред, жабисты теперь набежали в го-тред. Что дальше?Дальше? Дальше принять таблеточку.
>>1604733Typescript - уже не нужен, все что надо было уже накатили в самом js. Из типов нужен был автокомплит и проверка в IDE на ошибки, это все решается через jsDoc.Джава - это кобол.Котлин - сахар над коболом с привязкой к IDEScala - люди поигрались в язык.Groovy - шикарен, но JVM уже никому не нужен.Го - внутренний специфичный язык компании, с соответствующим запашком. Хз почему никто не написал сахар поверх него (Готлин).Раст - язык чтобы писать бенчмарки с unsafe (очередное "поигрались" в язык).С++ - будет всегда (Си тоже)Haxe - интересно, но не взлетело.Шарфик (C#) - шикарен.Питон - годен только распарсить файл, написать простой скрипт, а дальше на нем возня такая же как на любом другом языке. До сих пор не понял как его деплоить с virtenv говном.
>>1604948Одно говнище кругом, пора выкатываться из вайти.> TypeScriptЭто CoffeeScript.> GroovyЭто перл.> C#Это Delphi.
>>1604948>>1604952Зря вы так. TS - тема.Я фанат их гибкой системы типов, автовывода.Это нереальный огонь, когда переходишь с динамических языков без явных типов.Потому что с одной стороны типизирует код, а с другой стороны код получается компактнее чем в джавах шарпах.
>>1604973Это огонь, когда не транслируется в динамичное говно.А так у тебя была одна проблема, теперь стало две.
>>1604531>а вообще гошечка у кого-то может быть первым языком?Нет, ибо до сих пор нет качественной литературы для полных нулей в программировании. По крайней мере русскоязычной.Хотя, если с преподом изучать, то прокатит.
Раньше джависты весь тред по лбу стукали, теперь котлинисты пришли. А еще джависты вернутся, когда у них fibers запилят.Еще шарписты только не приходили, но это потому что у них тред студентов-вкатышей, им нечего сказать.
>>1604948> Scala - люди поигрались в язык.> Раст - язык чтобы писать бенчмарки с unsafe (очередное "поигрались" в язык).Неосилятор, ты?> JVM уже никому не нужен.В голос.> Шарфик (C#) - шикарен.А, теперь всё понятно.
>>1605659> Jvm-языки не конкуренты гошечке. Тормознутое говно.Пссссс, окропил тебя уринушкой, няша.Scala/Akka-боярин, Clojure-господин
>>1606037Кучка программистов и маркетологов с самой популярной поисковой системы не смогли создать уникальных базворд для своего языка.Теперь как долбаеб постоянно дублируешь в поисках go и golang тоже говно с раст и языками с одной буквойКак бы котлин не хейтели, но парни подумали даже про поиск.
>>1606147Сишке простительно, это говно динозавров еще до интернетов была создано (и тем более до казуального инета с поисковиками). Но вот эти С#, D, R, F, V
>>1606138Котлен хорош, но соновная платформа у него жвм, а котлин нейтив очень сырой и хз когда будет готов. Плэтому кокотлен можно смело выкидывать на помойку.
>>1606228Плюс котлина на жвм в либах.Если не будет либ, то котлин не имеет смысла вообще.Тогда уж Раст.
>>1606228Какая тебе принципиальная разница между тем что у тебя под капотом - VM или же жирный рантайм?Был бы го на VM, даже тут не кукарекнули бы.
>>1606260Минус го как раз в том, что в свое время пришлось писать то, о чем раньше даже не думал. Плюс в либах (качественных), это сотни сэкономленных часов.
>>1606314Из языка выкинуто все, не эксепшенов, не виртуальных методов, ни поколений (где ребята из дискорда такие пики бы не увидели).Да, VM жирная (сколько там? 20-40мб?), но это пох, это дает тонну других плюшек.
>>1606314Это особенно заметно в серверлесс.Старт жавы - жутко медленно.У скриптовых языков получше, но не огонь.А вот гошечка идеально подходит.
>>1606312>А чего нет - отдельный микросервис на питоне.И получается - одна нога у тебя бионический процесс, который шустро работает, а другая пиратская палка, которая еще двигается.
>>1606312Ахахах, я в ахуе с логики goвноедов, костыли на каждый чих из-за того, что нет нужных либ - это видите ли достоинство, а либы для жабы - это недостаток и вообще легаси!Всё-таки прав был тот анон, писавший про любовь к го как индикатор некомпетентности. Это воистину так.
>>1606337Это называется архитектура и разделение ответственности.Монолиты на одном языке, умеющие все, были популярны два десятка лет назад.Сейчас под задачу выбирается наиболее удобный инструмент.
>>1606337О, мою пасту еще помнят, не зря тут срал столько тредов кстати, пишу на котлине давноФатальный недостаток го в том, кроме тех, которые много раз обоссали уже, это то, что нельзя организовать свои пулы потоков в которых крутятся горутины (например для базы один пул, для парсинга другой).
>>1606333Обкакунькиhttps://levelup.gitconnected.com/aws-lambda-cold-start-language-comparisons-2019-edition-%EF%B8%8F-1946d32a0244
Здарова почаны. Начал учить пщ. Не долго думая в качестве знакомства языка решил запилить бота для тг. Вот вопрос, есть ли у Go какая-нибудь ORM'ка изучение которой в последствии пригодится для устройства на работу? SQL собираюсь учить после GO. И нет, это не первый язык который я учу
>>1606893В джаве лучшие ORM, они самые удобныые и быстрые.На го их вообще нет, придется самому писать, как и большую часть решений. Это язык для внутренних велосипедов компании гугол.
>>1606894Не хочу жабу пока что, хотя может быть стоило бы. Ну, и думаю 17к звезд достойный показатель https://github.com/jinzhu/gorm
>>1606896>Full-Featured ORM (almost)Почему чувствуется вечно какая-то ложь в го?Как-будто какой-то подросток, который хочет быть похожим на взрослого и но у него не всегда это получается.Что касается ORM вообще.Построить SQL запрос и потом мапить его на структуру - дело 5-20 минут. Еботни учить очередную ORM и потом бороться с отладкой этой ORM в гиганском проекте - это месяцы работы.
>>1606896gorm хоть и популярна, но многие ее избегают, потому что внутри неявное поведение. Смысла учить какую-то orm для го нету, лучше учи вебфреймворки
>>1606893GORM часто в вакансиях проскакивает. Сам не пробовал, но анон всякое про него говорил, например - https://2ch.hk/pr/arch/2019-09-04/res/1360787.html#1438486От себя могу порекомендовать не использовать ОРМ, вместо этого взять хороший квери-билдер, мне github.com/go-jet/jet понравился
>>1606980> TIOBEОн показывает сколько вкатывальщиков гуглили язык. Лучше бы распарсили hh ru и сделали график по вакансиям.
>>1606989>сколько вкатывальщиков спрашивали про syntax errorПойми, го не берут первым языком. На нем отдыхают, повидав некоторое дерьмо. Естественно такие люди умеют читать офиццциальные доки, а не спрашивать на каждый пук.Клавиша "ц" иногда тупит, механическая клавиатура наверное током замыкает.
>>1606994> го не берут первым языком. На нем отдыхают, повидав некоторое дерьмоАга. Макакам надоело ебаться с js на фронте, потом они немного потыкали ноду и наконец решили взять что-то адекватное. Не вышло, ничего лучше goвнища не осилили.
>>1606994SO некий показатель интереса к языку. Это не про то что кто-то в доку умеет, это про общий тренд. Все эти языки там в 1% популярности витают, в статистической погрешности, это единственный наиболее точно-чувствительный вариант статистики.И да, я тоже пишу код через гугл, типа "golang split string", я ебал в рот в говнодоках копашиться, среди 100500 полу одинаковых названий, мне надо прям тут и сейчас увидеть slit от строки в этом языке.Это удобно.
>>1604948Школомнение. Ни одного попадания. Мне хоть половина из этих языков не нравится, но твои ярлыки не в тему.
Заметили, что только в го и шарф тредах в шапке пишут, что это лучший величайший язык, а то не дай бог другое подумают. К чему бы это?
>>1607488С какого перепуга машкод динамический? Как ты представляешь неопределенный размер ячейки памяти (да да, изначально типы это размер выделенной памяти)??В любом случаеш машкод уже никуда не транслируется.
Go - определенно лучшее, что высрала индустрия за последние десяток лет.Он сделал кодинг очевидным опять.Для того что бы сложить два и два, достаточно написать 2+2.И тебе не нужны монады, лямбды, иерархии классов и интерфейсов, ты берешь и складывает два числа. Непередаваемые ощущения.Сишечка, но с человеческим лицом и красивой конкурентностью.
>>1607532> высралаЭтим всё сказано.> И тебе не нужны монады, лямбды, иерархии классов и интерфейсовОни и так не нужны. То же наследование нужно очень редко.
>>1604303Goчуханам надо напоминать их место у параши. Я это буду постить каждые две недели, чтобы вы не забывали какие вы обоссанцы и что вы пишете на игрушечном языке.
>>1607547Наверняка ты из js или python? (один язык написали на коленке за неделю, другой писали для обучение вообще)Ты тот же говножуй. Единственный божественный язык это котлин и шарфик.
>>1607557Да, норм. Реально получаю удовольствие с языка.Ощущение как-будто пишешь на каком-то питоне. Попробуй.
>>1606771Не спасёт, основная проблема жвм - это легаси либы, которые жирное говно. И кваркус ожидаемо будети их использовать на реальнмо проекте.Сюда же можно добавить очень долгий прогрев, относительно других ВМ (V8, например).Просто выкини уже жабу, хватит труп насиловать.
>>1607598>ktor, я начинал на javalin. Сейчас смотрю на vertx.Но это по сравнению со спрингом хеллоуворлды для бенчмарков.Вот бы спринг выпустили реактивную асинхронную супер мега версию полностью на свежем котлине, тогда было бы хорошо.
>>1607605Спринг обречён, это зловонная жирная куча абстракций, говнище by design.Кста, откуда в тредике по няшной гошке столько жава-говноедов? ЧСВ требует выхлопа и хотите самотвердится в других сообществах? Никто в серьёз ваши высеры рассматривать не будет.
>>1607605>Вот бы спринг выпустили реактивную асинхронную супер мега версию полностью на свежем котлине, тогда было бы хорошо.webflux, micronaut, quarkus... сотни ихСейчас многие пишут сразу под kotlin/java, потому что это практично.
>>1607620Модульность дает большее число абстракций, это плата за гибкость. Открой любой full фреймворк и ты похудеешь от количества кода и абстракций.но да, спринг мне тоже не нравится
>>1607657И потом из-за борьбы с модульностью в результате получаются методы на 500 строк. Зато не размазано, да.
В всех языков туманное будущее. Один только жс не испытывает проблем на данный момент, все будут его все равно жрать и никуда не денутся.
>>1606893>SQL собираюсь учить после GO.Тебе для начала нужен только очень базовый SQL: CRUD + какие-то очень простые запросы. Их нагуглить будет проще, чем разобраться с каким-нибуть ORM.
>>1607703Не хочу рассказывать какой ты долбаеб, просто опишу эволюцию кода.1) 500 строчная функция это несопровождаемая лапша.2) 10-20 - чистых функций из тех 500 строчек по методу единой ответственности - это уже модульный код.3) 5-10 - классов сгруппированных по принципу SOLID из тех же функций - дальнейшее развитие модульности.Эволюция гофер, эволюция...
>>1607633Модульность никак не связанна, с конретным подходом, в случае спрингоподобных - лютое обмазывание DI-парашей с кучей магии.Можно запилить отличную модульность и на мнималисчтом коде, следуя KISS и изебгая тяжеловесных абстракций. Это вопрос проектирования, проблема в том, что адепты жвм в него обычно не умеют от слова совсем, только шаблонные паттерны, подражание, карго-культы и прочая копировальная работа уровня макаки. Само распространение javaEE, а затем спринга является пруфом этого.Прикинь, что бьыло бы, если бы паттереналистким жаба-макакам дать пилить систему вроня кубера? Это было бы тормозное говнище.
>>1607777Хз какое ты говно там написал, я даже не понял.SOLID это нормальное решение для большой архитектуры. Понятно что в твоем говноскрипте можно функцию 1000 строк напиздрячить, которая делает с десяток вещей одновременно и никто не пострадает (кроме тебя, но ты, возможно, даже не поймешь). Но ты же хочешь развиваться как инженер, а не быть мастером лепки фигурок из говна?
>>1607761Если ты возьмёш тяжеловесный фреймворк или иное нагромождение абстракицй, у тебя будет несопровождаемая лапша и "модулей" и километрвоые стектрейсы, ты просто вышел на новый уровень говнокода. Поэтому укатывай обратно свой навозный толстенький ООП-шарик.Го и есть острие эволюции. Как бы это трудно не было признать. Твои бекенды на го, они живут в докере, оркестрируются кубером, коррдинируюся мешами типа консула и истио. Твой ооп + SOLID на деле, это рестухо-ссанины с лесенками аннотаций и куча легаси говна в большинстве случаев.
>>1607795Это и есть развитие как инженер. Проработка архитектуры и выбор соотвесвующей для опередёлнной задачи. Самое сложное - это сделать максимально просто.Ты как раз привел лепку из говна, слепую веру в какие-то универсальные(их нет маня, нет) принципы, которые ты подсмотрел где-то.
>>1607796Смотри, ты написал охуенный веб сервер. Я беру, поверх твоего сервера добавляю веб фреймворк (роутинг там и всякое такое). Третий васян берет и обрачивает мой фреймворк для своего сайта или бизнес продукта на REST.Никто из нас не лезет в кишки приложения друг друга. Прикинь такую ситуацию что взяв готовый фреймворк, тебе вдруг неожиданно нужно (прям нужно, а не есть такая возможность) разбираться с чанками post запроса?Ты пишешь гет запрос все норм, а с post запросами каждый раз тебе надо парсить в цикле чанки, контролить сокет и все такое.Еботень, да?Нормально когда поверх продукта, даже класса, можно положить слой абстракции.Ты же когда настраиваешь приемник, ты же не перепаеваешь резистор? Ты просто крутишь настройку, тебе срать как там под капотом работает.К примеру приемник поял ты, а я написал его интерфейс с ручками и экраном.Абстракция это нормально.
>>1607804>Самое сложное - это сделать максимально просто.Точно, лучше инженерное решение - это просто решение. Сейчас инженеры очень тупые, они думают, что чем сложнее решение, тем круче их скилл. Но это же полное дерьмо. Скилл в том, чтобы сложное сделать простым, а не наоборот.Может знаешь похожие цитаты узнаваемых людей? Ну чтобы тыкать носом в эту простую истину. Просто я когда сам формулирую это высказывание, его не воспринимают всерьез. Ну это может и правильно, я же не авторитетная личность.
>>1607795>Хз какое ты говно там написал, я даже не понял.Правильно, и не поймешь. Не дорос еще. Если что это не я писал >>1607777 я просто прочел и немного вник в вашу дискуссию. Тебе чувак правильно написал, у теба каша и в голове и в коде. Шаблонные фразы. Повторение на уровне макак.Чтобы решать такие задачи, нужно иметь подходящее мышление. У тебя пока его не наблюдается. Прокачивай, главное правильно. Почитай Алана Кея или что-то похожее. Улови принципы минимализма. Почитай японских инженеров. Они делают все очень компактно, без раздувания.
ООП - ненужное распиаренное говно.И даже свидетели этой секты один хер пишут процедурщину, которую просто немного косметически замаскировали под обьекты.Вот как должно выглядеть объектное программирвоаниеnames = new Sorted( new Unique( new Capitalized( new Replaced( new FileNames( new Directory( "/var/users/*.xml" ) ), "([^.]+)\\.xml", "$1" ) ) ));Это говно!
>>1607980ИЧСХ эта задача в функциональном стиле - выглядит на много хужеИспользуйте внешние сервисы для постинга кода блджад
>>1608179Нет, они няшки. А джависты все напыщенные и много денег требуют за свою тормозящую гиперджангу.
>>1608163Спасибо)Видимо из-за этого, работодатели думают, что существует дефицит гошников и платят любые деньги, что урвать хотя бы пару.
>>1608334на жабе уже никто в здравом уме новые проекты не начинает, только легаси, но жабьи навыки никуда не пропадут благодаря kotlinмне был бы интересен kotlin native, если бы для него были библиотеки, а для использования жабьих либ требуется жирный жаборантайм, поэтому предпочитаю go
>>1608367Котлин для меня сейчас заменил питон. Даже мелкие парсеры пишу на котлине. Конечно, немного избыточно собирать градлем в толстый джарник, но зато переносимо как тот же экзешник в го. Ну и мне нравится что пишу на том что знаю хорошо. Возможно заиспользую позже сам котлин-скрипт, но пока времени нет погрузиться в это.Раньше бы джаву для этих целей и не взял бы, дрочился бы через stackoverflow с питоном, или даже node.js.Да, я долбаеб, что в свое время не взял на вооружение хотя бы тот же груви, не говоря о скалеНасчет нейтива не знаю, но по-любому там есть интероп с сишными либами. Не думаю что кто-то там реально думал начать с нуля писать си-подобные либы для котлина. У разрабов замашки огромные, но они же не долбаебы.Для меня котлин сейчас видиться как язык общего назначения, прям реально общего. Хотя я не планирую писать на нем сейчас для js или какую-то ардуину дергать через нейтив, но как потенциал что такое возможно, это вдохновляет.
Почему в треде го 90% времени обсуждают говноязыки?Джавы-хуявы, котлины-хуетлины, расты-хуясты...Есть тренд, что го стал братским языком для говно-пыхи и питончика.По вакансиям, очень часто требуют эти пары.Го завоевал свое место в мире. Угомонитесь, вымирающий вид.
>>1608441Потому же, почему нет перл-тредов. На го работает очень мало анонов, обсуждать тупо не с кем. Поэтому обсуждаются более понятные большинству темы.
>>1608441Го треды на срачах и живут.В свое время го развивался через агрессивный маркетинг. Холивары доставляли тонну лузлов. Так отрицательно го и закрепился (спасибо маркетингу и фанбоям языка)
>>1608478Мне кажется, что работает достаточно.Но активной беседы не выйдет, потому что язык простой и чистый, спрашивать не о чем.Адовых непонятных фреймворков тоже нет.Студентов ему благо не учат, тупых вопросов нет.Закапываем тред до выхода го2.
>>1608591Один пост от нюфани, коих во всех тредах полно. А выше - срач про фреймворки и языки на несколько сотен постов.
>>1608864Я тоже так думаю.Все будут писать для квантовых компьютеров, а джависты в 2100 году будут продолжать поддерживать банковское по.Как коболисты в наше время.
>>1608917На котлине есть корутины С#, js, python... и главное там есть возможность контролить руками пулы потоков (то есть обычные системные потоки).>>1608941 →
>>1608995Язык без экосистемы - ничто, поэтому нет там нихера корутин, маня. Давай найди корутины в jdbc драйвере любой популярной БД, вместо легаси говна с блокирующим IO и жирным пулом системных потоков.
>>1609157Ну вот тут и проиграл гошке и эрлангу. У тебя в итоге будет хуева туча системных тредов за счёт блокирующего пула бд + пул для твоей логики на корутинах. В то время как у гошки будет единый небольшой пул на всю логику приложения и меньшее потребление ресурсов.
>>1609215Конечно проиграли, когда мы выбрали в го.Сначала ты начинаешь мыслить по гоферски и на каждый чих пытаешься сделать сервис, потому что разрабы не дали тебе системных потоков (и так на каждую дробилку и i/o). А потом понимаешь что скопилось слишком много говносервисов, которые нефига ничего не делают толком.В итоге один сервис, который берет картинку, преобразует её, ложит в бд. Превращается в два сервиса, потому что число дробилка ложит потоки с бд, а потоки с бд кладут числодробилки.
>>1609268Дробилки ложили все другие горутины. Нет возможности разделить i/o запросы, бд и дробилки (жесткая обработка изображения). Приходилось 1 микросервис дробить на 3 каких-то "наносервиса".Было бы управление системными потоками, можно было дробилки в отдельный поток (пул-горутин) положить. И тогда бы они блокировали только друг друга (что нормально, просто очередь была бы)
>>1609278У тебя скажем 16 ядер.Ну и создай 2 пула по 8 горутин.Один пул под число дробилки, другой под остальное.
>>1609278Ты видимо давно не трогал го.В давней версии (лень гуглить, но давно) они научили горутины отпускать потоки, даже если ты в цикле числа молотишь.Т.е. проблемы быть не может.>>1609288И хитрые схемы не нужны.
Не смейте, суки, называть себя программистами. Вы никогда ими не были и не будете, вас никто и никогда не считал полноценными кодерами. Помните об этом.
>>1609674Котлин на джаве, джава развитая многогранная платформа. А что го? Учить с нуля язык и экосистему чтобы писать только микросервисы? Да меня спустя пару дней воротило от бойлерплейта.
>>1609716Благодаря тому, что го невероятно простой и выразительный, на нем не скоро появится легаси.Это на джава за год можно так засрать проект (так и происходит обычно), что легче выбросить и написать с нуля.А на го, даже взяв пятилетний код, легко погружается в суть.
>>1609744>го>выразительныйСерьезно?>на нем не скоро появится легасиУпотребляет "легаси" как форму деградации кода, когда это форма времени.На нем уже есть легаси, первых вариаций не вполне успешных библиотек (типа gorilla, revel). Легаси - это эволюционная проблема, которая коснется всех. Даже миграция с питона на 3 была проблемой, потому что уже написали тонну кода на 2 версии.Если на го что-то еще легко читать и легко это переписать - значит "этого" написано еще немного. А не потому что он такой невьебательский простой, что даже ты осилил его.
>>1609909Да вот что-то на жабу в последнее время все чаще смотрю. Мне кажется это отличный способ спрятаться на галере в большой компании и не отсвечивать, что я собственно и хочу.Но зачем-то после пиструна выбрал го (ну, не зачем-то, а потому что натыкаюсь на вакансии где требуется именно такая связка).>>1609904Ну значит пщ. или жабу
>>1609785Ну он охуительно выстрелил так-то. И говорить про выстреливание с пиком про кокотлин как-то вообще толсто, недоскалка для анроед формошлёпов.
>>1609891Если загнется котлин, то ты останешься со знанием джава-платформы. Если загнется го, то ты останешься ни с чем.Но котлин не загнется, это синтаксических сахар
>>1609996> questionsА хедхантер что говорит? Это только у популярных языков количество вопросов коррелирует с количеством вакансий.
>>1609961У котлина полный интероп с джавой, какой нафиг андроид?Телефонная херня это всегда хайп для ваннаби-разработчиков (тоже самое с реакт нейтив).
>>1610008Вакансии олицетворение всего говна.Одно - это дикая связка php + go, другая kotlin + android
>>1610017Такой же как с явой и котлином, когда мы типа пишем на котлине свифте, но яву обжс ты все равно должен знать!
>>1610020Нужно только знать жабью экосистему (минимум про коллекции), синтаксис жабы уже не нужно, котлин как раз про синтаксис.Свифт же (насколько я знаю), это вроде полностью другой мир, причем в первое время не самый лучший, я помню эти слезы как их принудительно на это сажали.
>>1609296>В давней версии (лень гуглить, но давно) они научили горутины отпускать потоки, даже если ты в цикле числа молотишь.Зависит от. Если у тебя горутина исполнят только for {} (безусловный пустой цикл), то она как займет системный тред, так его и не отпустит никогда. Переключение контекста возможно при блоках на всякие синхронизации, вообще любой вызов функции или явный вызов runtime.Gosched()
>>1610037У тебя неправильная инфа, экосистема у языков одна, а сами они совместимы между собой насколько это возможно, эпл даже обжс допиливала для этого. Слезы могли быть только у дидов, в той же стате so после выхода свифт занял первое место по обожанию.
>>1610056Возможно, но трагедию помню. Наверно по тому что первые версии не были такими идеальными, или что версии ломали. Не знаю, да и пофиг (надеюсь какой-нибудь котлин-нейтив или js-нейтив, или подобное, решит проблему кросс-херни)
>>1610075Ты наверное слышал о том, что эпл не оставляет совместимости между версиями языка, и любителям помесить легаси приходится постоянно его рефакторить.
>>1610087>между версиями всегоТак правильнее лул, но это не такой депрекейтед, который гугл выдает, просто выкидывая фукционал
>>1610087В бизнес мире не переписывают софт по каждому чиху, это дорогое удовольствие. Тут это работает лишь потому, что мобильные приложения в 95% случаев это просто примитивный CRUD.
>>1610106Никто не запрещает сидеть на старых версия, как это любят в энтерпрайзе. А для тех кто не хочет из коробки есть тулза миграции, которая зачастую сама все исправит.
>>1610133Уже представляю для тырпрайзаУ тебя 100мбайт чистого кода и какая-то тулза, которая потрошит твой код. Лол, тут с 6 джавы ели до 8 перекатились, а тут бред этот. Ваннаби язык для ваннаби разработчиков.Нет развития в экосистемы языка, если постоянно ломают что-то, это говно проходили много раз, просто свежее поколение хипстеров еще не в курсе этой проблемы.
>>1610041Проверь сам на свежей версии.Было в релиз нотс, что цикл будет occasionally отпускать поток.Как я понял, они при компиляции в конце каждого цикла вставляют автоматом что-то вроде if rand() > 0.7{ goshed() }
>>1610009и что на твоём котлине написано, умник?неси сюда хоть один проект уровня Kunernetes или CockroachDB. В том то и дело, что на котле только мобильная хуйня типа anko или либки для рестошлёпов а-ля ktor.
>>1610220>Kunernetes Лол, гофер пытается помериться письками за счет чужих заслуг, но не может в правильное название.Все что написано на жабе, написано и на котлин. Никто велосипедить без киллер фичи не будет.Это тупое мерило для школьников (впрочем, для гофером норм).Одно дело написать очередную оркестровку, другое дело потом сопровождать там код среди тонны бойлерплейта и interface{}
>>1610220У меня на работе приложение на котлине, которое по сложности как твои 5 kubernetes, как мне помериться с тобой письками?
>>1609729>А что го? Учить с нуля язык и экосистемудля тех, кто уже программировал на каком-нибудь другом языке, затраты времени на изучение go минимальны, особенно для сишников>чтобы писать только микросервисы? пишут всё https://github.com/avelino/awesome-goа то, что большинство российских работодателей не умеют зарабатывать на go за пределами микросервисов, так это другой вопрос
>>1610415>затраты времени на изучение go минимальны,Уже выучил как форматировать время через дату или работу "своих" регулярных выражений в го?Изучение экосистемы языка занимает 99% времени от изучения синтаксиса. Нельзя просто взять и осилить либы го, там все через жопу и по другому.
>>1610433>или работу "своих" регулярных выражений в го?А в чем тут проблема? Я написал парочку, не заметил особо разницы
>>1609891Если у тебя нет несколько лет опыта программирования на других языках, то на Go в РФ ты сейчас наёмным работником не устроишься, ибо для начинающих с Go вакансий нет.
>>1609891>>1610468А Kotlin без предварительного изучения жабы сейчас бесполезен, так как паразитирует на жабьих библиотеках, которые нужно знать.
>>1610485В общем случае - шарф или жаба.Много вакансий в любой жопе, много больших компаний, стажировок, приучают к классическому ооп.Js или пыха навсегда ломает мозги юного падавана, и он будет вынужем прозябать во тьме.
>>1610488>В общем случае - шарф или жаба. Много вакансий в любой жопеЯ живу в области с населеним ~1 млн. чел., так вот у нас ни одной вакансии на этих языках нет. Даже С++ нет. Только 1С, php/js/html/css/*sql. Ещё попадается дельфи в некоторых окологосударственных организациях и специальные языки для программирования станков. Всё. При этом требуется несколько лет опыта и платят столько, что хватает только на еду, квартплату и самую дешёвую одежду. Я удивляюсь, как студенты преддипломную практику проходят в таких условиях. А ведь в связи с импортозамещением должна возникнуть острая потребность в системном программировании, чтобы, например, слезь с микрософтовских продуктов, которые могут в любой момент перестать поддерживать.По-моему, в РФ только два города осталось, где ещё занимаются более-менее серьёзным программированием.
>>1610455>Не все умеют, но зато очень быстрые.Как раз таки очень медленные, но скорость почти гарантирована линейна от сложности. Херня какая, мне кажется просто не осилили впихнуть норм
>>1609729>чтобы писать только микросервисыНо микросервисы - это только подход к архитектуре.Никто не мешает тебе запилить один супер-пупер монолит.
>>1610599Я так понимаю, большинство гоферов так вдохновились языком, что даже никто не вспомнил недостатки асинхронного программирования. Хотя буквально чуть выше, анон описывал про дробилки, которые ему стопорили горутины.
Что-то не могу найти нормальных туториалов по кодогенерации.Накидайте, как делать это правильно.Хочу написать свой генератор из openapi в скелет приложения.
В общем, пытаюсь разобраться с тем, как правильно решить одну проблему.Парсю из json вот такие компоненты. Из этоих жсонов создаются по сути типы компонентов.То есть в runtime программа граббает эти жсоны и должна из них наделать структур с полями value1, value2 итд, а также меткой имени. Вроде бы ничего сложного, просто обмазать лишний раз всё интерфейсами, но суть в том что наверняка интерфейсы очень ебаным образом складываются в памяти (по понятным причинам, потому что неизвестно что в них въебать собираются). Возможно они лежат просто ссылками в рандомно разбросанных местах. Это очень плохо, потому что производительность программы в таком случае резко упадёт.Ну и задача в том чтобы каким-то невзъебенным образом создать возможность в рантайме создавать новые типы структур, с определёнными типами полей, потом из этих типов делать слайсы и собственно в них уже по шаблонам запихивать всякое. Но я совершенно не представляю как можно в рантайме новые структуры создавать. Был какой-то наркоманский варинат чтобы создать структуру с массивом байтов и uint маской по которой всё это дело будет расшифровываться, но это бля конечно пиздец.
>>1611566Ты рассуждаешь в одном посте посте об эффективности и накладных расходах на хранение интерфейсов и, одновременно, приносишь тухлый json c динамической структурой. Что с тобой не так?Либо парсинг json'ов редкое событие, и тогда данные из них ты упаковываешь в совсем другие структуры, либо парсинг это основная задача твоего сервиса, и тогда интерфейсы тебе уже погоду не сделают, но посмотри в сторону кодогенерации [ан]маршалеров
>>1612208Да я просто сумасшедший долбоеб. А за анмаршалы спасибо. Хотя тоже интересно насколько это тяжёлая операция
Прохожу тур. Оче годно и сжато. Дошел до интерфейсов. Вот хочу спросить, неявное определение интерфейсов не вредит кодированию? На первый взгляд кажется будто это сильно добавляет путаницы.
>>1613040Всё еще не понимаю, хорошо это или плохо. Думаю с опытом станет понятнее.>>1613047Понять бы еще до конца что это. Первый язык был петухон, заем жс. Я так понимаю это сорт оф "утиная типизация"? Читаю описание, пока эта концепция идёт туго. Собственно как было и с ООПАлсо, я правильно понимаю, что интерфейсное значение это совокупность типа и его экземпляра? Типа такая совокупность реализует какой-то неописанный (а может и описанный, но это неважно) интерфейс?
>>1613055Где-то натыкался на мнение, что то, что в голанге, не совсем верно называть утиной типизацией, и предлагали какой-то малоизвестный термин, который я не запомнил. Но по-моему разницы никакой, вполне себе утиная.
>>1613267Какое это имеет отношение?>>1613057Официально в говне структурная типизация https://en.wikipedia.org/wiki/Structural_type_system
Насколько сильно слайсы отстают по скорости от массивах в алгоритмах? Допустим, есть mergersort, написать его с помощью только массивов сложно, слайсы дают элементарное решение, в гугле реализации все тоже на слайсах, но не получается ли из-за этого более медленная реализация, что для более сложных алгоритмов может быть важно или я зря парюсь и разница совсем несущественна?
>>1613602Если тебе критична разница между слайсом и ареем я сомневаюсь, что она вообще есть - тебе явно не подходит язык с GC
>>1613602Насколько я понимаю, ни насколько, потому что слайс - это надстройка на массивом.Но если для тебя этот вопрос критичен, то в го есть встроенная тула для бенчмарков, проверь с помощью них
>>1614412>по сложности как твои 5 kubernetes>хотя бы опиши детальноГоферы тупые или просто никогда не работали? Это такое тайное знание что ли, что среднее приложение или совокупность приложений может быть достаточно сложным в бизнесе?
>>1614604>господа, кто-то пишет что-нибудь под расберри на го. не могу разобраться с одной хуйней.https://nometa.xyz/
>>1614607сорян, я задавал вопрос на стековерфлоу, но наверное тоже в топорной формулировкеhttps://ru.stackoverflow.com/questions/1080408/%D0%9A%D0%B0%D0%BA-%D0%BD%D0%B0%D0%BB%D0%B0%D0%B4%D0%B8%D1%82%D1%8C-%D0%B4%D0%B5%D1%82%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2-%D1%81-%D0%B4%D0%B0%D1%82%D1%87%D0%B8%D0%BA%D0%B0-%D0%BF%D1%80%D0%B5%D0%BF%D1%8F%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B9-fc-51-%D0%BD%D0%B0-raspberry-pi
>>1614608Я почти уверен, что все дело в том, что эти две либы используют разную нумерацию пинов.Табличку маппинга можно получить выполнив gpio readall
>>1614606Ну как сказать, сейчас долбоёб тут только ты, потому-что уходишь от ответа на простой вопрос. По скольку ты долбоёб, бьюсь об заклад систему уровня кубера ты не осилишь даже на 15%, онаа) распределённаяб) хорошо декомпозированнав) довольно легковесна и производительнаг) из вышеперечиленного следует, что нужно хорошо уметь в архитекутруд) ты макака умеешь только в хуй за своей щекой и сренькать жабой по другим тредам
>>1614637Тебя затролили, при том очень толсто. Ты словно первый день на бордах. Перечитай сообщение, на которое ты ответил - это же неприкрытый вброс, причем с первого символа - оскорбление. Зачем на такое вообще отвечать?
>>1614622да, я пробовал разные пины, юзаю встроенный pinout. Пробовал отловить срабатывание по RiseEdge, FallEdge, AnyEdge, просто по состоянию пина, но никак.
Что-то тухло с вакансиями в ДС. Берём вакансии чистого Go без "желательно знать)))" или "пишем тяжёлые сервисы на Го)))", отбрасываем помойные конторы, типа тинькова-яндекса-авито и остаётся в районе 50. Грустно, уважаемые.
>>1614637Пок-кок, только на го можно написать супеп-пупер распределенную архитектуру. А ты не осилишь даже 13%, нет 14%, нет! Ты точно не осилишь даже 15% Я сказал!>г) из вышеперечиленного следует, что нужно хорошо уметь в архитекутруСам похвалил, сам остался довольный.Ты хоть сорцы открывал? Маня?Проигрываю со школотронов, которые не могут в орфографию, но уже могут в "архитекутру"
>>1614788>в ДС>остаётся в районе 50это для тех гоферов, у которых многолетний опыт программирования на других языках, а для начинающих карьеру с go - ни одной вакансии
Как-то не по себе стало при изучении, какой-то он очень архаичный для высокоуровнего языка, ощущение, что лабы в вузе делаю.мимо ищу второй язык для бека
>>16150765 лет - мало, ибо щас возрос порог вхождения для успешного клепания очередного "языка-убийцы"
>>1615163Все у них язык молодой и успешный.Языку 10 лет.За 10 лет жаба и пхп стали топ языками.Питон смогли как минимум кто-то там полюбить.За прошедшие 10 лет, js смог стать топ языком и модульнее чем питон, с его костылем virtevnЗа 10 лет шарп смог стать топчиком и стухнуть!За 10 лет руби смог полюбиться и затухнуть.10 лет, Карл!
>>1610201>https://tip.golang.org/doc/go1.14#runtime>Goroutines are now asynchronously preemptible. As a result, loops without function calls no longer potentially deadlock the scheduler or significantly delay garbage collection. This is supported on all platforms except windows/arm, darwin/arm, js/wasm, and plan9/*.Ты про это?
>>1615225Ну так 10 лет назад пщ только появился, а остальные упомянутые языки тогда существовали уже давно, и про них многое уже было известно.
Только изучаю го, я правильно понял, что append для слайсов создает копию и если я добавлю 1000 значений в цикле, то у меня в памяти будет 1000 объектов?
>>1615545>у меня в памяти будет 1000 объектов? Смотри какая штука - 1000 объектов будет, только если ты их явно сохранишь. С другой стороны, когда ты перестаешь использовать объект - он не сразу же исчезает, а только после того, как отработает GC. Таже нужно понимать, о каких именно объектах идет речь - это не данные, которые внутри слайса, а всего лишь структура с 3-мя числами - https://golang.org/pkg/reflect/#SliceHeader
>>1615545У слайсов, емнип, есть ёмкость, и пока она не переполниться, новый не создатся. Немного похоже на сишный realloc.
>>1615545> добавлю 1000 значений в цикле, то у меня в памяти будет 1000 объектовда, копирует. что ты ожидаешь от такого кода, например?s := []int{}for i := 0; i < 30; i++ {_____s = append(s, i)}fmt.Println(s)30 30 30 30... или 1 2 3...?
>>1616067Чтобы убедиться, что нихуя не 1000 объектов, достаточно в цикле написать:fmt.Println(&s[0])И увидеть, что адрес далеко не каждый раз новый.Или открыть уже наконец документацию, блеать
>>1616183В этом вообще чудо го, имеешь две переменные одного слайса и неожиданно (как только перевалит на капасити) у тебя две те же переменных, только ссылаются уже на два разных слайса (причем первая на старую часть).Можно такое неопределенное поведение поймать (как магические ошибки в си), что и за месяц не найдешь ошибку.
>>1616145как ты мог догадаться по моему хуевому примеру, я пытался не про какую-то тысячу слайсов рассказать, а про копирование объектов внутрь слайса.
>>1616209Это не в пщ дело, а в том, что слайсы - это не то же самое, что LinkedList.>>1616213Хз, я так до конца и не понял сути твоего примера.А ещё я бухой
>>1616249Значит ошибся, был какой-то косяк когда слайс или мапу ссылкой юзаешь. А может и пофиксили, я давно не писал.
Какая-то магия, охуеть вообще. Почему не сделали какой-нибудь динамический массив с методом append, который бы не вылетал в такую хуету
>>1617127И что мешало сделать один метод append для одного встренного типа как в пистоне или других высокоуровневых языках? Выше кидали код на котлине. Как-то неочевидно все
>>1617127У гоферов на каждый говно-дизайн и очевидные проблемы есть своя статья?Помню раньше писали, как круто не иметь обработку ошибок в языке, а строки круто иметь в сыром потоке байт, чтобы в карты торо их потом переводить.
>>1617238> методТакое ощущение, будто ты думаешь, что пщ - объектно-ориентированный язык. Уверяю тебя, это не так. Он процедурный. И подходы соответствующие. Как в прошлом веке.
>>1617304https://golang.org/pkg/sort/Охуеть просто, целый модуль с функциями для сортировки массивов различных типов. Это тоже не постичь неосялиторам.
>>1617274>Вне джавамашины жизни нет?Я бы сказал, ну нафиг такую жизнь.Ну, а куда? В шарфик? В нод.жс? В раст?Дали котлин и норм.
>>1617400Если серьезно - то пройди go toor, чтобы понимать что такое метод в го и что такое интерфейс. Затем создай свой тип на основании твоих данных и определи в нем методы из sort.Interface. Для некоторых слайсов такие типы уже есть внутри sort
>>1617516Я свалил заграницу, но ещё не получил ПМЖ, такая смена работы может выйти мне боком, т.к. редко кто на джунов оформляет приглашение для визы.
>>1617581Очевидно, работай там где работаешь сейчас.Делай портфолио, свети еблом, нужная хрюшка тебя сама найдет.Не думаю что в го есть карьерный рост сравни джава девелоперу.
GOспода, есть вопрос:значит есть хендлер который получая запрос что то делает в базе данных(mysql). хендлер этот лежит в отдельном пакете. ВНИМАНИЕ ВОПРОС как из мэйна открыть БД так, чтобы хендлер пользовался этим подключением?
>>1618566Примерно так type Client struct{ Database Database}func (c Client)Handler(){c.db.DoSomething()}/////////////////////////////func main (){db := database.Open()client:= Client{Database: db}}
https://fasterthanli.me/blog/2020/i-want-off-mr-golangs-wild-ride/чувак свалил с го на раст и вам рекомендует
>>1618687Я не понял, в чем проблема?К о вообще пользуется виндой, кроме как в корпорациях для экселя и дома для игор?Если сидишь на никому не нужной оси, будь готов к тому, что ее поддержка будет хромать.И это не проблема гошечки, а любого кррссплатформенного языка - J's, python, Java.О чем этот пацаненок ноет не врублюсь?
>>1619978Зачем тогда добавлять поддержку винды? У создателей гошечки вот этот half-assed подход во всем.
>>1620115> неродилосьтолкомТем более хорошо, меньше придётся переписывать на расте. Это не питон 2 и не джава EE 6.
>>1620133Специально понапишу по-быстрому стартапов на гошке, чтобы ты до пенсии пререписывал все это на руст за дошик
>>1618566https://en.wikipedia.org/wiki/Dependency_injectionhttps://blog.drewolson.org/dependency-injection-in-gohttps://medium.com/@hippik80/go-%D1%81omparing-dependency-injection-approaches-23cb9772a016
Добрый день. Обьясните, пожалуйста, на пальцах что такое указатели и зачем они нужны для человека, у которого Go - первый язык со статической типизацией.
>>1621656Тот случай когда еще помнишь указатели в си и прямое управление памятью и решил засунуть это в свой язык без управления памяти, потому что это было модно и молодежно в семидесятых.На самом деле есть концепция ссылок и value-типов (данных на стеке, а не в хипе), и вот указатели как раз реализуют эту концепцию, только не самым удобным способом.
>>1622564Для всех объектов, даже примитивных (например как в питоне или котлине), использовать только ссылочную систему.Указатели нужны там, где есть прямое управление памятью, в го нет прямого управления памятью и арифметики, поэтому указатели просто превращаются в головную боль. А автоматическое разыменование стуктур, только скрывает реальную проблему. Отсюда, мы легко получаем неопределенное поведение со слайсами, когда заводят вторую переменную для одного слайса. По началу все хорошо, а потом вуаля, магия, один слайс стал другим. И найди потом ошибку, почему по определенной фазе луны программа ведет себя не так.Как это работает в нормальных языках (котлин, питон, джава, js, частично с++, частично шарп...)https://pl.kotl.in/FS-JzWbAb
>>1622584> неопределённое проведениеА это тоже UB, да? Ptr может "внезапно" изменится. А может и нет. Магия какая-то.ptr = realloc(ptr, new_size);
>>1622584А почему для примитивных типов поведение не такое же, как для структур?Как переписать этот код, чтобы было 2 разных объекта, причем, чтобы функция тоже не меняла obj2 ?https://pl.kotl.in/wkYUuERDh
>>1622584>неопределенное поведение со слайсамиты там всё еще упорно передаешь слайсы по значению? аватар необучаемости
>>1622672>А почему для примитивных типов поведение не такое же, как для структур?Переменная это адрес в памяти. Добавляя новое число, ты перезаписываешь старый адрес.
>>1622687>упорно передаешь слайсы по значению?Все так делают, просто обычно перезаписывают одну и туже переменную. А потом решаются на общие данные.В этом и беда слайся, ты должен знать как он устроен. Это лютый обосрамс. Это может сейчас гоферов где-то дрессируют на правильную работу слайся, а в наши годы это было весело.
>>1622977 →Для начала поставь голенг отсюда https://golang.org/dl/ если еще не сделал, после чего добавь папку в path https://helpdeskgeek.com/windows-10/add-windows-path-environment-variable/
Я даже близко не программист, только пытаюсь.Сегодня узнал о существовании этого языка.Приехал домой, все установил.При запуске пишет такую залупу.Помогите тупому плз.
>>1622724Да, хочу такой результат, но чтобы объект создавался не новый, а на основе другого.То есть, хочу две переменные, которым соответствует одинаковый объект, но разные ссылки в памяти
>>1623180Создавать надо через конструктор (в котлине он не явный, в джаве все пишут руками).Peson("Катя", 20) // это и есть создание объекта. Даже вроде чем-то похоже на го.
>>1623279https://stackoverflow.com/questions/49053432/how-to-clone-object-in-kotlinРешение на 15+:Переведите объект в json, а потом назад, так и получите copyИ эти люди будут гошников жизни учить?
>>1623185В b запишется новый адрес объекта "6". У "a" останется старый адрес. Переменная это контейнер с адресом, значение где-то всегда в хипе (если ссылок/переменных не останется, она уберется сборщиком мусора)Вот играйся, вникай.https://pl.kotl.in/WG0R-d1Ux
>>1623290А ну разбежались, суслики, вишь тут устроили.https://pl.kotl.in/Jn2ytxA2Q>>1623295Объект может быть ппц сложным (например хранить открытый файл или коннект куда-то), в этом случае простым копипастом не получиться, даже если разработчик очень сильно старался.Поэтому единственный способ - самому написать метод копирования. Но чаще проще сделать сериализацию и дсериализацию
>>1623290> Переведите объект в json, а потом назад, так и получите copyя так делал штобы мапу интерфейсов в структ перевести.
>>1624593Здесь норм расписано: https://doc.rust-lang.org/book/Это называется тегами, гугли golang struct tags
>>1624967Там много чего питонячьего естьнапример kwargs foo(23, sep=23)Вместо блядских __hui__ декларация operator.Оператор in
Анон, у меня вопрос скорее не по го, а по ООП, которое я так и не осилил за свою карьеру.Нахуя функции принимать интерфейс, вместо конкретной структуры, если я точно знаю, что будет только одна реализация? Типа скрытие внутренних полей или что? Это какая-то хуета уровня бамбурум-липецк принцип?И почему я часто вижу такие конструкции: https://play.golang.org/p/kI24rFlGL1g var _ Shitter = &Faggot{}Ведь, если я буду передавать структуру Faggot, в функцию которая принимает интерфейс Shitter, если в Faggot не рализованы эти 2 метода, код не скомпилится, зачем эта дополнительная штука нужна?
>>1625062Ты заранее не знаешь как будет развиваться приложение. Возможно у тебя таки появиться другая реализация. Если прямо уверен - это ок, используй тип напрямую, твой код от этого выйграет в производительности (хотя скорее всего ты этого не почувствуешь)Но даже если тебе насрать на полиморфизм (зачастую он и не нужен и приводит к оверинженерингу) то вот тебе еще аргументы:1) Я пишу много юнит-тестов, а в них тестируется очень маленький кусок кода, а все остальное - нужно изолировать, и самый простой способ это сделать - создать фейковые реализации для всего, что не участвует в данном тесте.2) Если хуевая архитектура не DDD - ты столкнешься с циклическими имортами. В го такой код просто не скомпилиться а в ноде он будет работать до тех пор пока не начнешь использовать всякие эксперементальные фитчи вроде декораторов, я с этим столкнулся и очень долго отлаживал Зачастую при помощи интерфесов можно решить эту проблему.3) Проще читать код - при помощи интерфейса ты на уровне сигнатуры функции можешь указать, какие методы типа, который туда передашь, будут вызваны в этой функции. Когда ты изначально пишешь код - это может казаться неважным, но в больших проектах - это очень сильно облегчает жизнь. В определенный момент Faggot может начать делать целую кучу всего, иметь пол сотни методов, и тебе прийдеться читать весь код функции, чтобы понимать что именно в данном методе делают с Faggot'ом. А в случае с интерфейсом - ты сразу понимаешь, что функция вызывает только MakeShit и EatShit не прочитав ни строчки реализации. Но это в идеальном мире, где все разработчики следуют принципам SOLID Но важно понимать, что OOP, SOLID, паттерны и прочие идеи нужно применять только там, где они упростят жизнь, а не наоборот.
Анонсы, простой вопрос.Есть две функции, в первой идёт запись файла file.writestring(...), вторая считает значения в цикле, как сделать так, что бы вторая отдавала что-то вроде file.writestring(число)в первую, где он собственно и объявлен. Return отдает последнее значение, нужно каждое.
>>1625479Два варианта:1) Собрать в функции два всё, что надо записать в файл и передать результат2) Использовать каналы
Голингвисты, есть вопрос.Работала у меня гоурутинка, чтоб ее остановить, использовал chan struct{} в который отправлял struct{}{}, все было четко. Потребовалась запустить еще одну гоурутину с возможностью ее останавливать. Я взял и стал использовать тот же канал, чтоб ее остановить, но предсказуемо соснул хуйца, тк сигнал завершения получала только одна горутина.Сейчас есть 3 стула -1) Добавить второй канал для второй гоурутины2) Отправлять в единственный канал 2 сообщения3) Просто закрыть каналНа какой лучше садиться, чтоб все по понятиям? Я пока выбрал 3, но есть сомнения
>>1627120Зависит от ситуации, но если речь идет о graceful shutdown, то 3-й вариант - лучший из того, что ты назвал. Я бы рекомендовал вообще использовать обертку, context
>>1627197Ага спс. К context я уже присматривался, но тогда решил не усложнять. А сейчас наверное пора уже внедрять, чтоб поменьше переделывать в дальнейшем.
>>1627272В котлине продвинутые генерики, даже более продвинутые, чем в жабе, а как известно, генерики зло и нинужны.
>>1627487>>1627795Просто я писал где-то с неделю немного кода, я ни разу к жабе напрямую не прикасался. Вот все это API и SDK, оно прям ощущается как котлиновоское.Думал будет как с typescript, типа все равно надо знать javascript для полноты картины, но оказалось особо не надо.
>>1605658Шарписты не приходили, потому что таким принято хвастаться только в языках с комплексом неполноценности
>>1628130Давно минули времена когда микрокодом реализовывалась каждая инструкция, на сегодняшний день овердохуя инструкций выполняются напрямую схемотехникой в кристалле, безо всяких микрокодов.
>>1628428Мне кажется, что цифры не совсем верные. Уверен, что фрилансеры поотмечали, что они рабоют в компании с размером 1.Ну и забавно, что 3% не указавших, где они работают, они отнесли к стартапам.
Че как там, стоит вкатываться? Посидел посмотрел либы для роутинг. Ну и хуета, вот прям воняет энтерпрайзом. Но я хз, может неудачный вариант выбрал.
>>1628634Бля, хотел язык другой изучать. Питон заебал уже. Перл никого не интересует, а мне очень нравится. Джава/котлин/кложура - сразу нахуй. Пойти на раст что-ли посмотреть.
>>1628627>Че как там, стоит вкатываться?Если первый язык - нет, по тому что работы не много, а для трени - вообще нет.Если что-то умеешь - можно найти работу, но на какой-нибуть ноде ее раз в 5 больше.Если для себя - попробовать однозначно стоит, язык простой в изучении, и на нем довольно приятно делать нетривиальные вещи. Для простых крудов - наверное проще DRF продолжать использовать.
>>1628636А с какой целью? Изучать ради изучения? Тогда раст да, отличный вариант. Но на нем работы нет, а та что есть - требует бекграунд на сях 5+ лет. Или можно всякую функциональщину потрогать, но это, опять же, больше для борщехлебов
>>1628638Думаю перекатиться. Годик поучить, полепить пет проекты типа галереи, с авторизацией, добавлением и т.д чтоб ходить дрочить в туалет с полным паком видюшек/пикч.>>1628639Я не против перекатиться на системное программирование. Но раст тоже может в веб, хотя это и не основная его задача.>>1628643Изучать ради переката в новую область.
>>1628702Я тоже из питона пришел, в целом доволен. Единственное, что особо ты в новую область (если речь идет о предметной области а не географической) не сможешь особо сменить, у питона всяко больше батареек на все случаи жизни, а у пщ нет даже веб-фреймворка, который бы считался стандартом разработки. Хотя go-kit пытаеться им быть, но нет
Написал на джанге свой сайт для чтения манги. Теперь хочу написать тоже самое на Го. Отговорите, либо же дайте советов, как не обосраться и выгореть.
>>1629364Зачем нужны дженерики, когда младший сотрудник может генерировать функции сам?calcukateIntcalcukateStringcalcukateStruct
Отговорите от перехода с Go на Rust. Реклама-то везде клёвая, но кто из вас реально писал более-менее объёмные проекты на обоих языках, какие у раста недостатки? Кроме синтаксиса и количества вакансий.
>>1630137Мало вакансий <=> мало проверенных временем технологий, маленькое коммунити, меньше инфы гуглится.
>>1630137По идее там комьюнити (а следовательно и попенсорса) меньше. Все же нужно выбирать язык под задачу, а не выбрать язык по каким-то признакам и натягивать его на свой юзкейс
>>1630137Перешел с пхп и node.js на го, полностью переломил свое сознание и смерился с дизайном го, но хватило меня на 3-4 месяца. Устал от бойлерплейта и даже пришло какое-то осознание что меня наебали.Почти не зная жабку (зная только ООП), накатил котлин и просто влюбился. Да, есть шероховатости, но пишу код на нем, как на каком-то питоне (удобно, просто, лямбды вообще сказка).Не знаю зачем тебе раст, не было бы котлине, я бы соскачил на питоне лучше, радость писать приложение на низком уровне - сомнительная радость.
>>1632706>Python обогнал жабу и жабийскриптОхуенно же, возможно свичнусь назад из ноды в питонЕсли переживу эпидемию
>>1632869Когда полностью пересядите с иглы JVM одобрения на лицо LLVM, тогда и приходите. К тому же работы на котлин-бекенде все равно меньше чем на Go
>>1632985Работают программистами - только неудачники. Программирование это для души и творчества, а не для писанины одного и того же кода 30 лет подряд. ну или хотя бы для своего стартапа
>>1633005Слинял с кодинга в 28. Пишу код для своих проектов по настроению.Программист после 30, это как стриптезерша после 40.
>>1634099Открой хедхантер, повбивай запросы типа "go python", "go php", "go java", посмотри вакансии и реши, что больше нравится.
>>1634572>"go python", "go php", "go java"Иди в питон, иди в пхп, иди в джава.В целом, хороший совет.
НОВЫЙ КОНТЕЙНЕРhttps://2ch.hk/pr/res/1635774.htmlhttps://2ch.hk/pr/res/1635774.htmlhttps://2ch.hk/pr/res/1635774.htmlубрал ебучие запятые, прилипшие к ссылками