170 похожих чатов

Всем привет, есть у кого нить адекватные сравнения golang/Java по

разным параметрам или из опыта поделитесь почему от Java отказались в сторону golang?

14 ответов

16 просмотров

C#(java) to golang проще и быстрее

Ну там джит, в джаве все тормозит, + на этих языках часто горпоротивщину клепут, и не всем это интересно

Я могу рассказать, почему мы мигрировали backend web services c .net core на go, если интересно. Но проект не слишком большой, в район мегабайта исходников.

Andrey-Grazhdankov Автор вопроса
Igor Shekalev
Я могу рассказать, почему мы мигрировали backend w...

Конечно интересно, любой опыт/причины важны

Andrey Grazhdankov
Конечно интересно, любой опыт/причины важны

Если кратенько, то вот так: 1. У нас были дикие проблемы с deploy. Поставка не в контейнерах и в один каталог надо было складывать несколько executables, у .net с этим много сложностей, в зависимости от типа проекта нужны разные dll разных версий - бардак был перманентный. При этом на весну прошлого года single executable у них работал через раз, что-то отваливалось и падало. 2. При обновлении visual studio под капотом меняется минорная версия и самого framework, за этим надо было внимательно следить. 3. Нам хотелось больше контроля с минимумом магии. Например, в Go у нас кастомный роутер и еще кое-что, в .net core оно все из коробки и прикрутка нестандартных поведений выглядит очень магически - невнятные опции в конфигах. 4. Управление многопоточностью (как минимум в лайтовом варианте) в go нагляднее и проще, чем в C#. Да и в целом многое сделано проще и логичнее, хоть и требует больше работы. 5. Быстрая компиляция и, как следствие, очень интересный tooling. Скажем, работать с тестами стало комфортнее во много раз. Из минусов. 1. VS code после полноценной VS - шаг назад, на привыкание ушли недели. 2. Go синтаксически очень убог после C# - от отсутствия простейших тернарных операторов до невозможности ограничения доступа на поля типов (protected, private и вот это все). Без параметров по умолчанию и перегрузки имен функций в начале было тоскливо до крайности.

Igor Shekalev
Если кратенько, то вот так: 1. У нас были дикие пр...

а вы прям переходили с одного на другое? не хотите осенью на конфе рассказать подробнее?

Daniel Podolsky
а вы прям переходили с одного на другое? не хотит...

Да, версия типа 3 была на .net, а 4 уже на go. Какое-то время watchdog на go работал и со старым и с новым комплектом. А когда функциональность выровнялась - старый код остановили. Я даже отрасль не могу разглашать, не говоря уде про название компании.

Igor Shekalev
Да, версия типа 3 была на .net, а 4 уже на go. Как...

а нас не столько отрасль и название интересует 🙂

Igor Shekalev
Да, версия типа 3 была на .net, а 4 уже на go. Как...

в общем, если хотите - можно попробовать поработать, сделать доклад без того, что под NDA, но с техническими подробностями врядли они так уж привязаны к предметной области (без разглашения имени компании, конечно, бенефиты именно для компании будут минимальны)

Daniel Podolsky
а нас не столько отрасль и название интересует 🙂

Да в том-то и дело, что технические подробности - это следствие того, кем, для чего и как оно эксплуатируется. Иначе будет звучать как "мы приняли вот такие технически решения, но о причинах рассказать не можем". Я сам такие доклады очень не люблю.

Igor Shekalev
Да в том-то и дело, что технические подробности - ...

если придумаете, зачем бы оно было вам надо - приходите, дадим вам куратора из ПК, и сделаем хороший доклад

Igor Shekalev
Если кратенько, то вот так: 1. У нас были дикие пр...

Параметры по умолчанию есть, через кучу методов ты можешь получить перегрузку функции.

🎄 Doe
Параметры по умолчанию есть, через кучу методов ты...

А можно примеры какие-то? И, пожалуйста, без передачи args... interface{} - типизацию надо бы сохранить.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта