LINUX.ORG.RU

почему голанг - это кул

 


1

3

Голенгу никогда не догнать сишечку, потому что в нём нельзя циклические зависимости. В Си можно, в Паскале можно. Это, наверное, самая плохая новость для меня за всё время его изучения.

★★★★★

Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от hbee

вот так и надо было делать с самого начала!!!
Go
я уже старый, 51 год

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

anonymous
()
Ответ на: комментарий от anonymous

Узнаю старый добрый лор :). Может, и в самом деле приближается старость, надоело копать сложности C++, хочется ясности. Go - это императивная ясность. А Haskell - функциональный кристалл :).

hbee ★★★★
()

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

hbee ★★★★
()
Ответ на: комментарий от dem

Нет, не только в лёгкости поставки дело. Пришло наконец осознание, что наследование реализации классов и исключения - зло, что вреда от них в реальных больших системах больше, чем пользы. Ну, и реализация CSP в Go сама по себе маленький шедевр.

hbee ★★★★
()

Опять? На lore уже давно нужен штатный, хороший, опытный, образованный, дипломированный, признанный, великолепный, непревзойдённый нарколог.

King_Carlo ★★★★★
()
Ответ на: комментарий от dem

Это огромная тема, обсуждалась, вероятно, даже на женских форумах :). Одно из соображений — исключения затрудняют анализ и отладку программ, так как создают дополнительные неочевидные пути исполнения. Неспроста Google в своё время запретил исключения в C++-проектах, а позднее создал exception-free language — Go!

hbee ★★★★
()
Ответ на: комментарий от hbee

Go - это императивная ясность

Go — это примитивизм и деградация.
Можно удивляться наскальным рисункам в пещерах, сделанным десять тысяч лет назад. Однако то же самое, сделанное современным «художником», мы справедливо назовём УГ.
Так и с Go. Форсить в 2019 году копипаст-ориентированный недоязык уровня творений 70-ых и по выразительности уступающий речи обезьян — пробивание IT-областью в целом, и гуглом с кодерками в частности, очередного дна.

anonymous
()
Ответ на: комментарий от hbee

Ничего себе, я сначала думал - это я написал. Только мне всего 45. Осталось только устроиться на работку за 120 тыр.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Поищи в блокчейне. Сейчас полно стартапов в этой области, и Go очень популярен там благодаря хорошим сетевым и криптографическим библиотекам.

hbee ★★★★
()
Ответ на: комментарий от hbee

Да да. ТЛС там в лок впадал пол года назад...

dem ★★
()
Ответ на: комментарий от vladimir_vist

По моему это вообще прорыв! Даже Python выглядит сложным по сравнению с Go.

vladimir_vist
()
Ответ на: комментарий от dem

Что есть похожего?

Ничего Го мертв.

Вы меня не так поняли. Го предоставляет те возможности, которых у других языков элементарно нет.

Kazun3500
()
Ответ на: комментарий от Kazun3500

Го предоставляет те возможности, которых у других языков элементарно нет.

Это какие?

Ну и дабы уточнить: речь идет о Go как о языке или как о всей экосистеме?

eao197 ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Например, если речь зайдет о легкости кросскомпиляции или о наличии какого-нибудь go fmt искаропки, то далеко не для всех проектов и команд это будет актуально. Тогда как возможности языка, в принципе, важны для всех программистов на данном языке.

eao197 ★★★★★
()

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

deterok ★★★★★
()
Ответ на: комментарий от eao197

Именно кросскомпиляция (о которой вы написали ниже), не требующая особых усилий от пользователя. В результате которой получается относительно легкое приложение. Кто еще так может?

Kazun3500
()
Ответ на: комментарий от hbee

надоело копать сложности

Вот. Если бы я на дядю решил поработать, то выбрал бы сейчас го однозначно. Но любить этот каменный топор, увольте. Хотя на фоне мейнстрима 90-х это конечно сказочная экосистема, не спорю.

anonymous
()
Ответ на: комментарий от Kazun3500

ты о кросс-компиляции под другой процессор?

ты хочешь сказать, что go как-то особенно облегчает компиляцию кода под другой процессор?

Кто еще так может?

что ты болтаешь-то, дурак?

C код кросс-компилируют соответствующими тулчейнами.

Java код вообще не требует никакой перекомпиляции, куда проще и удобней чем го. он еще и на другой ОС запросто может заработать без изменений.

Код на скриптовых языках вообще распространяют в виде исходников.

Amethyst777
()
Ответ на: комментарий от eao197

Не спорю, но иногда при наличии одних возможностей, можно пренебречь некоторыми минусами.

Kazun3500
()
Ответ на: комментарий от anonymous

Почему каменный топор? Не понимаю, почему все говорят о Go как о примитивном языке. Не потворствует наворачиванию бессмысленных многослойных абстракций — это да. Go вовсе не примитивен. Он позволяет культурно проектировать в ООП-стиле по заветам дяди Боба. Он позволяет строить изящные параллельные системы. Он позволяет благодаря первоклассным функциям программировать в декларативном стиле. В конце концов, Go обладает рантайм-рефлексией, что позволяет создавать мощные библиотеки (прямо сейчас пишу парсер на ANTLR4+Go, что возможно благодаря рефлексии).

hbee ★★★★
()
Ответ на: комментарий от hbee

Пришло наконец осознание, что наследование реализации классов и исключения - зло, что вреда от них в реальных больших системах больше, чем пользы.

Это верно, но как вы большие системы с такой слабой системой типов разрабатываете, тайна сия велика есть. Пока я слышал больше о микросервисах, но никак не о больших системах на голанге, который из себя представляет чуть продвинутый пхп, если отбросить маркетинговый шлак.

