@@tomatguitar может, наоборот? Сначала оцениваешь язык, а потом готовишь по нему курс? Странно было бы делать курс по языку, который считаешь неудачным. Так себе бизнес-стратегия.
Все ещё Сергей Немчинский. Все ещё каждый раз при случае рассказывает, как над ним надругался Google с GWT. Видимо, тут нужна какая-нибудь психотерапия или рехаб для enterprise-разработчиков.
Я как DevOps использую Go для написания либо системных утилит и микросервисов, либо как язык для операторов куба кастомных, очень приятный язык, а пайтон живет как язык либо быстрых скриптов, либо для системных сервисов (требовалась платформа с кнопками для менеджеров, чтобы быстро чинить типовые поломки на ВМках)
У rust автоматическая очистка памяти, основанная на правилах владения, взаимствования и времени жизни. На основе этих правил rust выполняет очистку памяти.
В Rust не надо ничего убирать / прибирать. Там умный компилятор просто не даст скомпилировать программу, если в коде не соблюдены все правила владения. Это можно обойти для некоторых случаев и тогда уже придётся самому чистить память умными указателями. Но в целом, если не создавать кривую архитектуру, то можно обойтись одними принципами владения.
Если не создавать кривую архитектуру, то и на С++ можно обойтись принципами владения. Хороший язык обязан считать, что программист - идиот и не знает что творит, и не давать ему делать непотребства.
@@ТимурЯлымов-т1й если не создавать кривую архитектуру, то ты всё же можешь выстрелить себе в ногу. Это с++ и с ним ничего не поделать. А в Rust - это лишь циклическая зависимость. Больше ситуаций для утечки памяти в Rust нет. А такую ситуацию можно создать только в случае, если у тебя руки из задницы растут. Прям вот точно из неё.
Огромное спасибо за видео! Пишу на Го последние 3 года, очень нравится. Вопрос, часто противопоставляют с RUST, когда следует использовать RUST, а не GO?
Спасибо! По поводу говнокода в примерах ГО в интернете - прям в точку. Я все на них смотрел и думал - может я что то пропустил и так писать стало норм? Значит все таки нет. Фух... 😂
С go есть такая засада, что если берете какой-нибудь пакет с гитхаба, скорее всего придется самому его допиливать. Вот, например, хотим в Azure Cloud использовать брокер сообщений(Service Bus), который использует протокол amqp 1.0, берем соответствующий пакет и ничего практически не работает. Да, в итоге где-то в течении года мы совместными усилиями с Microsoft пофиксили всё, но имейте в виду - надо очень осторожно подходить к планированию проектов на go, закладывать время на то, что многие доступные библиотеки на других языках будут отсутствовать для go или их качество будет очень слабым.
Го не имплементирует многопоточность, а поддерживает конкурентность и параллелизм, используя многоядерность благодаря умному шедулеру, который каждый раз вкомпиливается в бинарь. Стек горутины всего лишь 2кб. Шедулер довольно умный. Одна машина может сграбить часть очереди из другой машины, чего не делает шедулер ОС. NodeJs вообще штука для фронтеров, которым лень учить другой язык но которые хотят стать fullStack.
@@maxpain177 почитал про проблемы с типизацией, которые возникают на больших проектах и решил, что нет перспектив :) Но язык несложный и все хвалят за быстрое написание сетевых сервисов.
"Есть только один способ что-то написать" -- это как раз из The Zen Of Python. "There should be one-- and preferably only one --obvious way to do it." Очень понравилось неискаженное произношение всех терминов. )
Друзья, чтобы экономить время, есть удобная функция слушать на скорости 2.0, нужно просто справа в углу нажать на настройки и выбрать скорость... 🔊 если слушать в наушниках, то скорость вообще не проблема... 🎧 Gg
Спасибо большое за видео и привет из Казахстана. Вижу часто в вакансиях, что требуются блокчейн разработчики. Есть ли смысл учить, учитывая тот факт, что у них приличные зп
Даже если есть смысл учить, не осилишь. Для этого нужно разбираться о том как устроены блокчейны , смарт контракты , как высчитывается комиссия на уровне
Ещё, кстати в Go очень интересно реализованы исключения. То есть по сути их там вообще нет. Для меня как PHP разработчика в первое время это было не понятно. Но исключения довольно сильно тормозят систему и разработку, поэтому ими пришлось так же пожертвовать в скорость языка и разработки. Так же довольно интересная работа с массивами, которые в Go называются срезы: к примеру нет встроенный функции удаления элемента из массива по его индексу, поэтому приходится делать костыль, если вдруг такая функция понадобилась, но это опять же жертва ради скорости
в го есть ооп, отличное от джавы, но есть. И полиморфизм и инкапсуляция там работают. Так же в го есть нормальные функции, чего нету в джаве, так что я бы сказал что го в какой то мере более прокаченее джавы. А с выходом в релиз дженериков, то на Го даже можно теперь и писать. Спасибо, за видео )
@Влад Влад нет традиционного наследования, но это не значит, что вообще нет ооп встраивание считается перспективной альтернативой наследованию, потому что отсекает часть возможностей для написания переусложненного кода впрочем могу понять, что с непривычки сложно им пользоваться
По тому, что я протестил, то GO - совсем немного медленнее js, но в разы быстрее Python, но это стает заметно толь на оооочень большом объеме данных, а в других случаях пайтон справляется быстрее, когда нужно сделать простенькую задачку, но все же, нужно еще протестить веб-сервер, или тому подобное, когда программа работает долго, а не секунду
Порог вход для джунов - уровень "невозможно". Работодателям проще взять готового бэкэндера с другого языка, и через месяц получить полноценного работника, нежели рисковать и вкладываться в джуна. По поводу говнокода - такое ощущение, что гошное сообщество возвело его в канон. Помимо смешения парадигм в одну кучу еще особо доставляет любовь к однобуквенным переменным.
@@Aaaa-jn4bm Нет. То есть когда ты постоянно сидишь в одном куске кода, и связь буква-сущность записывается в долговременную память, то да, читать код становится легче. А вот когда надо быстро разобраться в большом объеме чужого кода, то эти однобуквенные переменные разрывают кошелек Миллера на тысячу маленьких кошелечков. И процесс раскурки превращается в ад.
Длина имени переменной должна быть прямо пропорциональна размеру области её видимости. Честно сказать, что джавовые переменные в 60 буков читать вообще сложно. А 5 строчек с однобуквенными переменными кто угодно осилит
Кстати, помимо горутин (а точнее их синхронизаций), сложность на начальном этапе для многих являются пойнтеры. И кстати, из за них часто проблемы со торможением сборщика мусора, если неправильно их использовать
Если сравнить Go с Ruby, то какой на Ваш взгляд является более востребованным/перспективным? И у какого из них более низкий порог входа? Понятно, что языки разные, один интерпретируемый, другой компилируемый, различная философия и т.д. но, как мне кажется, область применения у них схожа(быстрая разработка небольших сервисов). Хотелось бы понять, какой из этих языков более перспективный, в плане востребованности, чтобы не тратить время на изучение заведомо тупиковой/умирающей технологии.
Нет смысла учить Ruby с точки зрения перспектив он жив до сих пор из-за рельс и только то. Хотите востребованности - учите Java и/или C# эти языки с нами еще на долгие годы. Go еще молод да и далек от универсальности и очень хорош только в своей нише.
мне кажется можно было бы чуток постебать гоху. например, на тему того, что многопоточность из коробки есть, но какая-то неуправляемая. Гоха не обеспечивает гарантию возврата управления из исполняемого кода, из-за чего неакуратно написанная может занимать процессорное время на то время, на которое захочет. Ну и вообще пройтись по ее особенностям, которые кажутся диковатыми человеку, писавшему код с применением ооп.
Google закрыли GWT. Но он же был убогим. Ты и сам это упоминал в духе "Упоси господь". А вообще от заказчиков и сейчас поступают требования в виде "Хотим начать проект, нам нужен один разработчик, будем делать на Java+GWT"
Не знаю как в украине, но в рф очень много крупных компаний переходит на го. Яндекс, VK, Сбер, Авито, Тинькофф все потихоньку переписывают свои плюсовые легаси на го и активно хантят даже джунов
@Vlad Vlad это правда? много слышал что стажеров и джунов на го не существует т.к. невыгодно. у меня есть желание изучать этот язык программирования как первый и сомневаюсь в выборе именно из-за проблем с трудоустройством для джунов. можете, пожалуйста, проинформировать меня?
Ооо наконец-то про Golang, go для меня темная лошадка) непонятно где используют и как, понятно что основная ниша это backend, а в каких проектах используют кроме как микросервисов, многопотоков и стриминговых систем непонятно. Везде где голенг везде эти 3 составляющие, никакого разнообразия как и с синтаксисом самого языка, дали цикл for расшибись но сделай все задачи именно через for 😂😂😂 но го мне нравится также как и пайтон, я бы сказал следующая ступень эволюции бекендера на питоне)
@@maksimbiriukov5483 дженерики фактически не завезли, у них куча ограничений, они РАНТАЙМ. В целом днежерики это провал го, тк его просили лет 5, а потом видимо будут столько же доделывать
И забыли упомянуть главную фичу Го компилит в нативный код таргет платформы и все собирает в один исполнимый файл, который не требует никаких библиотек
@@Anton-ni8un ну, он будет работать на платформе и не имеет значения какие либы и каких версий установлены. Тоже считаю это полюсом. Лучше так, чем ад из зависимостей
Не пытаюсь душить, НО просто интересно: 1. Когда это именно "размер" языка, влиял на тип проекта? 2. Что плохого в duck-typing и в чем такой большой минус отсутствия перегрузки функций?
Очень часто использую Go для мелких программ, где надо парсить данные. Четкая типизация json файлов + мои мелкие библиотеки для ускорения работы, но небольшого уменьшения производительности очень сильно помогают работать и делать это без ошибок
По поводу ноды и гоу , в плане "если вы переходите с языка со строгой типизацией то лучше выбрать go", ну тут спорно , все проекты современные на ноде уже с typescript пишутся , типизация очень хорошая. Но я так понимаю go побыстрее ноды
Ну вообще-то в Rust не надо следить за памятью, там система владения и компилятор сам добавляет удаление объектов и переменных в то место где они уже не могут быть доступны и это очень удобно, но надо привыкнуть)
Раз он такой маленький и компилируемый, то может и эмбедерам на него проще перейти будет? И может даже в embedded применять как гугл завещал? Что думаете, С-шникам зайдёт?
Года 3 назад была статья от Дискорда: они какой-то их сервис перенесли с го на раст, потому что сборщик мусора давал нехилую нагрузку на скорость работы.
Не девопсом единым. На Go сейчас переписывается куча старых утилей написанных на С и С++. Память не течет, юникод из коробки, dependency hell отсутствует как класс.
Да ничего ты не DevOps! Врёшь ты всё! Просто брешишь как сивый мерин. Девопсы уже как двести лет назад были истреблены кочевыми народами средней Азии. Книжки умные читай, автотестер недопатченный!
На расте не надо прибирать за собой, компилятор все делает за тебя при условии соблюдения концепции владения. А еще, он будет правильно распоряжаться ссылками если ты соблюдаешь концепцию заимствования, и не даст тебе творить откровенную фигню и стрелять себе же в ноги.
Тут Сергей конечно плохо выразился, прибирать руками не надо. Но тем не менее надо думать про владение (передать по значению, по ссылке, в Box, Cow, Rc, Arc...) и пробрасывать лайфтаймы. Это круто там, где нужно что-то уровня С/C++: в них тоже приходится об этом всём думать, просто компилятор тебя не проверяет и позволяет стрелять в ногу. Но если у тебя обычный прикладной софт и ты не упираешься в необходимость оптимизации, то это просто лишняя ментальная и синтаксическая нагрузка.
3:37 А зачем в Rust Сборщик мусора? Там владение, зоны видимости и прочее, в очень специфичных случаях только может нужно что-то очистить и ничо они не вынуждены
6 лет на go, работал с ним уже в 5 конторах разного размера, не сталкивался ни разу с проблемой WLB. Так что не стоит акцентировать на этом столько внимания
"любой разраб который пишет на си или расте вынуждены следить за всеми объектами которые создают..." касаемо Си согласен, но у Раста же есть RAII, умные поинтеры, трейт Drop, безусловно в unsafe разраб сам берет на себя ответственность за множество косяков, но тем не менее раст обладает инструментами безопасного управления памятью пусть и не идеальными. А что с го? старинная null-pointer семантика (nil) или часто непредсказуемый gc который "радует" stw и работает далеко не всегда предсказуемо, или дженерики которые появились только спустя 10 (!) лет после релиза... такое себе.. Лично я после многих лет разработки на го, познакомившись с растом, и начав писать на нем более-менее адекватный код, не имею никакого желания возвращаться на го. это лишь мое мнение)
Интересно, вы как то очень ловко обошли сравнение производительности Go и Java. Хотя момент очень даже интересующий. У меня в наличии несколько сервисов писанных на delphi. Коллекторы для сбора CDR телеком оборудования, декодеры в рамках системы роуминга, smpp-агрегатор... ну и прочее, что по понятным причинам приходится переписывать. Ну со старья на что переходить... не на старье же. Попробовал go, нарисовал asn1 коллектор. Простота языка, многопоточности и скорость обработки вроде пришлись по душе. Но в конторе явисты. Утверждают, что на Яве будет все так-же шустро летать, потому что её код тоже компилируется и если что никому не придётся разбираться с go. Так ли это? Интересует именно низкоуровневая, многопоточная работа с бинарными данными. Есть ли плюсу у go по сравнению с Java кроме необходимости тащить Ява машину.
Здравствуйте. Вот я студент и у меня вопрос. Я знаю С++, С# и его .Net фреймворк на базовом уровне. Но очень хочу уже работать. На каком языке стартовать проще, на GO или JS? Мои знакомые все начинали на JS поэтому я думал начать учить этот язык, но в вашем видео услышал что порог входа в го маленький
@@alexandrapersukova С++ в большинстве случаев используется как часть кода в больших проектах в узких местах, ускоряя тем самым его скорость работы. Игры не берем в расчет.
go не подходит для "критически важной скоростной инфраструктуры" 5:55 о которой ты говоришь и проблема заключается в том, каким образом работают горутины.
Только в декабре -20% 🤑 на IT-курсы по менторингу и обучению на проекте! go.foxminded.ua/3ZGNN8D
Нам нужен goland разраб с опытом не менее 20 лет и не старше 25 лет
😅
Думаете ещё не родился такой индус?
Да, и именно Goland, Golang не предлагать!😁
@@ShuntySK , это опечатка)
Мож IDEшку разрабатывать? Но она на java
После Python и Js этот язык просто на ура заходит. Даже не ожидал. Последний раз такой эффект наблюдался когда я после Python начал изучать JS.
я дожил до этого, Сергей перечисляет плюсы Go. Осталось дожить до списка плюсов NodeJS :D
Просто у Foxminded появился курс по гошке, вот и нахваливает)
Будет курс по Коболу - и там найдёт плбсы6!)
@@tomatguitar может, наоборот? Сначала оцениваешь язык, а потом готовишь по нему курс? Странно было бы делать курс по языку, который считаешь неудачным. Так себе бизнес-стратегия.
@@tomatguitar по NodeJS тоже есть курс)
@@eugenymamontov5549 зачем оценивать язык, пока курс по нему ещё не создан?
Какая стабильность! Вы все еще Сергей Немчинский
Хах
Все ещё Сергей Немчинский. Все ещё каждый раз при случае рассказывает, как над ним надругался Google с GWT. Видимо, тут нужна какая-нибудь психотерапия или рехаб для enterprise-разработчиков.
Звук в видео очень приятный)
Сергей, классное видео!
Я как DevOps использую Go для написания либо системных утилит и микросервисов, либо как язык для операторов куба кастомных, очень приятный язык, а пайтон живет как язык либо быстрых скриптов, либо для системных сервисов (требовалась платформа с кнопками для менеджеров, чтобы быстро чинить типовые поломки на ВМках)
Это типа «место на диске закончилось»?)
DevOps котрый пишет микросервисы это 💪
Крутяк
Сильно хочу посмотреть видео про rust, а особенно про объяснения того откуда в rust взялась ручная очистка памяти.
У rust автоматическая очистка памяти, основанная на правилах владения, взаимствования и времени жизни. На основе этих правил rust выполняет очистку памяти.
такая возможность есть, если были созданы циклические ссылки. Решение тут - week_ptr.
В интернете полно видео про rust, про то как фармить, лутать и строить жилище.
@@Daystar86-b4t Да. Как у "плюсов"
@@madcalm2024 , нет. Не как у плюсов.
Спасибо! Просто круто! Очень по-народному объяснили. Народ Вас не забудет. Like!
Го следующий выпуск про rust
И Ruby plz
А чего не про pubg ?
@@qwagru Про pubg тоже нужно)))
Большое спасибо за видео!
Like под видосик. Пошел дальше учить JS :)
xslt иканомит 99% js
🔥👍
Спасибо, наконец то дождался вашего экспертного мнения по Golang
2 года назад же было уже )
Сергей, спасибо за видео) Ждем видео по RUST)
пошутил пошутил
Очень ждём!
Наконец то я просветился про Go , благодарю )
Сереж, все по сути, люблю тебя. Как всегда. ❤
Go был создан для разработки серверного ПО. Это прям легко вычисляется, когда смотришь на то - какие именно архитектуры поддерживает его компилятор.
так он поддерживает большинство современных архитектур(???) или я неправильно понял суть коммента
@@хочуфумо Правильно, при чем большинство из них - серверные, хотя для ПК и смартфонов тоже все архитектуры поддерживаются.
Супер! Разложил все по полочкам!) Очень информативно)
В Rust не надо ничего убирать / прибирать. Там умный компилятор просто не даст скомпилировать программу, если в коде не соблюдены все правила владения. Это можно обойти для некоторых случаев и тогда уже придётся самому чистить память умными указателями. Но в целом, если не создавать кривую архитектуру, то можно обойтись одними принципами владения.
rust маленкий
Если не создавать кривую архитектуру, то и на С++ можно обойтись принципами владения. Хороший язык обязан считать, что программист - идиот и не знает что творит, и не давать ему делать непотребства.
@@ТимурЯлымов-т1й если не создавать кривую архитектуру, то ты всё же можешь выстрелить себе в ногу. Это с++ и с ним ничего не поделать. А в Rust - это лишь циклическая зависимость. Больше ситуаций для утечки памяти в Rust нет. А такую ситуацию можно создать только в случае, если у тебя руки из задницы растут. Прям вот точно из неё.
rust не нужен, совсем, есть ansi c, и go
@@fudj8264 go вообще не нужен. Только для внутренних разработок Гугла.
Сергей, спасибо!!!
Go Go Go
Огромное спасибо за видео! Пишу на Го последние 3 года, очень нравится. Вопрос, часто противопоставляют с RUST, когда следует использовать RUST, а не GO?
Сергей, как всегда очень в тему, спасибо
Мы тоже любим вас 🙂
❤
Спасибо! По поводу говнокода в примерах ГО в интернете - прям в точку. Я все на них смотрел и думал - может я что то пропустил и так писать стало норм? Значит все таки нет. Фух... 😂
Надо ваш код посмотреть )
Есть языки которые помогают в создании говнокода.
И есть языки которые формируют вокруг себя коммюнити которые его создают.
Классное видео
Вау! Как по мне, Вы очень интересно, ярко и при этом очень содержательно рассказываете
Интересно, надо посмотреть Go.
С go есть такая засада, что если берете какой-нибудь пакет с гитхаба, скорее всего придется самому его допиливать. Вот, например, хотим в Azure Cloud использовать брокер сообщений(Service Bus), который использует протокол amqp 1.0, берем соответствующий пакет и ничего практически не работает. Да, в итоге где-то в течении года мы совместными усилиями с Microsoft пофиксили всё, но имейте в виду - надо очень осторожно подходить к планированию проектов на go, закладывать время на то, что многие доступные библиотеки на других языках будут отсутствовать для go или их качество будет очень слабым.
Го не имплементирует многопоточность, а поддерживает конкурентность и параллелизм, используя многоядерность благодаря умному шедулеру, который каждый раз вкомпиливается в бинарь. Стек горутины всего лишь 2кб. Шедулер довольно умный. Одна машина может сграбить часть очереди из другой машины, чего не делает шедулер ОС.
NodeJs вообще штука для фронтеров, которым лень учить другой язык но которые хотят стать fullStack.
Правильно, настоящие бекендеры используют Deno :v
2кб? а вы вообще в курсе что в го, в отличие от С стек может расти?
Я немного неправильно высказался. Инициализируется 2кб. И да, он растет везде! В си просто 1мб даётся сразу в зависимости от ос и архитектуры
Чтобы ускорить PHP или Python, достаточно написать модуль для них на C++
Немченский же сказал, что это долго и дорого
Когда это NodeJs стал многопоточным?
Как всегда толково )
Дякую! А про Rust буде? Бачив досить багато вакансій у Європі пов'язаних з цією мовою програмування
Я, как обычно, ничего не понял, но было очень интересно. Спасибо.
Видео мотивирует, пошёл учить Go.
Выучил?
@@maxpain177 почитал про проблемы с типизацией, которые возникают на больших проектах и решил, что нет перспектив :) Но язык несложный и все хвалят за быстрое написание сетевых сервисов.
@@alogic75а какой тогда лучше вместо него? Кроме питона
@@sv818 лучше всех Zig. Осталось только дождаться, когда популярность наберёт.
Когда видос по руби?
Thank you, Sergey😉
Спасибо за видео) 👍
Здравствуйте. Хочется услышать про DELPHI.
Он помер
Кто-нибудь переходил с джавы на голэнг? Расскажите про ваш опыт
Знакомый сеньор С# год назад перешёл. Просто балдеет с его слов.
хочешь гофером стать? Ну приветствую )
"Есть только один способ что-то написать" -- это как раз из The Zen Of Python. "There should be one-- and preferably only one --obvious way to do it." Очень понравилось неискаженное произношение всех терминов. )
Сергей, не хотите сделать обзор совершенно новорожденных языков программирования, и какие перспективы их ждут?
Спасибо за видео.
Да таких языков программирования просто огромная куча, и оплата разная за них
Ты лучше это, иди первый (к)анал посмотри
Скала, го и нода, больше не знаю, подскажешь?
@@loenishe3647 haskell, rust, ocaml, elixir и до бесконечности
а вы можете такие плохие примеры кода на go в каком-то из видосиков осветить? 🙂
Друзья, чтобы экономить время, есть удобная функция слушать на скорости 2.0, нужно просто справа в углу нажать на настройки и выбрать скорость... 🔊 если слушать в наушниках, то скорость вообще не проблема... 🎧 Gg
Сергей, было бы интересно, услышать, что Вы думаете про Clojure
вангую, ничего хорошего)))
Он уже упоминал его, он не понимать ад со скобочками. И скала ему тоже не нрава, он патриот Java
А что же с жавкой?
Спасибо большое за видео и привет из Казахстана. Вижу часто в вакансиях, что требуются блокчейн разработчики. Есть ли смысл учить, учитывая тот факт, что у них приличные зп
в блокчейне - душнятина, никакие бабки не покроют, быстро выгоришь
Даже если есть смысл учить, не осилишь. Для этого нужно разбираться о том как устроены блокчейны , смарт контракты , как высчитывается комиссия на уровне
Ещё, кстати в Go очень интересно реализованы исключения. То есть по сути их там вообще нет. Для меня как PHP разработчика в первое время это было не понятно. Но исключения довольно сильно тормозят систему и разработку, поэтому ими пришлось так же пожертвовать в скорость языка и разработки. Так же довольно интересная работа с массивами, которые в Go называются срезы: к примеру нет встроенный функции удаления элемента из массива по его индексу, поэтому приходится делать костыль, если вдруг такая функция понадобилась, но это опять же жертва ради скорости
Уже есть встроенная функция, по удалению элемента с слайса)
Да ну всмысле в rust следить за памятью? Там же все сам компилятор чистит, он безопасен и без GC
в го есть ооп, отличное от джавы, но есть. И полиморфизм и инкапсуляция там работают. Так же в го есть нормальные функции, чего нету в джаве, так что я бы сказал что го в какой то мере более прокаченее джавы. А с выходом в релиз дженериков, то на Го даже можно теперь и писать. Спасибо, за видео )
Это шутка такая ?
@Влад Влад нет традиционного наследования, но это не значит, что вообще нет ооп
встраивание считается перспективной альтернативой наследованию, потому что отсекает часть возможностей для написания переусложненного кода
впрочем могу понять, что с непривычки сложно им пользоваться
@Влад Влад нормально там всё с ООП, если понимать что это вообще такое.
Странно почему автор не упомянул что эфириум, докер, кубер, прометеус написаны на go
По тому, что я протестил, то GO - совсем немного медленнее js, но в разы быстрее Python, но это стает заметно толь на оооочень большом объеме данных, а в других случаях пайтон справляется быстрее, когда нужно сделать простенькую задачку, но все же, нужно еще протестить веб-сервер, или тому подобное, когда программа работает долго, а не секунду
Порог вход для джунов - уровень "невозможно". Работодателям проще взять готового бэкэндера с другого языка, и через месяц получить полноценного работника, нежели рисковать и вкладываться в джуна.
По поводу говнокода - такое ощущение, что гошное сообщество возвело его в канон. Помимо смешения парадигм в одну кучу еще особо доставляет любовь к однобуквенным переменным.
В рамках небольших функций однобуквенные переменные намного красивее смотрятся, и только улучшают качество и читаемость кода. Разве нет ?
@@Aaaa-jn4bm Нет. То есть когда ты постоянно сидишь в одном куске кода, и связь буква-сущность записывается в долговременную память, то да, читать код становится легче.
А вот когда надо быстро разобраться в большом объеме чужого кода, то эти однобуквенные переменные разрывают кошелек Миллера на тысячу маленьких кошелечков. И процесс раскурки превращается в ад.
Длина имени переменной должна быть прямо пропорциональна размеру области её видимости. Честно сказать, что джавовые переменные в 60 буков читать вообще сложно. А 5 строчек с однобуквенными переменными кто угодно осилит
Благодарю. А есть расклад по Хаскель?
а можно про rust?
Кстати, помимо горутин (а точнее их синхронизаций), сложность на начальном этапе для многих являются пойнтеры. И кстати, из за них часто проблемы со торможением сборщика мусора, если неправильно их использовать
Да, ппц в 2016 пытался учить го по книге как по сути первый язык - ничего не понял.
Сейчас взял после Python и двух лет преподавания информатики, уже другое дело)
Это потому что они не писали на си или си++. Лично у меня проблем с указателями вообще не возникло
@@vatakiller
Серьёзно что ли?
@@anti_middle_ages да, после Пайтона намного проще, попытка начать с него обучение программированию у меня полностью провалилась)
Расскажи про rust. Какого твоё мнение про него ?
Если сравнить Go с Ruby, то какой на Ваш взгляд является более востребованным/перспективным? И у какого из них более низкий порог входа? Понятно, что языки разные, один интерпретируемый, другой компилируемый, различная философия и т.д. но, как мне кажется, область применения у них схожа(быстрая разработка небольших сервисов). Хотелось бы понять, какой из этих языков более перспективный, в плане востребованности, чтобы не тратить время на изучение заведомо тупиковой/умирающей технологии.
Нет смысла учить Ruby с точки зрения перспектив он жив до сих пор из-за рельс и только то. Хотите востребованности - учите Java и/или C# эти языки с нами еще на долгие годы. Go еще молод да и далек от универсальности и очень хорош только в своей нише.
мне кажется можно было бы чуток постебать гоху. например, на тему того, что многопоточность из коробки есть, но какая-то неуправляемая. Гоха не обеспечивает гарантию возврата управления из исполняемого кода, из-за чего неакуратно написанная может занимать процессорное время на то время, на которое захочет. Ну и вообще пройтись по ее особенностям, которые кажутся диковатыми человеку, писавшему код с применением ооп.
Google закрыли GWT. Но он же был убогим. Ты и сам это упоминал в духе "Упоси господь". А вообще от заказчиков и сейчас поступают требования в виде "Хотим начать проект, нам нужен один разработчик, будем делать на Java+GWT"
Оо помню этот GWT 😆
Здравствуйте Сергей, как думайте rust - это будущее gamedev'a.
Это просто будущее всего хорошего в программной инженерии.
Не знаю как в украине, но в рф очень много крупных компаний переходит на го. Яндекс, VK, Сбер, Авито, Тинькофф все потихоньку переписывают свои плюсовые легаси на го и активно хантят даже джунов
@Vlad Vlad это правда? много слышал что стажеров и джунов на го не существует т.к. невыгодно. у меня есть желание изучать этот язык программирования как первый и сомневаюсь в выборе именно из-за проблем с трудоустройством для джунов. можете, пожалуйста, проинформировать меня?
@@deprussianдобрый день! если не секрет, поделитесь, пожалуйста, что решили?)) прошел год, удалось найти работу? Я вот сейчас думаю начать го изучать
@@deprussian мне тоже интересно , что у вас получилось?
Прошло 2 месяца, начал изучать?@@erzhenochka1
@@deprussianнапиши мне, скажу как сразу на мидла вкатиться
Только заметила установку на заднем плане, обычно слушаю видео фоном. Для себя чисто или группа, например?)
Ооо наконец-то про Golang, go для меня темная лошадка) непонятно где используют и как, понятно что основная ниша это backend, а в каких проектах используют кроме как микросервисов, многопотоков и стриминговых систем непонятно.
Везде где голенг везде эти 3 составляющие, никакого разнообразия как и с синтаксисом самого языка, дали цикл for расшибись но сделай все задачи именно через for 😂😂😂 но го мне нравится также как и пайтон, я бы сказал следующая ступень эволюции бекендера на питоне)
Дженерики завезли. Мап редьюс филтер и прочее доступно. Наслаждайся)
@@maksimbiriukov5483 вот эт хорошо
@@maksimbiriukov5483 дженерики фактически не завезли, у них куча ограничений, они РАНТАЙМ. В целом днежерики это провал го, тк его просили лет 5, а потом видимо будут столько же доделывать
Спасибо за труд! Перое видео в котором я не замечаю косоглазие
И забыли упомянуть главную фичу
Го компилит в нативный код таргет платформы и все собирает в один исполнимый файл, который не требует никаких библиотек
Говорил же об этом в начале
@@Kizilkumka видать я провтыкал....
То есть если приложение большое, то в случае обновления придется качать заново весь файл? Что в этом удобного?
@@Anton-ni8un бинарник обычно не более 100 мегабайт, остальное файлы данных
У нас реально навороченный сервер где-то метров 30-40
@@Anton-ni8un ну, он будет работать на платформе и не имеет значения какие либы и каких версий установлены. Тоже считаю это полюсом. Лучше так, чем ад из зависимостей
Сергей, в Rust разработчик не должен следить за памятью, так как программа, в которой переменные не удаляются из памяти просто не скомпилируется.
+
Сергей, расскажи про Node js
Не пытаюсь душить, НО просто интересно:
1. Когда это именно "размер" языка, влиял на тип проекта?
2. Что плохого в duck-typing и в чем такой большой минус отсутствия перегрузки функций?
Очень часто использую Go для мелких программ, где надо парсить данные. Четкая типизация json файлов + мои мелкие библиотеки для ускорения работы, но небольшого уменьшения производительности очень сильно помогают работать и делать это без ошибок
Например какие программы? Думаю потом ради интереса выучить его, глянуть что можно на нем написать
@@awenn2015 консольные приложения с веб-запросами, парсингом данных, генерации stl фигур для 3д обработки и т.д.
@@tmeMishaGo а понял, прикольная тема
Пишите софт на заказ ?
Похожими характеристиками обладает язык Julia. Очень интересный, но также довольно молодой
Возможно ли сообразитъ Калъкулятор счёта простых бесконечных последователъностей?!.
Серёга.
Может Вам президентом мира стать? Такой стабильности можно позавидовать, Вы всё ещё Сергей Немчинский
Спасибо за айтиликбез. Мирного неба вам над головой
А курс salesforce-администратор у вас есть?
отлично!
По поводу ноды и гоу , в плане "если вы переходите с языка со строгой типизацией то лучше выбрать go", ну тут спорно , все проекты современные на ноде уже с typescript пишутся , типизация очень хорошая. Но я так понимаю go побыстрее ноды
Ну вообще-то в Rust не надо следить за памятью, там система владения и компилятор сам добавляет удаление объектов и переменных в то место где они уже не могут быть доступны и это очень удобно, но надо привыкнуть)
Раз он такой маленький и компилируемый, то может и эмбедерам на него проще перейти будет? И может даже в embedded применять как гугл завещал? Что думаете, С-шникам зайдёт?
Года 3 назад была статья от Дискорда: они какой-то их сервис перенесли с го на раст, потому что сборщик мусора давал нехилую нагрузку на скорость работы.
3:46 В Rust нет необходимости вручную освободить память. Там это происходит автоматически, без сборщика мусора.
Не девопсом единым. На Go сейчас переписывается куча старых утилей написанных на С и С++.
Память не течет, юникод из коробки, dependency hell отсутствует как класс.
Связка пайтон + go это идеал?
нет
Идеал для чего?
Я DevOps - но стараюсь какие то простенькие задачи решаю на Go - ну понравился он мне, python гораздо быстрее - но, Go как то ближе )
Да ничего ты не DevOps! Врёшь ты всё! Просто брешишь как сивый мерин. Девопсы уже как двести лет назад были истреблены кочевыми народами средней Азии. Книжки умные читай, автотестер недопатченный!
питон быстрее го? хорошая шутка
@@alekseyalekseev1700 в плане написания, не в плане работы
не знаю в каком месте питон быстрее го, скорее в разработке побыстрее
@@merenhor342 да не так сформулировал, написать что то - на питоне за частую быстрее, чем на го - вот тут скорость, а не в работе
Дайте обзор про Руби ка, вроде набирает популярность, но я не понимаю почему.
А мы до сих пор используем GWT и всё хорошо 🎉
Yeee!!! Super!!! 🎉🎉🎉
На расте не надо прибирать за собой, компилятор все делает за тебя при условии соблюдения концепции владения. А еще, он будет правильно распоряжаться ссылками если ты соблюдаешь концепцию заимствования, и не даст тебе творить откровенную фигню и стрелять себе же в ноги.
+
Тут Сергей конечно плохо выразился, прибирать руками не надо. Но тем не менее надо думать про владение (передать по значению, по ссылке, в Box, Cow, Rc, Arc...) и пробрасывать лайфтаймы. Это круто там, где нужно что-то уровня С/C++: в них тоже приходится об этом всём думать, просто компилятор тебя не проверяет и позволяет стрелять в ногу. Но если у тебя обычный прикладной софт и ты не упираешься в необходимость оптимизации, то это просто лишняя ментальная и синтаксическая нагрузка.
@@expurple Правильно сказал.
Почему-то мало кто что рассказывает про Julia. На нее легко перейти питонистам и R'щикам, при этом там тоже есть многопоточность и есть компилляция
И можно писать почти как формулы! С латехом.
Войти в IT, войдя в Julia, хммм... а что, я согласен))) 😄
@@pavelgushchin2223 , сказал бы так: войдя в Julia, в IT не войдёшь, но приятно будет очень.
@@pavelgushchin2223 😅😅😅
3:37 А зачем в Rust Сборщик мусора? Там владение, зоны видимости и прочее, в очень специфичных случаях только может нужно что-то очистить и ничо они не вынуждены
6 лет на go, работал с ним уже в 5 конторах разного размера, не сталкивался ни разу с проблемой WLB. Так что не стоит акцентировать на этом столько внимания
Привет, если есть желание, можешь посоветовать ресурсы, книги с которых лучше начать изучать go?
@@РоманТуров-н2ъ я прошел официальный туториал, посмотрел ютуб и через неделю устроился на работу.
just for func канал посмотри.
подскажите, пожалуйста, берут ли джунов на должность Go разработчика? и востребован ли этот язык на фрилансе?
"любой разраб который пишет на си или расте вынуждены следить за всеми объектами которые создают..."
касаемо Си согласен, но у Раста же есть RAII, умные поинтеры, трейт Drop, безусловно в unsafe разраб сам берет на себя ответственность за множество косяков, но тем не менее раст обладает инструментами безопасного управления памятью пусть и не идеальными. А что с го? старинная null-pointer семантика (nil) или часто непредсказуемый gc который "радует" stw и работает далеко не всегда предсказуемо, или дженерики которые появились только спустя 10 (!) лет после релиза... такое себе..
Лично я после многих лет разработки на го, познакомившись с растом, и начав писать на нем более-менее адекватный код, не имею никакого желания возвращаться на го.
это лишь мое мнение)
Что на счёт порога входа. Какой он? У раста выше или у го
@@Franchise_vi у раста сильно выше порог входа, но спустя 1~2 месяца изучения вполне возможно освоиться
3:51 чушь. У раста смарт-поинтеры и за ними следить не надо. Автору бы ознакомиться с языком, прежде чем утверждать
Очень круто рассказал, звук и картинка шикарны! Какой у вас микрофон?
Shure sm7 b
Интересно, вы как то очень ловко обошли сравнение производительности Go и Java. Хотя момент очень даже интересующий. У меня в наличии несколько сервисов писанных на delphi. Коллекторы для сбора CDR телеком оборудования, декодеры в рамках системы роуминга, smpp-агрегатор... ну и прочее, что по понятным причинам приходится переписывать. Ну со старья на что переходить... не на старье же. Попробовал go, нарисовал asn1 коллектор. Простота языка, многопоточности и скорость обработки вроде пришлись по душе. Но в конторе явисты. Утверждают, что на Яве будет все так-же шустро летать, потому что её код тоже компилируется и если что никому не придётся разбираться с go. Так ли это? Интересует именно низкоуровневая, многопоточная работа с бинарными данными. Есть ли плюсу у go по сравнению с Java кроме необходимости тащить Ява машину.
Ну так напишите для пробы. Может и подойти. Странно, что вы не доверяете своим разработчикам, но доверяете мужику с интернета.
Здравствуйте. Вот я студент и у меня вопрос. Я знаю С++, С# и его .Net фреймворк на базовом уровне. Но очень хочу уже работать. На каком языке стартовать проще, на GO или JS? Мои знакомые все начинали на JS поэтому я думал начать учить этот язык, но в вашем видео услышал что порог входа в го маленький
Стартовать проще хоть на чем-то. Не бегай по языкам, а доведи свой С++ или С# до уровня, чтобы тебя взяли на работу
а С++ и С# не нравятся?
@@alexandrapersukova С++ в большинстве случаев используется как часть кода в больших проектах в узких местах, ускоряя тем самым его скорость работы. Игры не берем в расчет.
php
Ты главное на собесе нигде не скажи, что знаешь с++ :)
go не подходит для "критически важной скоростной инфраструктуры" 5:55 о которой ты говоришь и проблема заключается в том, каким образом работают горутины.
@@artishoo нет, не подходит т.к. механизм переключения между горутинами не позволяет это
Сергей, вроде как вы уже снимали ж видос про Go 😊
Пока кто-то переписывает что-то на Go чтобы работало быстрее, мне приходится куски Go переписывать на Rust. Получается прирост скорости в 4 раза.