Go разрабатывался с целью, чтобы код выглядел максимально и читался легко. Это так и есть, судя по личным ощущениям и отзывам различных компаний, которые не боятся показывать куски кода менеджерам и даже те понимают, что нельзя сказать про Ruby, одно время который пытались преподавать аж детям.
да еще и ни в одном серьезном проекте не засветился.
Facebook, Youtube, сервисы Яндекса для начала. Список можно расширить ещё большим количеством примеров и вообще дополнить китайскими проектами. Т.е. написанное вами неверно вроде той степени, в какой неверно моё утверждение про 4 страницы A4.
Сырой? Да что вы говорите, какой «решено в других языках»?.. Написано за вас — да, сторонних пакетов у того же Ruby может быть больше, но вы же сами отнесли пакеты в категорию «учебного материала для сотрудников», иной раз написать необходимую функциональность будет быстрее, чем прикрутить и настроить (и отладить) сторонний пакет.
Насчёт паттернов, деплоймента и быстродействия — всё расписано в том же Effective Go. Да, звучит чудно, что освоить язык можно по одной страничке и сразу в бой, но это так. В прекрасное время живём.
Разве что только поиск информации, как сделать ту или иную штуку в расте осложняется тем, что язык быстро меняется. Подчас находишь какие-то ответы, пробуешь их, а они не работают, потому-что оказывается буквально несколько недель назад в 1.1 этот метод переименовали и т. п. Столкнулся с этим на примере метода from_str(), который удалили из Rust 1.1.
Читал несколько раз, когда изучал язык, собственно про impact on GC там ничего не сказано, это меня и смущало. Только синтаксические особенности, косметические и совсем очевидное про тяжеловесов.
Указатели нужно применять с умом. В документации нет пояснения, когда разумнее использовать именно указатель, поэтому большинство использует их по-умолчанию для консистентности сигнатур методов.
Как только программист натыкается на GC, то начинаются оптимизиации, но это всё в соответствии с задачами, которые решаются.
В реальном мире паника встречается редко, а обработка ошибок в подавляющем большинстве случаев это log.Println или log.Fatalln, не считая проброса ошибки наверх — return err.
В Go нет исключений, все ошибки обрабатываются в штатном режиме. Паника случается лишь из-за ошибки программиста, например nil разыменован или не проверили границы массива.
Как правило код, отвечающий за чистое завершение прост и не может выкинуть панику. Checked предназначен чтобы накрыть собой всё, так как-где то в глубине, при вызове 3rd party пакета, который вызовет другой 3rd party пакет, может произойти panic из-за чьей-то криворукости.
Насчёт паттернов, деплоймента и быстродействия — всё расписано в том же Effective Go. Да, звучит чудно, что освоить язык можно по одной страничке и сразу в бой, но это так. В прекрасное время живём.
+ https://en.wikipedia.org/wiki/Go_(programming_language)#Language_design
Как только программист натыкается на GC, то начинаются оптимизиации, но это всё в соответствии с задачами, которые решаются.
Поправлю, чтобы не сбивать никого с толку.
Как правило код, отвечающий за чистое завершение прост и не может выкинуть панику. Checked предназначен чтобы накрыть собой всё, так как-где то в глубине, при вызове 3rd party пакета, который вызовет другой 3rd party пакет, может произойти panic из-за чьей-то криворукости.
Хитро, хитро.
Do intersect? Или я не понял иронии…