anonymous
()
Ответ на: комментарий от dem

Странно, что многочисленные оживлённые дискуссии (не люблю слово «срач»))) по поводу исключений прошли мимо тебя. Что здесь, на лоре, что на реддите, что на хабре, что на кывте, что на опеннете их было и есть в количестве. Потому что неоднозначная это технология, исключения.

Исключения стали популярны после появления их в C++, где они оказались необходимы для обработки ошибочного состояния в конструкторах (возвращаемого значения-то нет). Но потом, как обычно в C++, новую возможность начали использовать для всего и везде, доводя до абсурда. До какого чудовищного многословия исключения довели Джаву (слепо следующую за C++), и вспоминать не хочется :))). По прошествии времени оказалось, что исключения — лишь ещё один способ запутать простое :). В Go нет конструкторов (любая функция, возвращающая готовый объект, является конструктором, и ошибку можно вернуть как обычно), и не нужны исключения.

hbee ★★★★
()

Скорее всего разработчики go не ставили перед собой задачу - «Догнать и перегнать Америку».

Немножко сарказма.
Go ни когда не догонит Prolog.

anonymous
()
Ответ на: комментарий от Kazun3500

Именно кросскомпиляция (о которой вы написали ниже), не требующая особых усилий от пользователя.

Сначала придумали мантру «только компиляция в машкод!», потом героически решили эту проблему, и вот уже адепты ходят толпами и бормочут: у нас кросскомпиляция, а у других нет. Так у других и не было этой проблемы, васяны. И кросскомпиляция не гарантирует сама по себе легкую переносимость.

anonymous
()
Ответ на: комментарий от hbee

До какого чудовищного многословия исключения довели Джаву (слепо следующую за C++)

в java нет никакой проблемы с exceptions, там проблема checked exceptions. не путай.

Amethyst777
()
Ответ на: комментарий от anonymous

Почему слабые типы? Вполне себе сильная статическая типизация. Хочешь — делай через интерфейсы (если нужен полиморфизм), хочешь — тупо через структуры и именованные типы (к которым тоже можно приделать методы). Контроль при компиляции, как обычно.

hbee ★★★★
()
Ответ на: комментарий от Kazun3500

Поясню насчет переносимости. Вот тебе задача: нужно гуи-приложение под никсы, под винду и под мобилы. Ну-ка кросскомпилируй мне это быстренько.

anonymous
()
Ответ на: комментарий от hbee

Почему слабые типы? Вполне себе сильная статическая типизация.

До первого interface{}, а дальше полный аналог сишки. Только в сишке хоть макросы есть.

anonymous
()
Ответ на: комментарий от hbee

Исключения стали популярны после появления их в C++

Бред. Исключения доказали свою состоятельность еще до того, как их завезли в C++. Ada, SmallTalk и Eiffel тому наглядные подтверждения.

В Go нет конструкторов (любая функция, возвращающая готовый объект, является конструктором, и ошибку можно вернуть как обычно), и не нужны исключения.

А вы и Golang вполне нашли друг друга. Это, кстати, наглядный ответ всем тем, кто не понимает, почему Golang сейчас так восстребован в современном ИТ. Слишком много людей, для которых даже исключения — это «ещё один способ запутать простое».

Да, и таких будет с каждым днем все больше, пока ИТ-шный пузырь не лопнет. Так что дело Golang-а живет и процветает.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

Ну дык и не нужен interface{} в клиентском коде. Его иногда используют, когда хотят эмулировать генерики, но это зря. Генерики отлично получаются через библиотеки, например https://github.com/cheekybits/genny . Лучше, чем в C++ :).

hbee ★★★★
()
Ответ на: комментарий от anonymous

Ну ведь в пистоне, лиспе и JS и такого нет. И ничего. Система типов в голанге - что надо. Главное, нет ООП в стиле C++, от которого один вред. Уже за одно это голанг можно любить.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Amethyst777

Читал одну из этих книг, какую - не помню. Общий вывод примерно такой: идеальный метод состоит из нуля строк, получает ноль параметров и ничего не делает.

den73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

До первого interface{}, а дальше полный аналог сишки.

Не полный, т.к. interface{} всё же безопасен.

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

До этого язык был концептуально совершенным (может, я чего-то не заметил). Т.е. он не претендовал на то, чтобы хватать звёзд с неба, но сделанное в нём выглядело добротным. А тут вот такая вот недоделочка. Впрочем, если многословие в этом языке считается нормой, то и не так страшно.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от eao197

Это какие?

Запихать все в один бинарь с рантаймом и прочим БЕЗ ВАРИАНТОВ. Тут даже .NET нервно курит в стороне.

dem ★★
()
Ответ на: комментарий от hbee

Исключения стали популярны после появления их в C++, где они оказались необходимы для обработки ошибочного состояния в конструкторах (возвращаемого значения-то нет)

Нет. Ознакомимся с словарем https://ru.wiktionary.org/wiki/исключительный

В Go нет конструкторов (любая функция, возвращающая готовый объект, является конструктором

Вот тут вы мне взорвали мозг. Есть конструкторы или нет?

dem ★★
()
Ответ на: комментарий от hbee

Обалденно каждый раз кастуй дабл с лонгинт...

dem ★★
()
Ответ на: комментарий от eao197

Так что дело Golang-а живет и процветает.

Go мертв. Я давал ему 10 лет, но теперь не дам и 2-х лет... Все кто вложился в него потерпят «это фиаско братан»...

dem ★★
()
Ответ на: комментарий от anonymous

это тебе, как ни странно, в делфи. там просто добавляешь галку «андроид» или «аййпхон» и оно тебе собирает свою аппликуху под это все. Никаких танцев с бубнами

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.