LINUX.ORG.RU
ФорумTalks

Я расслаблен, когда занимаюсь кодингом на Go

 , ,


0

1

На реддите появилась забавная заметка с таким заглавием: «Coding in golang relaxes me».

А и в самом деле. Нет чувства, что ты борешься с языком, ты просто «выращиваешь» решение задачи. Go помогает в решении, ориентируя мысль сразу в нужном направлении. Он поощряет маленькие функции, даёт свободу в структурировании файлов проекта (не дай божок в Питоне создать файл с таким же именем, как модуль в stdlib! Или в Джаве каждый класс, сучара, должен жить обязательно в отдельном файле!). Казалось бы, это всё мелочи, но в итоге разработка на Go оказывается весьма приятным и «отдыхательным» занятием.

Конкурентность тоже привносит много просветления. Она даётся настолько просто и естественно, что почти все решения становятся необыкновенно простыми в сравнении с традиционными многопоточными техниками.

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

Да пиши на здоровье, просто у тебя API, в зависимости от языка, может быть построено вокруг чего угодно из бóльшей части того, что я перечислил. Ты преспокойнейше вместо выброса исключения можешь принимать коллбэки, возвращать Future, выплёвывать Observable, да что угодно — выбери в зависимости от юзкейса из тех, что ты выше описал. Если ты, конечно, не пишешь библиотеку для всего, с прицелом на то, что она будет использоваться везде.

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

1) В Го эксепшнов нет

2) Да я пишу универсальную библиотеку.

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

Это идиоматический Go. Не нравится — есть широкий выбор других языков.
Нет чувства, что ты борешься с языком, ты просто «выращиваешь» решение задачи

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

Значит, обрабатывать её бессмысленно. Let it crash.

Ну здрасьте, а хотя бы в лог записать? А если это управление автомобилем, где вы за рулём? Из-за нехватки памяти для какой-нибудь гуевины, пусть отвалится весь функционал, включая базовый? Let it crash, да?

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

Ну здрасьте, а хотя бы в лог записать? А если это управление автомобилем, где вы за рулём? Из-за нехватки памяти для какой-нибудь гуевины, пусть отвалится весь функционал, включая базовый? Let it crash, да?

ну здрасьте, ну до свиданья.

Что за абсурд, где гарантия что даже руль будет крутиться, если у нас память закончилась. Так что да, пусть это let it crash и управление перейдет к водителю полностью. Как ты вобще собираешься решить вопрос нехватки памяти внутри приложения. Все приложухи сыпятся, видимо слишком тупые, к некоторым OOM приходит, ты видимо секрет знаешь, так почему с миром не поделишься.

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

где гарантия что даже руль будет крутиться, если у нас память закончилась

вот и я спрашиваю

Как ты вобще собираешься решить вопрос нехватки памяти внутри приложения

элементарно: выделяется заранее минимально необходимый пул памяти

Все приложухи сыпятся

это какие? в основном, в случае нехватки памяти просто виснут, либо даже могут продемонстрировать какой-то функционал

next_time ★★★★★
()

Или в Джаве каждый класс, сучара, должен жить обязательно в отдельном файле!

Нет.

orm-i-auga ★★★★★
()
Ответ на: комментарий от next_time

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

Чего это? Кому нужны исключения, тот борется, да. Посмотри темы demа, он там такого наворотил, пытаясь использовать panic/recover как throw/try/catch :).

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

Слава разуму.

Но вообще, я в шоке, что Грисемер оказался таким тупым. О какой чистоте вообще можно говорить, когда он предлагал по сути заменить explicit control flow на implicit? Да ещё и с паниками сравнил. Предлагал бы сразу исключения добавить, чо уж. Это в сущности мало отличается от checked exceptions, только без соответствующих операторов это гораздо менее читаемо и более упорото. Ему ведь даже примеры показали, которые наглядно доказывают уровень тупняка:

fn := func(n int) (int, error) { ... }
return try(func() (int, error) { 
    mu.Lock()
    defer mu.Unlock()
    return try(try(fn(111111)) + try(fn(101010)) + try(func() (int, error) {
       // yea...
    })(2))
}(try(fn(1)))
WitcherGeralt ★★
()
Ответ на: комментарий от hbee

Кому нужны исключения, тот борется, да.
Нет чувства, что ты борешься с языком

В исходном сообщении попытка говорить за всех. К слову, в оригинальной статье, судя по всему, такой попытки нет: Coding in golang relaxes me.

next_time ★★★★★
()
28 сентября 2019 г.

10 лет опыта на Ruby, полтора года - на Go.

Go знаю посредственно, но на нём задачи решаю быстрее и легче, чем на Ruby.

Можно было бы предложить что за столько лет научился писать код и потому с Go легко, но нет, даже сегодня Ruby считаю неудачным языком.

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

Для решения такой проблемы нужно а) изолировать подсистемы, б) проработать api между подсистемами. Тогда каждая подсистема будет знать как реагировать на ошибки нижестоящей.

Ни язык, ни фреймворк не продумают за тебя как организовать программу.

lochness
()

Я расслаблен, когда занимаюсь кодингом на Go

Я самая обаятельная и привлекательная, я очень люблю людей и когда я программирую на GO мне не хочется всех зарубить топором, — нееет, не хочется никого зарубить топором, не хочется, я контролирую свои мысли и совершенно не чувствую гнев и откладываю свой топор до лучших времён.

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

Классный язык, где директивы компилятора и другие вещи типа кода-генератора задаются в комментах. И вообще, зачем нужен генератор кода, если язык такой классный? Примитив!

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

Какая в Go свобода? Язык задумывался, чтобы этой свободы было как можно меньше. Сам Пайк сказал, что Go был сделан с оглядкой на тупых студентов, которых Гугл набирает тысячами. Они нифига не знают, про то как надо правильно программировать, и поэтому их надо загнать в жесткие рамки, чтобы они не могли себя покалечить.

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

10 лет опыта на Ruby, полтора года - на Go. Go знаю посредственно, но на нём задачи решаю быстрее и легче, чем на Ruby ... даже сегодня Ruby считаю неудачным языком

Это прекрасно. 10 лет человек себя мучил рубями пока наконец новая волна хайпа его не смыла куда надо (а надо было в пхп).

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