Язык Go - слабые стороны
От: Shmj Ниоткуда  
Дата: 14.02.22 21:44
Оценка:
Вот, кстати, что на счет Go?

Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
Re: Язык Go - слабые стороны
От: ononim  
Дата: 14.02.22 21:47
Оценка: +3
S>Вот, кстати, что на счет Go?
S>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
Хреновая поддержка динамических библиотек. Ее фактически нет.
Ну и наличие GC как бы намекает, что это совершенно другая ниша. Впрочем, имеющая пересечения с исторической нишей С/С++ в плане написания командлайновых полезняшек.
Как много веселых ребят, и все делают велосипед...
Re: Язык Go - слабые стороны
От: Hobbes Россия  
Дата: 14.02.22 22:01
Оценка: +2
Здравствуйте, Shmj, Вы писали:

S>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?


Укуренная система типов. Слабые средства метапрограммирования, отсутствие статического полиморфизма. Набор библиотек слабоват.

Парадигма обработки ошибок приводит к бойлерплейту. В целом, средства абстракции слабоваты, например итераторов — нет, и никак не сделать.

Моё резюме: берите го, если вам позарез нужны горутины. В остальных случаях не рекомендую. Да и в том же C++ тоже есть корутины, только с более мудрёным синтаксисом, явной передачей контекста и т. д., короче в го корутины реально удобнее.
Re: Язык Go - слабые стороны
От: ArtDenis Россия  
Дата: 15.02.22 06:31
Оценка: :))) :))
Здравствуйте, Shmj, Вы писали:

S>Вот, кстати, что на счет Go?


Го выбирают из-за:
1) поддержки очень крупной компанией,
2) поддержки очень крупной компанией,
3) поддержки очень крупной компанией,
4) киллер-фич и комьюнити

Первые три пункта перечёркивают его любые слабые стороны
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 09:45
Оценка: +1 :))) :))) :)
Здравствуйте, Shmj, Вы писали:

S>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?


Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.
Re[2]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 09:47
Оценка:
Здравствуйте, Hobbes, Вы писали:

H>Моё резюме: берите го, если вам позарез нужны горутины. В остальных случаях не рекомендую. Да и в том же C++ тоже есть корутины, только с более мудрёным синтаксисом, явной передачей контекста и т. д., короче в го корутины реально удобнее.


Ну, на самом деле, Go как раз позиционируется именно как язык, в котором нет и никогда не будет всех этих крутых и совершенно непостижимых фич, которыми столь славен C++.
Re[2]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 09:49
Оценка:
Здравствуйте, ononim, Вы писали:

S>>Вот, кстати, что на счет Go?

S>>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
O>Хреновая поддержка динамических библиотек. Ее фактически нет.

Ее нет в том смысле, что невозможно написать динамическую библиотеку на Go. Но динамические библиотеки, написанные на других языках, с сишными соглашениями о вызовах, из Go без проблем можно использовать.
Re[3]: Язык Go - слабые стороны
От: ononim  
Дата: 15.02.22 10:10
Оценка:
S>>>Вот, кстати, что на счет Go?
S>>>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
O>>Хреновая поддержка динамических библиотек. Ее фактически нет.
Pzz>Ее нет в том смысле, что невозможно написать динамическую библиотеку на Go. Но динамические библиотеки, написанные на других языках, с сишными соглашениями о вызовах, из Go без проблем можно использовать.
Да даже написать вроде можно, но толку с нее мало — она не может взаимодействовать с другими библиотеками как го-шная библиотеке.
В плюсах нет никаких проблем дергать другие библиотеки написанные на плюсах за классы. Надо только проявлять некоторую осторожность, но для плюсовика — осторожность — норма жизни Неосторожные плюсовики, как неосторожные саперы — рано выбывают из профессии.
Как много веселых ребят, и все делают велосипед...
Отредактировано 15.02.2022 10:12 ononim . Предыдущая версия .
Re[2]: Язык Go - слабые стороны
От: ononim  
Дата: 15.02.22 10:16
Оценка: :))) :)))
S>>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
Pzz>Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.
Девок QAщиц?
Как много веселых ребят, и все делают велосипед...
Re[2]: Язык Go - слабые стороны
От: smeeld  
Дата: 15.02.22 10:29
Оценка:
Здравствуйте, Pzz, Вы писали:


Pzz>Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.


Учитывая текущую востребованность гошников в РФ, большие чем у плюсовиков зрплт (смотрим на вакансии), и меньший средний возраст гошников (все хипстеры из маилрушки и яндекса), то скорее всё совсем наоборот.
Re: Язык Go - слабые стороны
От: vsb Казахстан  
Дата: 15.02.22 10:39
Оценка: +1 -1
Лично для меня у Go самая фатальная проблема это система обработки ошибок. Я считаю, что исключения в сто раз лучше, чем то, что сделали в Go.

В остальном язык классный.
Re[2]: Язык Go - слабые стороны
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.02.22 10:40
Оценка: +2
Здравствуйте, ononim, Вы писали:

o> Хреновая поддержка динамических библиотек. Ее фактически нет.


А зачем? Для ниши go монобинарь удобнее (в деплое и поддержке).
Re[3]: Язык Go - слабые стороны
От: ononim  
Дата: 15.02.22 10:55
Оценка:
o>> Хреновая поддержка динамических библиотек. Ее фактически нет.
AB>А зачем? Для ниши go монобинарь удобнее (в деплое и поддержке).
см изначальный вопрос
Как много веселых ребят, и все делают велосипед...
Re[4]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 11:02
Оценка:
Здравствуйте, ononim, Вы писали:

