.net7 C# vs Golang. Сравнение производительности

preview_player
Показать описание
#csharp #golang #программирование #backend
В этом видео продолжу серию роликов сравнения производительности. Сравним C# и Golang

Исходный код Golang
Исходный код CSharp
Быстрый алгоритм float, double в строку
Классный канал для разработчика Golang (а может и других языков)

00:00:00 Вступление
00:01:08 Начало тестов
00:11:25 Мое мнение о Golang
00:15:26 Рекомендация классного канала для разработчика Golang
Рекомендации по теме
Комментарии
Автор

спасибо за видео! очень информативно и полезно
что касается преобразования double/float64 в текст, справедливо бы было использовать один и тот же алгоритм (например тот же ryu)

sadeathoughts
Автор

Все таки не зря подписался) а искал изначально вообще про кейклок)

shkippitor
Автор

Болел за C#, было увлекательно, спасибо. Ждем Rust.

nv-xi
Автор

Всем привет, выбираю между двумя языками C# и Go, учить собираюсь для back-end. С шарпом уже знаком, учил на 2 курсе универа, знаю на уровне до ООП. Можно ли начинать свой путь в IT с Go или лучше продолжить учить C# и пытаться найти свою первую работу с ним?

ioiqdiw
Автор

Спасибо за сравнение.
Но так же хочется отметить некоторые моменты: Многопоточка в го по сравнению с шарпами (если в ней разобраться) намного удобнее (по крайней мере мне).
Было бы интересно почитать обсуждение тезисов в комментариях под статьей на Хабре(если видео будет перенесено в статью), чтобы многие опытные программисты могли дать свои оценки данному тесту и привести свои примеры сравнения. Да и говоря "при использовании gRPC такой проблемы не будет" можно это и показать. Да, мы можем это сделать сами, но тогда зачем нам смотреть видео?)
Еще, если говорить о переходе с шарпа на го, то стоит упомянуть отсутствие огромного Легаси в котором необходимо разбираться из за приличного возраста шарпов в продакшне. Со временем на го тоже будет много Легаси, но в данный момент его просто нет в силу возраста языка. Ещё из плюсов го: зарплаты в среднем выше(на 2023 год), разношерстное комьюнити (ведь в го обычно приходят из других языков) и бОльшие требования к знаниям смежных областей (в шарпе на уровне мидл и ниже многое уже решено и есть best practice, из за которых тебе и в голову не придет лезть под капот той или иной технологии).
От себя хочу добавить что знакомство с другими языками, которые построены не на ООП очень полезный опыт. Когда смотришь на отличия невольно начинаешь задавать вопрос "а почему так?" и в итоге больше понимаешь не только новый язык, но и те вещи что казались магией в шарпе становятся понятнее.
Ну и лайк за Артура из искусства программирования.
P.s.: автору спасибо за видео, посмотреть на сравнение всегда интересно.

Lolohaev
Автор

как с# приложение работает под линукс? core? насколько это все сложно поддерживать?

MakarenkoSasha
Автор

Хе, думал после шарпа го изучать, а тут такое... 😂😮

MrCommanderKid
Автор

глянул сортировку, пусть спецы по go поправят:
1) result += Compare(STR1+strconv.Itoa(i), STR2+strconv.Itoa(i)) делается через fmt.Sprintf
2) := это создание переменной, вероятно декларировать нужно через var до цикла
3) слайсы рун...

sezam-zzlf
Автор

Какой сериализатор в C# использовался? Newtonsoft или System.Text.Json?

СерёгаСокольский
Автор

Хотелось бы тогда увидеть использование jsoniter вместо обычного json маршаллера на го. Раз на шарпе использовалось что-то не родное. По тестам он быстрее, но в чем именно была оптимизация не изучал.

vitalyneumoin
Автор

спасибо за контент, было интересно. Что вы думаете на счет DI Lazy (Lazier) для сервисов в wep api asp core проектах, есть мнение, что повсеместное использование ленивой загрузки может быть более накладно, чем без ленивой загрузки, могу предоставить ссылку на мнение. Хотелось бы увидеть от вас бенчмарк или мнение по этому поводу, спасибо.

unknown
Автор

Хорошее сравнение. Но каждому инструменту свою задачу) с радостью смотрю как мой коллега на го пытается сделать утилиту с формами и на десктоп которую я уже. Месяц назад как написал на шарпе)) но в вэб сервисах он пока впереди. Никаких тестов не делаем, просто скорость разработки у го выше в части случаев. Скорость! =качество)

minimalstory
Автор

1) По идее native AOT должен ещё немного улучшить показатели 7ки. 8я ещё больше продвинулась в этом направлении, но очень мешает reflection - мерзкий легаси :)
2) Где данные по использованию памяти?
3) Ещё большее внедрение source generators даст возможность отказываться от тормозного reflection

andrewbondaryuk
Автор

go на самом деле и привлекает иногда своим минимализмом (их отказ от абстракций в принципе понятен). Еще больше он привлекает отсутствием, если можно так сказать, "языкового легаси". Но там для каждого найдется своя бесячая штука:) Я от их обработок ошибок подгораю неимоверно. Вроде бы и понятно, что в такой реализации есть смысл, но блин как-то оно "леворезьбово".

ulitsa_Ilicha
Автор

правильная Gang of Four (4G):
Generators
Generics
Goroutines
Garbage Collector
)

viktoralferov
Автор

конкурентный квиксорт интересно увидеть в сравнении

recycle-bin-camp
Автор

асинк-авэйт впервые появились в f#. а не c#

naugad
Автор

Нужно ждать bun на винду, и ттгда нахер этот го нужег, если нода точно такая же по скрости как и го будет

esp
Автор

Не понимаю, как интерпретируемый язык может быть быстрее компилируемого 🤔. Это, наверное, в тех местах, где нет обращения к runtime-инфраструктуре и библиотекам

lofipolis
Автор

В го yield конечно же нет, там каналы :)
Основную проблему которую я испытываю при изучении гошки - шаблонность мышления после 5 лет работы на шарпах. Ищешь подобного, а его там нет :)
Начинатя от каналов, заканчивая iota.

andrewbondaryuk