GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.
Живем в ожидании Go2, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков
>>1603162 дольше в пару раз, статический язык, для каждой структуры, например, нужно реализовывать сортировку руками и парсить json в полуручном режиме.
>>1603323 Ты про перегрузку аргументов функции как в жаве? В жсе мне такое не нужно было, так что сложно сказать. Насколько заебно писать без такой фичи?
>>1603326 > В жсе В динамически типизированных языках нет такой проблемы. Ты пишешь одну функцию и можешь передавать что угодно. Здесь же в худшем лучшем случае есть interface{}
>>1603326 >Насколько заебно писать без такой фичи? Это мастхев для статического языка, иначе твое API будет говном, с префиксами или постфиксами и мы видим что так оно и есть
>>1603329 >>1603330 Зато так проще? Может вы не видите ценности в таком трейдофе. Но потом вряд ли запутаетесь в своих функциях. Пайк заботится о тебе, анончик.
За всё время существования Go находили ли в его официальных компиляторах зонды? Гугл был бы не гуглом, если не встроил зонд в своё детище. А если не нашли, то в чём подвох? Кстати, с патентами всё нормально? Гугл сможет, как создатели жабы, подавать в суд за использование стандартных конструкций языка?
>>1604214 > официальных компиляторах Будто есть другие.
> в чём подвох Там кто-то из гугла говорил про то, что go такой простой в изучении специально, чтобы как можно больше хомячков его выучило и работало за бесценок.
> Гугл сможет, как создатели жабы, подавать в суд за использование стандартных конструкций языка? Толсто.
>>1604228 Может же быть так, что компилятор собран с одного кода, а на гитхабе другой код. Мало же народу будут собирать из исходников, все скачают сдк.
>>1604242 Один из вариантов, но опять же есть шанс попасться. Ну и в целом надо понимать, что логика по сливу чего-то интересного гуглу, да еще предварительно это найти на рандомном серваке, а еще это все в докере или клаудной VM, а там еще рулы на фаерволе...
ещё понаделали форков go под названием vlang, odin-lang и т.д.
https://roem.ru/10-10-2016/231632/oracle-vs-google/ "Причиной судебных споров между Google и Oracle стал язык программирования Java, разработанный в 1991 году компанией Sun Microsystems. [...] В мае 2014 года было опубликовано решение апелляционной инстанции, которая пришла к противоположному выводу, что «общая структура API», а также «структура, последовательность и организация программного кода» могут быть предметом авторского права, и Google, соответственно, частично нарушила права Oracle. "
>>1604303 И вообще, у меня складывается впечатление, что как есть аноны, сидящие в рид-онли, так есть и такие, кто сидит в write-only, то есть не читают треды перед тем, как что-то запостить.
>>1604303 Помню несколько лет назад гоферы бегали и срали статьи, как они перешли с успешно с очередного "x" языка на го. А теперь им кидают эти истории успеха, но уже с го. Больно? Да?
>>1604352 Тебе не больно что жаба больше не нужна? Ну есть котлин, кто в шарпе, кто даже в го. А на жабе одно легаси только. Даже в моей говноконторе еще в 2019 выкинули последние строки на жабе.
>>1604363 >Хедхантер лучше знает, нужна она или нет. Это капитал кода из легаси, нашел чему радоваться, словишь код, который достался из текучки кадров.
>Только для микросервисов и годится. Бизнес всерьёз его не воспринимает. Однажды на ковер пришли гоферы и сказали, мы сделаем то что делают жабисты, на коленке. И меньше чем за месяц написали на микросервисах то что спринганутые писали годами. Сейчас в конторе жаба считается моветоном, синонимом генератора плохосопровождаемого (читаемого) кода. Хотя для меня го хуже чем жаба, но практика показала, что го для бизнеса более привлекателен.
>Активно пишутся новые проекты для тырпрайза. На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет.
>>1604382 > Это капитал кода из легаси, нашел чему радоваться, словишь код, который достался из текучки кадров. Будто на других работах люди каждый день выкидывают старые проекты и пишут новые с нуля. Легаси есть абсолютно везде, это норма.
> Однажды на ковер пришли гоферы и сказали, мы сделаем то что делают жабисты, на коленке. И меньше чем за месяц написали на микросервисах то что спринганутые писали годами. Сейчас в конторе жаба считается моветоном, синонимом генератора плохосопровождаемого (читаемого) кода. Если это станет не единичным случаем, а общим трендом, я в первых рядах пойду перекатываться в другие языки. Я не цепляюсь за джаву из каких-то сентиментальных чувств, но пока что она чувствует себя хорошо.
> На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет. У нас в одном зелёном банке плюются от почти всего, кроме жабы, и все новые проекты пилят на ней.
>>1604409 Чем больше язык был в топе, тем более дремучие там легаси. Проблема легаси жабы - оно практически нечитаемо. Одно дело хеллоуворд в контроле спринга записать, другое увидеть самописный спринг.
>плюются от почти всего, кроме жабы, и все новые проекты пилят на ней. >потому что больше ничего и не умеют. Жабисты пишут на жабе, классика же. А могли бы пилить на котлине, но не осилили.
>>1604461 > Проблема легаси жабы - оно практически нечитаемо. От проекта зависит. Если его пишут люди "Мы сюда исключительно за деньгами ходим, поэтому будем костылять, говнокодить и антипаттернить, чтобы закрыть побольше тикетов", то это уже не в жабе проблема, а в головах.
> А могли бы пилить на котлине, но не осилили. > могли бы Ага. А на хаскелле могло бы быть больше всего вакансий. Вот только живём мы не в сослагательном наклонении.
>>1604382 >На жабе? Бред же. Ну может там в качестве погрешности кто-то еще и пишет, потому что больше ничего не умеет, но реально такой массы ощутимой нет. Синдром утенка из палаты мер и весов.
Блин, а вообще гошечка у кого-то может быть первым языком? Просто странно, что на нее активно накидываются джависты и иногда ржавые. Ну норм язык. Я вот пишу и на го, и 6а расте, на питоне, и на typescript. Мне норм. Три языка разного уровня, каждый под свою задачу. Гошечка мне нравится больше. Писать легко и приятно, программки быстрые, многопоточные, простые в понимании.
>>1604363 > А ещё есть скала, груви, кложура, цейлон. Котлин скоро к ним присоединится. Не понял, это кукарек в духе "нинужна, я скозал"? Сижу на скале и котлине, получаю удовольствие от работы, и платят больше чем тебе минимум в 2 раза, а то и во все 4.
>>1604492 >больше всего вакансий Какие нахрен вакансии, мы говорим про уже работающих джавистов в банке. У вас уже как у ботов один и тот же триггеры, услышал про котлин, пишешь про вакансии, лол
>>1604492 >От проекта зависит. Можно фантазировать и философствовать до усрачке. Но реальность такая, что львиная доля легаси проектов на жабе, не читаемая жесть (как минимум на моем опыте). И люди радуются что им на +500$ больше платят, да в таком коде я бы и за 10К не сидел бы.
>>1604733 Typescript - уже не нужен, все что надо было уже накатили в самом js. Из типов нужен был автокомплит и проверка в IDE на ошибки, это все решается через jsDoc.
Джава - это кобол.
Котлин - сахар над коболом с привязкой к IDE
Scala - люди поигрались в язык.
Groovy - шикарен, но JVM уже никому не нужен.
Го - внутренний специфичный язык компании, с соответствующим запашком. Хз почему никто не написал сахар поверх него (Готлин).
Раст - язык чтобы писать бенчмарки с unsafe (очередное "поигрались" в язык).
С++ - будет всегда (Си тоже)
Haxe - интересно, но не взлетело.
Шарфик (C#) - шикарен.
Питон - годен только распарсить файл, написать простой скрипт, а дальше на нем возня такая же как на любом другом языке. До сих пор не понял как его деплоить с virtenv говном.
Зря вы так. TS - тема. Я фанат их гибкой системы типов, автовывода. Это нереальный огонь, когда переходишь с динамических языков без явных типов. Потому что с одной стороны типизирует код, а с другой стороны код получается компактнее чем в джавах шарпах.
>>1604531 >а вообще гошечка у кого-то может быть первым языком?
Нет, ибо до сих пор нет качественной литературы для полных нулей в программировании. По крайней мере русскоязычной. Хотя, если с преподом изучать, то прокатит.
Раньше джависты весь тред по лбу стукали, теперь котлинисты пришли. А еще джависты вернутся, когда у них fibers запилят. Еще шарписты только не приходили, но это потому что у них тред студентов-вкатышей, им нечего сказать.
>>1606037 Кучка программистов и маркетологов с самой популярной поисковой системы не смогли создать уникальных базворд для своего языка. Теперь как долбаеб постоянно дублируешь в поисках go и golang тоже говно с раст и языками с одной буквой
Как бы котлин не хейтели, но парни подумали даже про поиск.
>>1606147 Сишке простительно, это говно динозавров еще до интернетов была создано (и тем более до казуального инета с поисковиками). Но вот эти С#, D, R, F, V
>>1606138 Котлен хорош, но соновная платформа у него жвм, а котлин нейтив очень сырой и хз когда будет готов. Плэтому кокотлен можно смело выкидывать на помойку.
>>1606260 Минус го как раз в том, что в свое время пришлось писать то, о чем раньше даже не думал. Плюс в либах (качественных), это сотни сэкономленных часов.
>>1606314 Из языка выкинуто все, не эксепшенов, не виртуальных методов, ни поколений (где ребята из дискорда такие пики бы не увидели). Да, VM жирная (сколько там? 20-40мб?), но это пох, это дает тонну других плюшек.
>>1606312 >А чего нет - отдельный микросервис на питоне. И получается - одна нога у тебя бионический процесс, который шустро работает, а другая пиратская палка, которая еще двигается.
>>1606312 Ахахах, я в ахуе с логики goвноедов, костыли на каждый чих из-за того, что нет нужных либ - это видите ли достоинство, а либы для жабы - это недостаток и вообще легаси! Всё-таки прав был тот анон, писавший про любовь к го как индикатор некомпетентности. Это воистину так.
Это называется архитектура и разделение ответственности. Монолиты на одном языке, умеющие все, были популярны два десятка лет назад. Сейчас под задачу выбирается наиболее удобный инструмент.
>>1606337 О, мою пасту еще помнят, не зря тут срал столько тредов кстати, пишу на котлине давно
Фатальный недостаток го в том, кроме тех, которые много раз обоссали уже, это то, что нельзя организовать свои пулы потоков в которых крутятся горутины (например для базы один пул, для парсинга другой).
Здарова почаны. Начал учить пщ. Не долго думая в качестве знакомства языка решил запилить бота для тг. Вот вопрос, есть ли у Go какая-нибудь ORM'ка изучение которой в последствии пригодится для устройства на работу? SQL собираюсь учить после GO. И нет, это не первый язык который я учу
>>1606893 В джаве лучшие ORM, они самые удобныые и быстрые. На го их вообще нет, придется самому писать, как и большую часть решений. Это язык для внутренних велосипедов компании гугол.
>>1606896 >Full-Featured ORM (almost) Почему чувствуется вечно какая-то ложь в го? Как-будто какой-то подросток, который хочет быть похожим на взрослого и но у него не всегда это получается.
Что касается ORM вообще. Построить SQL запрос и потом мапить его на структуру - дело 5-20 минут. Еботни учить очередную ORM и потом бороться с отладкой этой ORM в гиганском проекте - это месяцы работы.
>>1606896 gorm хоть и популярна, но многие ее избегают, потому что внутри неявное поведение. Смысла учить какую-то orm для го нету, лучше учи вебфреймворки
>>1606989 >сколько вкатывальщиков спрашивали про syntax error Пойми, го не берут первым языком. На нем отдыхают, повидав некоторое дерьмо. Естественно такие люди умеют читать офиццциальные доки, а не спрашивать на каждый пук. Клавиша "ц" иногда тупит, механическая клавиатура наверное током замыкает.
>>1606994 > го не берут первым языком. На нем отдыхают, повидав некоторое дерьмо Ага. Макакам надоело ебаться с js на фронте, потом они немного потыкали ноду и наконец решили взять что-то адекватное. Не вышло, ничего лучше goвнища не осилили.
>>1606994 SO некий показатель интереса к языку. Это не про то что кто-то в доку умеет, это про общий тренд. Все эти языки там в 1% популярности витают, в статистической погрешности, это единственный наиболее точно-чувствительный вариант статистики.
И да, я тоже пишу код через гугл, типа "golang split string", я ебал в рот в говнодоках копашиться, среди 100500 полу одинаковых названий, мне надо прям тут и сейчас увидеть slit от строки в этом языке. Это удобно.
>>1607488 С какого перепуга машкод динамический? Как ты представляешь неопределенный размер ячейки памяти (да да, изначально типы это размер выделенной памяти)??
В любом случаеш машкод уже никуда не транслируется.
Go - определенно лучшее, что высрала индустрия за последние десяток лет. Он сделал кодинг очевидным опять. Для того что бы сложить два и два, достаточно написать 2+2. И тебе не нужны монады, лямбды, иерархии классов и интерфейсов, ты берешь и складывает два числа. Непередаваемые ощущения. Сишечка, но с человеческим лицом и красивой конкурентностью.
>>1604303 Goчуханам надо напоминать их место у параши. Я это буду постить каждые две недели, чтобы вы не забывали какие вы обоссанцы и что вы пишете на игрушечном языке.
>>1606771 Не спасёт, основная проблема жвм - это легаси либы, которые жирное говно. И кваркус ожидаемо будети их использовать на реальнмо проекте. Сюда же можно добавить очень долгий прогрев, относительно других ВМ (V8, например). Просто выкини уже жабу, хватит труп насиловать.
>>1607598 >ktor, я начинал на javalin. Сейчас смотрю на vertx. Но это по сравнению со спрингом хеллоуворлды для бенчмарков. Вот бы спринг выпустили реактивную асинхронную супер мега версию полностью на свежем котлине, тогда было бы хорошо.
>>1607605 Спринг обречён, это зловонная жирная куча абстракций, говнище by design. Кста, откуда в тредике по няшной гошке столько жава-говноедов? ЧСВ требует выхлопа и хотите самотвердится в других сообществах? Никто в серьёз ваши высеры рассматривать не будет.
>>1607620 Модульность дает большее число абстракций, это плата за гибкость. Открой любой full фреймворк и ты похудеешь от количества кода и абстракций.
>>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" ) ) ) ); Это говно!
>>1608334 на жабе уже никто в здравом уме новые проекты не начинает, только легаси, но жабьи навыки никуда не пропадут благодаря kotlin
мне был бы интересен kotlin native, если бы для него были библиотеки, а для использования жабьих либ требуется жирный жаборантайм, поэтому предпочитаю go
>>1608367 Котлин для меня сейчас заменил питон. Даже мелкие парсеры пишу на котлине. Конечно, немного избыточно собирать градлем в толстый джарник, но зато переносимо как тот же экзешник в го. Ну и мне нравится что пишу на том что знаю хорошо. Возможно заиспользую позже сам котлин-скрипт, но пока времени нет погрузиться в это.
Раньше бы джаву для этих целей и не взял бы, дрочился бы через stackoverflow с питоном, или даже node.js. Да, я долбаеб, что в свое время не взял на вооружение хотя бы тот же груви, не говоря о скале
Насчет нейтива не знаю, но по-любому там есть интероп с сишными либами. Не думаю что кто-то там реально думал начать с нуля писать си-подобные либы для котлина. У разрабов замашки огромные, но они же не долбаебы.
Для меня котлин сейчас видиться как язык общего назначения, прям реально общего. Хотя я не планирую писать на нем сейчас для js или какую-то ардуину дергать через нейтив, но как потенциал что такое возможно, это вдохновляет.
>>1608441 Потому же, почему нет перл-тредов. На го работает очень мало анонов, обсуждать тупо не с кем. Поэтому обсуждаются более понятные большинству темы.
>>1608441 Го треды на срачах и живут. В свое время го развивался через агрессивный маркетинг. Холивары доставляли тонну лузлов. Так отрицательно го и закрепился (спасибо маркетингу и фанбоям языка)
Мне кажется, что работает достаточно. Но активной беседы не выйдет, потому что язык простой и чистый, спрашивать не о чем. Адовых непонятных фреймворков тоже нет. Студентов ему благо не учат, тупых вопросов нет. Закапываем тред до выхода го2.
>>1608864 Я тоже так думаю. Все будут писать для квантовых компьютеров, а джависты в 2100 году будут продолжать поддерживать банковское по. Как коболисты в наше время.
>>1608917 На котлине есть корутины С#, js, python... и главное там есть возможность контролить руками пулы потоков (то есть обычные системные потоки). >>1608941 →
>>1608995 Язык без экосистемы - ничто, поэтому нет там нихера корутин, маня. Давай найди корутины в jdbc драйвере любой популярной БД, вместо легаси говна с блокирующим IO и жирным пулом системных потоков.
>>1609157 Ну вот тут и проиграл гошке и эрлангу. У тебя в итоге будет хуева туча системных тредов за счёт блокирующего пула бд + пул для твоей логики на корутинах. В то время как у гошки будет единый небольшой пул на всю логику приложения и меньшее потребление ресурсов.
>>1609215 Конечно проиграли, когда мы выбрали в го. Сначала ты начинаешь мыслить по гоферски и на каждый чих пытаешься сделать сервис, потому что разрабы не дали тебе системных потоков (и так на каждую дробилку и i/o). А потом понимаешь что скопилось слишком много говносервисов, которые нефига ничего не делают толком.
В итоге один сервис, который берет картинку, преобразует её, ложит в бд. Превращается в два сервиса, потому что число дробилка ложит потоки с бд, а потоки с бд кладут числодробилки.
>>1609268 Дробилки ложили все другие горутины. Нет возможности разделить i/o запросы, бд и дробилки (жесткая обработка изображения). Приходилось 1 микросервис дробить на 3 каких-то "наносервиса".
Было бы управление системными потоками, можно было дробилки в отдельный поток (пул-горутин) положить. И тогда бы они блокировали только друг друга (что нормально, просто очередь была бы)
Ты видимо давно не трогал го. В давней версии (лень гуглить, но давно) они научили горутины отпускать потоки, даже если ты в цикле числа молотишь. Т.е. проблемы быть не может.
Не смейте, суки, называть себя программистами. Вы никогда ими не были и не будете, вас никто и никогда не считал полноценными кодерами. Помните об этом.
>>1609674 Котлин на джаве, джава развитая многогранная платформа. А что го? Учить с нуля язык и экосистему чтобы писать только микросервисы? Да меня спустя пару дней воротило от бойлерплейта.
>>1609716 Благодаря тому, что го невероятно простой и выразительный, на нем не скоро появится легаси. Это на джава за год можно так засрать проект (так и происходит обычно), что легче выбросить и написать с нуля. А на го, даже взяв пятилетний код, легко погружается в суть.
>на нем не скоро появится легаси Употребляет "легаси" как форму деградации кода, когда это форма времени. На нем уже есть легаси, первых вариаций не вполне успешных библиотек (типа gorilla, revel). Легаси - это эволюционная проблема, которая коснется всех. Даже миграция с питона на 3 была проблемой, потому что уже написали тонну кода на 2 версии.
Если на го что-то еще легко читать и легко это переписать - значит "этого" написано еще немного. А не потому что он такой невьебательский простой, что даже ты осилил его.
>>1609909 Да вот что-то на жабу в последнее время все чаще смотрю. Мне кажется это отличный способ спрятаться на галере в большой компании и не отсвечивать, что я собственно и хочу. Но зачем-то после пиструна выбрал го (ну, не зачем-то, а потому что натыкаюсь на вакансии где требуется именно такая связка). >>1609904 Ну значит пщ. или жабу
>>1609785 Ну он охуительно выстрелил так-то. И говорить про выстреливание с пиком про кокотлин как-то вообще толсто, недоскалка для анроед формошлёпов.
>>1609961 У котлина полный интероп с джавой, какой нафиг андроид? Телефонная херня это всегда хайп для ваннаби-разработчиков (тоже самое с реакт нейтив).
>>1610020 Нужно только знать жабью экосистему (минимум про коллекции), синтаксис жабы уже не нужно, котлин как раз про синтаксис.
Свифт же (насколько я знаю), это вроде полностью другой мир, причем в первое время не самый лучший, я помню эти слезы как их принудительно на это сажали.
>>1609296 >В давней версии (лень гуглить, но давно) они научили горутины отпускать потоки, даже если ты в цикле числа молотишь. Зависит от. Если у тебя горутина исполнят только for {} (безусловный пустой цикл), то она как займет системный тред, так его и не отпустит никогда. Переключение контекста возможно при блоках на всякие синхронизации, вообще любой вызов функции или явный вызов runtime.Gosched()
>>1610037 У тебя неправильная инфа, экосистема у языков одна, а сами они совместимы между собой насколько это возможно, эпл даже обжс допиливала для этого. Слезы могли быть только у дидов, в той же стате so после выхода свифт занял первое место по обожанию.
>>1610056 Возможно, но трагедию помню. Наверно по тому что первые версии не были такими идеальными, или что версии ломали. Не знаю, да и пофиг (надеюсь какой-нибудь котлин-нейтив или js-нейтив, или подобное, решит проблему кросс-херни)
>>1610075 Ты наверное слышал о том, что эпл не оставляет совместимости между версиями языка, и любителям помесить легаси приходится постоянно его рефакторить.
>>1610087 В бизнес мире не переписывают софт по каждому чиху, это дорогое удовольствие. Тут это работает лишь потому, что мобильные приложения в 95% случаев это просто примитивный CRUD.
>>1610106 Никто не запрещает сидеть на старых версия, как это любят в энтерпрайзе. А для тех кто не хочет из коробки есть тулза миграции, которая зачастую сама все исправит.
>>1610133 Уже представляю для тырпрайза У тебя 100мбайт чистого кода и какая-то тулза, которая потрошит твой код. Лол, тут с 6 джавы ели до 8 перекатились, а тут бред этот. Ваннаби язык для ваннаби разработчиков.
Нет развития в экосистемы языка, если постоянно ломают что-то, это говно проходили много раз, просто свежее поколение хипстеров еще не в курсе этой проблемы.
>>1610041 Проверь сам на свежей версии. Было в релиз нотс, что цикл будет occasionally отпускать поток. Как я понял, они при компиляции в конце каждого цикла вставляют автоматом что-то вроде if rand() > 0.7{ goshed() }
>>1610009 и что на твоём котлине написано, умник? неси сюда хоть один проект уровня Kunernetes или CockroachDB. В том то и дело, что на котле только мобильная хуйня типа anko или либки для рестошлёпов а-ля ktor.
>>1610220 >Kunernetes Лол, гофер пытается помериться письками за счет чужих заслуг, но не может в правильное название.
Все что написано на жабе, написано и на котлин. Никто велосипедить без киллер фичи не будет. Это тупое мерило для школьников (впрочем, для гофером норм).
Одно дело написать очередную оркестровку, другое дело потом сопровождать там код среди тонны бойлерплейта и interface{}
>>1609729 >А что го? Учить с нуля язык и экосистему
для тех, кто уже программировал на каком-нибудь другом языке, затраты времени на изучение go минимальны, особенно для сишников
>чтобы писать только микросервисы?
пишут всё https://github.com/avelino/awesome-go а то, что большинство российских работодателей не умеют зарабатывать на go за пределами микросервисов, так это другой вопрос
>>1609891 Если у тебя нет несколько лет опыта программирования на других языках, то на Go в РФ ты сейчас наёмным работником не устроишься, ибо для начинающих с Go вакансий нет.
>>1610488 >В общем случае - шарф или жаба. Много вакансий в любой жопе
Я живу в области с населеним ~1 млн. чел., так вот у нас ни одной вакансии на этих языках нет. Даже С++ нет. Только 1С, php/js/html/css/*sql. Ещё попадается дельфи в некоторых окологосударственных организациях и специальные языки для программирования станков. Всё. При этом требуется несколько лет опыта и платят столько, что хватает только на еду, квартплату и самую дешёвую одежду. Я удивляюсь, как студенты преддипломную практику проходят в таких условиях. А ведь в связи с импортозамещением должна возникнуть острая потребность в системном программировании, чтобы, например, слезь с микрософтовских продуктов, которые могут в любой момент перестать поддерживать. По-моему, в РФ только два города осталось, где ещё занимаются более-менее серьёзным программированием.
>>1610455 >Не все умеют, но зато очень быстрые. Как раз таки очень медленные, но скорость почти гарантирована линейна от сложности. Херня какая, мне кажется просто не осилили впихнуть норм
>>1610599 Я так понимаю, большинство гоферов так вдохновились языком, что даже никто не вспомнил недостатки асинхронного программирования. Хотя буквально чуть выше, анон описывал про дробилки, которые ему стопорили горутины.
В общем, пытаюсь разобраться с тем, как правильно решить одну проблему.
Парсю из json вот такие компоненты. Из этоих жсонов создаются по сути типы компонентов. То есть в runtime программа граббает эти жсоны и должна из них наделать структур с полями value1, value2 итд, а также меткой имени. Вроде бы ничего сложного, просто обмазать лишний раз всё интерфейсами, но суть в том что наверняка интерфейсы очень ебаным образом складываются в памяти (по понятным причинам, потому что неизвестно что в них въебать собираются). Возможно они лежат просто ссылками в рандомно разбросанных местах. Это очень плохо, потому что производительность программы в таком случае резко упадёт.
Ну и задача в том чтобы каким-то невзъебенным образом создать возможность в рантайме создавать новые типы структур, с определёнными типами полей, потом из этих типов делать слайсы и собственно в них уже по шаблонам запихивать всякое. Но я совершенно не представляю как можно в рантайме новые структуры создавать. Был какой-то наркоманский варинат чтобы создать структуру с массивом байтов и uint маской по которой всё это дело будет расшифровываться, но это бля конечно пиздец.
>>1611566 Ты рассуждаешь в одном посте посте об эффективности и накладных расходах на хранение интерфейсов и, одновременно, приносишь тухлый json c динамической структурой. Что с тобой не так? Либо парсинг json'ов редкое событие, и тогда данные из них ты упаковываешь в совсем другие структуры, либо парсинг это основная задача твоего сервиса, и тогда интерфейсы тебе уже погоду не сделают, но посмотри в сторону кодогенерации [ан]маршалеров
Прохожу тур. Оче годно и сжато. Дошел до интерфейсов. Вот хочу спросить, неявное определение интерфейсов не вредит кодированию? На первый взгляд кажется будто это сильно добавляет путаницы.
>>1613040 Всё еще не понимаю, хорошо это или плохо. Думаю с опытом станет понятнее. >>1613047 Понять бы еще до конца что это. Первый язык был петухон, заем жс. Я так понимаю это сорт оф "утиная типизация"? Читаю описание, пока эта концепция идёт туго. Собственно как было и с ООП
Алсо, я правильно понимаю, что интерфейсное значение это совокупность типа и его экземпляра? Типа такая совокупность реализует какой-то неописанный (а может и описанный, но это неважно) интерфейс?
>>1613055 Где-то натыкался на мнение, что то, что в голанге, не совсем верно называть утиной типизацией, и предлагали какой-то малоизвестный термин, который я не запомнил. Но по-моему разницы никакой, вполне себе утиная.
Насколько сильно слайсы отстают по скорости от массивах в алгоритмах? Допустим, есть mergersort, написать его с помощью только массивов сложно, слайсы дают элементарное решение, в гугле реализации все тоже на слайсах, но не получается ли из-за этого более медленная реализация, что для более сложных алгоритмов может быть важно или я зря парюсь и разница совсем несущественна?
>>1614412 >по сложности как твои 5 kubernetes >хотя бы опиши детально Гоферы тупые или просто никогда не работали? Это такое тайное знание что ли, что среднее приложение или совокупность приложений может быть достаточно сложным в бизнесе?
>>1614608 Я почти уверен, что все дело в том, что эти две либы используют разную нумерацию пинов. Табличку маппинга можно получить выполнив gpio readall
>>1614606 Ну как сказать, сейчас долбоёб тут только ты, потому-что уходишь от ответа на простой вопрос. По скольку ты долбоёб, бьюсь об заклад систему уровня кубера ты не осилишь даже на 15%, она а) распределённая б) хорошо декомпозированна в) довольно легковесна и производительна г) из вышеперечиленного следует, что нужно хорошо уметь в архитекутру д) ты макака умеешь только в хуй за своей щекой и сренькать жабой по другим тредам
>>1614637 Тебя затролили, при том очень толсто. Ты словно первый день на бордах. Перечитай сообщение, на которое ты ответил - это же неприкрытый вброс, причем с первого символа - оскорбление. Зачем на такое вообще отвечать?
>>1614622 да, я пробовал разные пины, юзаю встроенный pinout. Пробовал отловить срабатывание по RiseEdge, FallEdge, AnyEdge, просто по состоянию пина, но никак.
Что-то тухло с вакансиями в ДС. Берём вакансии чистого Go без "желательно знать)))" или "пишем тяжёлые сервисы на Го)))", отбрасываем помойные конторы, типа тинькова-яндекса-авито и остаётся в районе 50. Грустно, уважаемые.
>>1614637 Пок-кок, только на го можно написать супеп-пупер распределенную архитектуру. А ты не осилишь даже 13%, нет 14%, нет! Ты точно не осилишь даже 15% Я сказал!
>г) из вышеперечиленного следует, что нужно хорошо уметь в архитекутру Сам похвалил, сам остался довольный. Ты хоть сорцы открывал? Маня?
Проигрываю со школотронов, которые не могут в орфографию, но уже могут в "архитекутру"
Как-то не по себе стало при изучении, какой-то он очень архаичный для высокоуровнего языка, ощущение, что лабы в вузе делаю. мимо ищу второй язык для бека
>>1615163 Все у них язык молодой и успешный. Языку 10 лет. За 10 лет жаба и пхп стали топ языками. Питон смогли как минимум кто-то там полюбить.
За прошедшие 10 лет, js смог стать топ языком и модульнее чем питон, с его костылем virtevn За 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/*. Ты про это?
Только изучаю го, я правильно понял, что append для слайсов создает копию и если я добавлю 1000 значений в цикле, то у меня в памяти будет 1000 объектов?
>>1615545 >у меня в памяти будет 1000 объектов? Смотри какая штука - 1000 объектов будет, только если ты их явно сохранишь. С другой стороны, когда ты перестаешь использовать объект - он не сразу же исчезает, а только после того, как отработает GC. Таже нужно понимать, о каких именно объектах идет речь - это не данные, которые внутри слайса, а всего лишь структура с 3-мя числами - https://golang.org/pkg/reflect/#SliceHeader
>>1616067 Чтобы убедиться, что нихуя не 1000 объектов, достаточно в цикле написать: fmt.Println(&s[0]) И увидеть, что адрес далеко не каждый раз новый.
>>1616183 В этом вообще чудо го, имеешь две переменные одного слайса и неожиданно (как только перевалит на капасити) у тебя две те же переменных, только ссылаются уже на два разных слайса (причем первая на старую часть).
Можно такое неопределенное поведение поймать (как магические ошибки в си), что и за месяц не найдешь ошибку.
>>1616145 как ты мог догадаться по моему хуевому примеру, я пытался не про какую-то тысячу слайсов рассказать, а про копирование объектов внутрь слайса.
>>1617127 И что мешало сделать один метод append для одного встренного типа как в пистоне или других высокоуровневых языках? Выше кидали код на котлине. Как-то неочевидно все
>>1617127 У гоферов на каждый говно-дизайн и очевидные проблемы есть своя статья? Помню раньше писали, как круто не иметь обработку ошибок в языке, а строки круто иметь в сыром потоке байт, чтобы в карты торо их потом переводить.
>>1617238 > метод Такое ощущение, будто ты думаешь, что пщ - объектно-ориентированный язык. Уверяю тебя, это не так. Он процедурный. И подходы соответствующие. Как в прошлом веке.
>>1617304 https://golang.org/pkg/sort/ Охуеть просто, целый модуль с функциями для сортировки массивов различных типов. Это тоже не постичь неосялиторам.
>>1617400 Если серьезно - то пройди go toor, чтобы понимать что такое метод в го и что такое интерфейс. Затем создай свой тип на основании твоих данных и определи в нем методы из sort.Interface. Для некоторых слайсов такие типы уже есть внутри sort
>>1617516 Я свалил заграницу, но ещё не получил ПМЖ, такая смена работы может выйти мне боком, т.к. редко кто на джунов оформляет приглашение для визы.
>>1617581 Очевидно, работай там где работаешь сейчас. Делай портфолио, свети еблом, нужная хрюшка тебя сама найдет. Не думаю что в го есть карьерный рост сравни джава девелоперу.
GOспода, есть вопрос: значит есть хендлер который получая запрос что то делает в базе данных(mysql). хендлер этот лежит в отдельном пакете. ВНИМАНИЕ ВОПРОС как из мэйна открыть БД так, чтобы хендлер пользовался этим подключением?
Я не понял, в чем проблема? К о вообще пользуется виндой, кроме как в корпорациях для экселя и дома для игор? Если сидишь на никому не нужной оси, будь готов к тому, что ее поддержка будет хромать. И это не проблема гошечки, а любого кррссплатформенного языка - J's, python, Java. О чем этот пацаненок ноет не врублюсь?
Добрый день. Обьясните, пожалуйста, на пальцах что такое указатели и зачем они нужны для человека, у которого Go - первый язык со статической типизацией.
>>1621656 Тот случай когда еще помнишь указатели в си и прямое управление памятью и решил засунуть это в свой язык без управления памяти, потому что это было модно и молодежно в семидесятых.
На самом деле есть концепция ссылок и value-типов (данных на стеке, а не в хипе), и вот указатели как раз реализуют эту концепцию, только не самым удобным способом.
>>1622564 Для всех объектов, даже примитивных (например как в питоне или котлине), использовать только ссылочную систему.
Указатели нужны там, где есть прямое управление памятью, в го нет прямого управления памятью и арифметики, поэтому указатели просто превращаются в головную боль. А автоматическое разыменование стуктур, только скрывает реальную проблему.
Отсюда, мы легко получаем неопределенное поведение со слайсами, когда заводят вторую переменную для одного слайса. По началу все хорошо, а потом вуаля, магия, один слайс стал другим. И найди потом ошибку, почему по определенной фазе луны программа ведет себя не так.
Как это работает в нормальных языках (котлин, питон, джава, js, частично с++, частично шарп...) https://pl.kotl.in/FS-JzWbAb
>>1622672 >А почему для примитивных типов поведение не такое же, как для структур? Переменная это адрес в памяти. Добавляя новое число, ты перезаписываешь старый адрес.
Я даже близко не программист, только пытаюсь. Сегодня узнал о существовании этого языка. Приехал домой, все установил. При запуске пишет такую залупу. Помогите тупому плз.
>>1623180 Создавать надо через конструктор (в котлине он не явный, в джаве все пишут руками). Peson("Катя", 20) // это и есть создание объекта. Даже вроде чем-то похоже на го.
>>1623185 В b запишется новый адрес объекта "6". У "a" останется старый адрес. Переменная это контейнер с адресом, значение где-то всегда в хипе (если ссылок/переменных не останется, она уберется сборщиком мусора)
>>1623295 Объект может быть ппц сложным (например хранить открытый файл или коннект куда-то), в этом случае простым копипастом не получиться, даже если разработчик очень сильно старался. Поэтому единственный способ - самому написать метод копирования. Но чаще проще сделать сериализацию и дсериализацию
Анон, у меня вопрос скорее не по го, а по ООП, которое я так и не осилил за свою карьеру. Нахуя функции принимать интерфейс, вместо конкретной структуры, если я точно знаю, что будет только одна реализация? Типа скрытие внутренних полей или что? Это какая-то хуета уровня бамбурум-липецк принцип? И почему я часто вижу такие конструкции: 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 отдает последнее значение, нужно каждое.
Голингвисты, есть вопрос. Работала у меня гоурутинка, чтоб ее остановить, использовал chan struct{} в который отправлял struct{}{}, все было четко. Потребовалась запустить еще одну гоурутину с возможностью ее останавливать. Я взял и стал использовать тот же канал, чтоб ее остановить, но предсказуемо соснул хуйца, тк сигнал завершения получала только одна горутина.
Сейчас есть 3 стула - 1) Добавить второй канал для второй гоурутины 2) Отправлять в единственный канал 2 сообщения 3) Просто закрыть канал
На какой лучше садиться, чтоб все по понятиям? Я пока выбрал 3, но есть сомнения
>>1627120 Зависит от ситуации, но если речь идет о graceful shutdown, то 3-й вариант - лучший из того, что ты назвал. Я бы рекомендовал вообще использовать обертку, context
>>1627197 Ага спс. К context я уже присматривался, но тогда решил не усложнять. А сейчас наверное пора уже внедрять, чтоб поменьше переделывать в дальнейшем.
>>1627487 >>1627795 Просто я писал где-то с неделю немного кода, я ни разу к жабе напрямую не прикасался. Вот все это API и SDK, оно прям ощущается как котлиновоское.
Думал будет как с typescript, типа все равно надо знать javascript для полноты картины, но оказалось особо не надо.
>>1628130 Давно минули времена когда микрокодом реализовывалась каждая инструкция, на сегодняшний день овердохуя инструкций выполняются напрямую схемотехникой в кристалле, безо всяких микрокодов.
>>1628428 Мне кажется, что цифры не совсем верные. Уверен, что фрилансеры поотмечали, что они рабоют в компании с размером 1. Ну и забавно, что 3% не указавших, где они работают, они отнесли к стартапам.
>>1628634 Бля, хотел язык другой изучать. Питон заебал уже. Перл никого не интересует, а мне очень нравится. Джава/котлин/кложура - сразу нахуй. Пойти на раст что-ли посмотреть.
>>1628627 >Че как там, стоит вкатываться? Если первый язык - нет, по тому что работы не много, а для трени - вообще нет. Если что-то умеешь - можно найти работу, но на какой-нибуть ноде ее раз в 5 больше. Если для себя - попробовать однозначно стоит, язык простой в изучении, и на нем довольно приятно делать нетривиальные вещи. Для простых крудов - наверное проще DRF продолжать использовать.
>>1628636 А с какой целью? Изучать ради изучения? Тогда раст да, отличный вариант. Но на нем работы нет, а та что есть - требует бекграунд на сях 5+ лет. Или можно всякую функциональщину потрогать, но это, опять же, больше для борщехлебов
>>1628638 Думаю перекатиться. Годик поучить, полепить пет проекты типа галереи, с авторизацией, добавлением и т.д чтоб ходить дрочить в туалет с полным паком видюшек/пикч.
>>1628639 Я не против перекатиться на системное программирование. Но раст тоже может в веб, хотя это и не основная его задача.
>>1628702 Я тоже из питона пришел, в целом доволен. Единственное, что особо ты в новую область (если речь идет о предметной области а не географической) не сможешь особо сменить, у питона всяко больше батареек на все случаи жизни, а у пщ нет даже веб-фреймворка, который бы считался стандартом разработки. Хотя go-kit пытаеться им быть, но нет
Отговорите от перехода с Go на Rust. Реклама-то везде клёвая, но кто из вас реально писал более-менее объёмные проекты на обоих языках, какие у раста недостатки? Кроме синтаксиса и количества вакансий.
>>1630137 По идее там комьюнити (а следовательно и попенсорса) меньше. Все же нужно выбирать язык под задачу, а не выбрать язык по каким-то признакам и натягивать его на свой юзкейс
>>1630137 Перешел с пхп и node.js на го, полностью переломил свое сознание и смерился с дизайном го, но хватило меня на 3-4 месяца. Устал от бойлерплейта и даже пришло какое-то осознание что меня наебали.
Почти не зная жабку (зная только ООП), накатил котлин и просто влюбился. Да, есть шероховатости, но пишу код на нем, как на каком-то питоне (удобно, просто, лямбды вообще сказка). Не знаю зачем тебе раст, не было бы котлине, я бы соскачил на питоне лучше, радость писать приложение на низком уровне - сомнительная радость.
>>1632869 Когда полностью пересядите с иглы JVM одобрения на лицо LLVM, тогда и приходите. К тому же работы на котлин-бекенде все равно меньше чем на Go
>>1632985 Работают программистами - только неудачники. Программирование это для души и творчества, а не для писанины одного и того же кода 30 лет подряд. ну или хотя бы для своего стартапа
Для вката в 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, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков
Прошлый