Pzz>>Ее нет в том смысле, что невозможно написать динамическую библиотеку на Go. Но динамические библиотеки, написанные на других языках, с сишными соглашениями о вызовах, из Go без проблем можно использовать.

O>Да даже написать вроде можно, но толку с нее мало — она не может взаимодействовать с другими библиотеками как го-шная библиотеке.
O>В плюсах нет никаких проблем дергать другие библиотеки написанные на плюсах за классы. Надо только проявлять некоторую осторожность, но для плюсовика — осторожность — норма жизни Неосторожные плюсовики, как неосторожные саперы — рано выбывают из профессии.

Хуже, что в Go два рантайма не могут ужиться в одном процессе. Технически-то динамическую библиотеку сделать можно. А потом начинается: загрузили ее из программы на C/C++, все хорошо. Загрузили две таких разных библиотеки, поперли странные глюки, причем разные на разных системах. Загрузили из программы на Go библиотеку на Go, опять беда.

Выселить рантайм в отдельную динамическую библиотеку тоже не получится, потому, что все модули, написанные на Go, должны быть скомпилированы одной и той же версией компилятора, и рантайм должен быть от него. Иначе никто ничего не гарантирует.

Ну и что до осторожности, местами видно, что Go делали не какие-то питонисты в пиджаке галстуке, а кондовые хакеры-чернокнижники с длинными немытыми волосами и в вонючем свитере (Пайк на вид не такой, но он притворяется). И если делать на Go сложные вещи, а иногда и простые, то можно нарваться.
Re[2]: Язык Go - слабые стороны
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 15.02.22 11:03
Оценка: +2
Здравствуйте, vsb, Вы писали:

vsb>Лично для меня у Go самая фатальная проблема это система обработки ошибок. Я считаю, что исключения в сто раз лучше, чем то, что сделали в Go.


В то же время подход с явной обработкой не выходит боком фактически никогда, в отличие от исключений, который крайне легко забыть, или не верно обработать.
Re[3]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 11:09
Оценка:
Здравствуйте, smeeld, Вы писали:

Pzz>>Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.


S>Учитывая текущую востребованность гошников в РФ, большие чем у плюсовиков зрплт (смотрим на вакансии), и меньший средний возраст гошников (все хипстеры из маилрушки и яндекса), то скорее всё совсем наоборот.


Пайк задумывал Go как C 2.0. Как язык для настоящих мужчин, но без недостатков C, и с достоинствами Алефа и Лимбо и с современным синтаксическим стилем, без всех этих ненужных скобочек после if'а. Но все мы знаем, что программировать на Go побежали в основном не небритые сишники, а молодые и прыщавые программисты на Питоне, не способные освоить даже JavaScript.
Re[3]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 11:10
Оценка: +2 :))) :)
Здравствуйте, ononim, Вы писали:

S>>>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?

Pzz>>Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.
O>Девок QAщиц?

Да есть ли разница? Или ты программировать с ними собрался?
Re[2]: Язык Go - слабые стороны
От: Pzz Россия https://github.com/alexpevzner
Дата: 15.02.22 11:20
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Лично для меня у Go самая фатальная проблема это система обработки ошибок. Я считаю, что исключения в сто раз лучше, чем то, что сделали в Go.


Подход, принятый в Go, превращает обработку ошибок из сложной вещи в трудную вещь. На мой взгляд, это — достоинство.
Re[4]: Язык Go - слабые стороны
От: ononim  
Дата: 15.02.22 11:33
Оценка: +1 :)
S>>>>Из коробки компилится под множество платформ. Какие минусы в сравнении с тем же C++?
Pzz>>>Ну, фраза "я программист на C++" заставляет девок покраснеть и дышать чаще, а то же самое про Go заставляет их лишь пожать плечами.
O>>Девок QAщиц?
Pzz>Да есть ли разница? Или ты программировать с ними собрался?
Девка QAщица, узнав что ты С++сник — может внезапно достать изза пазухи десятидюймовый pentesting tool.
Как много веселых ребят, и все делают велосипед...
Отредактировано 15.02.2022 11:35 ononim . Предыдущая версия .
Re[3]: Язык Go - слабые стороны
От: vsb Казахстан  
Дата: 15.02.22 11:42
Оценка: 1 (1) +11 -2
Здравствуйте, kaa.python, Вы писали:

vsb>>Лично для меня у Go самая фатальная проблема это система обработки ошибок. Я считаю, что исключения в сто раз лучше, чем то, что сделали в Go.


KP>В то же время подход с явной обработкой не выходит боком фактически никогда


Подход с явной обработкой выходит боком практически всегда. Ошибку либо тупо прокидывают вверх, теряя стектрейс, либо игнорируют, либо пытаются обрабатывать на месте (очень часто с багами, т.к. этот сценарий никогда не тестируют).

> в отличие от исключений, который крайне легко забыть, или не верно обработать.


Никогда у меня не было проблем с исключениями. Если про исключение забыл, значит сценарий не отрабатывает, в логах появляются страшные сообщения, идёшь и фиксишь код, никаких последствий. А чаще всего всё просто работает как ожидается — исключение вылетает наверх, где-нибудь там сверху ловится и всё.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.