Мне интересно, а к Авито тут какие претензии? Что сами таких не находят и не банят? Так банят, а потом вой стоит на весь пикабу: душегубы-корпораты единственного бизнеса лишают.
Ой, как нехорошо. Я бы, конечно, поинтересовался на чём вы пишете свои проекты, но кажется, что корень проблемы в противопоставлении "коммерческий проект" и "персональные проекты". В своём проекте для вас в любом случае всё будет понятно и очевидно - мне даже неловко это проговаривать, если честно. Все взрослые люди, а у вас получается какие-то детские обиды: "меня заставляют писать на Go, поэтому Go - плохой". Давайте не будем так.
если есть хоть один "подводный камень", значит никакой простоты уже нет
Ахаха. Ну тогда ни один язык не может называться простым, очевидно. Разве что ассемблер, но как-то реализовывать на нём бизнес-логику не тянет.
На мой взгляд это сложный вопрос, который будет упираться в субъективное воспритие
Естественно. Субъективное восприятие большого количества разработчиков, которые перешли на Go с другого языка, а следовательно могут субъективно сравнить.
широко рекламируемая "простота" Go обманчива и там тоже есть свои подводные камни, как и в других языках.
Естественно. Ваше мышление не может на 100% совпадать с мышлением Роба Пайка. Однако так ли велико количество и "глубина" этих подводных камней в сравнении с другими языками?
BTW, я выше уже отвечал собеседнику, что под простотой Go чаще рекламируют простоту синтаксиса. Притом чаще простоту чтения, а не написания: все эти бесконечные if err != nil нужны для очевидности, не для удобства. То, что язык всё равно требует изучения, чтобы на нём грамотно писать - мысль само собой разумеющаяся.
В любом языке есть вещи, которые нужно просто знать. Потому что на определённом уровне погружения в язык заканчивается "common sense" и начинается фантазия разработчиков. И вероятность того, что это фантазия будет совпадать с вашей, стремится к нулю. Субъективное удобство пользования языком зависит от того, насколько глубоко эти вещи совпадают. Так работает наше мышление, отдельные языки тут не причём.
Вы же, надеюсь, не хотите своими примерами убедить меня в том, что C# вам кажется интуитивнее, потому что его вы выучили первым?
что будет если прочитать/записать в закрытый канал, а если в nil
Это просто надо знать)
Дело в том, что это слишком специфичные вещи, чтобы в массовом сознании для них сформировался какой-то там "интуитивный подход". Вы же наверняка мне хотите сказать, что вот в языке N это происходит по-другому, и эта реализация вам кажется более интуитивной, верно? Только, скорее всего, когда вы знакомились с языком N, вы не задумывались о том, что интуитивно, а что нет, вы просто учили как это работает.
Пример 1: вы отложили Println, который инициализировался в моменте. Это ожидаемое поведение, ИМХО.
Пример 2: да, больно. Но вы изначально допустили магию в виде interface{}. В языке со строгой типизацией интуитивно понятно, что пустой интерфейс будет вести себя непредсказуемо. Какая практическая задача может стоять за таким кодом? Надеюсь, не парсинг JSON же?
Контекст решает. Ваши знакомые линуксоиды наверняка говорят о своём уютном домашнем десктопе. Если прямо спросить о том, что поставить на условный сервер или на рабочую машину какому-нибудь среднему юзеру, то immutable-дистры, внезапно, окажутся на первом месте. Потому что себе хочется всех свежих обнов и поскорее, а для работы важна стабильность.
30-40% "мусора" в виде проверок err после чуть ли не каждой функции
Более того, аж целый errgroup есть, чтобы проверять ошибки из параллельных потоков)
Всё так: очевидность в ущерб краткости.
Да ещё и обработка такая, как пыль протёр для видимости, чтоб мама не ругалась
Так обработка по большому счёту нужна только на верхнем слое, а задача всех остальных - прокинуть ошибку выше. Можно добавить что-то от себя, чтобы по тексту ошибки можно было сразу стек определить, а можно и не добавлять, чтобы не мусорить - всё равно есть stack trace.
Мне интересно, а к Авито тут какие претензии? Что сами таких не находят и не банят? Так банят, а потом вой стоит на весь пикабу: душегубы-корпораты единственного бизнеса лишают.
Я удивлён, что у этого комментария есть плюс. Кто-то смог продраться через этот поток сознания?
Вас порвало чуть раньше, потому что вы перешли вместо обсуждения конкретных аргументов к откровенной демагогии.
Это уже не располагает к серьёзной дискуссии. Тон-то вы сохранили, а вот качество аргументов у вас куда-то делось.
Если честно уже после этого "аргумента" надо было прекращать с вами пустословить:
Сами для себя изобрели систему ценностей и всех по ней классифицировали. Ну поздравляю, а нас это как должно волновать?
А это вообще что? Классификация разработчиков по языкам программирования? Элитаризм так и прёт и скрывать не получается?
Ой, как нехорошо.
Я бы, конечно, поинтересовался на чём вы пишете свои проекты, но кажется, что корень проблемы в противопоставлении "коммерческий проект" и "персональные проекты". В своём проекте для вас в любом случае всё будет понятно и очевидно - мне даже неловко это проговаривать, если честно. Все взрослые люди, а у вас получается какие-то детские обиды: "меня заставляют писать на Go, поэтому Go - плохой".
Давайте не будем так.
Эко вас порвало, когда вам по существу ответили, а не нейтрально, как я)
Вам чем-то лично гошники насолили? Может, кто жену увёл или работу?
Спасибо. Это буквально мысль, которую я хотел донести.
Это как? Двойная комиссия?
Искренне интересуюсь: давно уже ничего не покупал / не продавал.
Ну, это наброс. Даже прокомментировать толком нечего. Не любите Go - так и скажите.
Кажется, у вас какой-то фетиш на помойки: что Яндекс, что ВК, теперь и Авито)
А про Хабр что думаете?
Заметьте, это буквально подтверждает то, что я написал выше: Go проще читать, не писать на нём.
Но я соглашусь, что если Go рекламируют как "простой во всём язык" - это неверно.
Ахаха. Ну тогда ни один язык не может называться простым, очевидно. Разве что ассемблер, но как-то реализовывать на нём бизнес-логику не тянет.
Естественно. Субъективное восприятие большого количества разработчиков, которые перешли на Go с другого языка, а следовательно могут субъективно сравнить.
Естественно. Ваше мышление не может на 100% совпадать с мышлением Роба Пайка. Однако так ли велико количество и "глубина" этих подводных камней в сравнении с другими языками?
BTW, я выше уже отвечал собеседнику, что под простотой Go чаще рекламируют простоту синтаксиса. Притом чаще простоту чтения, а не написания: все эти бесконечные
if err != nil
нужны для очевидности, не для удобства. То, что язык всё равно требует изучения, чтобы на нём грамотно писать - мысль само собой разумеющаяся.В любом языке есть вещи, которые нужно просто знать. Потому что на определённом уровне погружения в язык заканчивается "common sense" и начинается фантазия разработчиков. И вероятность того, что это фантазия будет совпадать с вашей, стремится к нулю. Субъективное удобство пользования языком зависит от того, насколько глубоко эти вещи совпадают. Так работает наше мышление, отдельные языки тут не причём.
Вы же, надеюсь, не хотите своими примерами убедить меня в том, что C# вам кажется интуитивнее, потому что его вы выучили первым?
Это просто надо знать)
Дело в том, что это слишком специфичные вещи, чтобы в массовом сознании для них сформировался какой-то там "интуитивный подход". Вы же наверняка мне хотите сказать, что вот в языке N это происходит по-другому, и эта реализация вам кажется более интуитивной, верно? Только, скорее всего, когда вы знакомились с языком N, вы не задумывались о том, что интуитивно, а что нет, вы просто учили как это работает.
Пример 1: вы отложили
Println
, который инициализировался в моменте. Это ожидаемое поведение, ИМХО.Пример 2: да, больно. Но вы изначально допустили магию в виде
interface{}
. В языке со строгой типизацией интуитивно понятно, что пустой интерфейс будет вести себя непредсказуемо. Какая практическая задача может стоять за таким кодом? Надеюсь, не парсинг JSON же?А вот, тот же самый баг того же продукта оперативно обнаружили и всем рассказали. А поинт ваш в чём?
Контекст решает. Ваши знакомые линуксоиды наверняка говорят о своём уютном домашнем десктопе. Если прямо спросить о том, что поставить на условный сервер или на рабочую машину какому-нибудь среднему юзеру, то immutable-дистры, внезапно, окажутся на первом месте. Потому что себе хочется всех свежих обнов и поскорее, а для работы важна стабильность.
Интересно, что случилось с вашим собеседником. Неужели, альфа-добытчики карму слили?
Ну Go продвигает аж сам Google. Неиронично тяжело с таким состязаться в маркетинге. Практически невозможно)
Более того, аж целый errgroup есть, чтобы проверять ошибки из параллельных потоков)
Всё так: очевидность в ущерб краткости.
Так обработка по большому счёту нужна только на верхнем слое, а задача всех остальных - прокинуть ошибку выше. Можно добавить что-то от себя, чтобы по тексту ошибки можно было сразу стек определить, а можно и не добавлять, чтобы не мусорить - всё равно есть stack trace.
Есть самопровозглашённый гайд от Uber и во многих компаниях он, в принципе, считается стандартом.