LINUX.ORG.RU

Почему Go это плохо, и он вам, на самом деле, не нужен.

 ,


7

15

Давайте я вам поясню про язык Go, откуда у него растут корни, и почему его на самом деле не стоит использовать. То что напишу ниже, это взято как из инсайдерской информации, так и из материалов, доступных в интернетах.

Дело в том, что Go это, на самом деле, «решение» внутренних гугловских проблем. Но отнюдь не проблем горизонтального масштабирования серверного ПО, как многие почему-то думают. Он приспособлен специально для использования в гугле вот в каком контексте.

Гугл нанимает большое количество тупых студентов, только-только после вуза или ПТУ, и заставлять их писать хоть какой-то простой код. И делать минимум ошибок, при этом. Для этого Go сделан таким тупым и упрощенным. И выкинут в паблик он только для того, чтобы вероятность, что у такого студента, только пришедшего в гугл, было хоть какое-то знание Go, была выше нуля.

Но дело вот в чем. В гугле, на самом деле, над каждой командой гошников стоит тимлид, или целая группа, который/которая вот этим взаимозаменяемым роботам-гошникам расписывает всю систему, чуть ли не вплоть до состояния конечного автомата, до if-ов, и показывает куда и что писать. Поэтому же Go на корню режет всю креативность, поэтому там нет практически никаких средств абстракции, и поэтому он не дает делать вообще ничего сложного. Дабы программисты на нем вообще ничего лишнего не думали, а кодировали все чуть ли не побуквенно по указаниям умных людей.

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

Тут возникает вопрос - а почему этому тимлиду не дать в руки кодогенератор, вместо всей этой accidental complexity, возникающей из-за огромного количества строк кода, и из-за затрат на коммуникацию?

А тут надо понимать, как внутри устроены огромные корпорации типа гугла.

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

Естественно, это все отражается на качестве продуктов, и это видно как по полному прекращению инноваций в гугле, так и по постоянно мелькающим и закрывающимся высерам этой компании - hangouts, duo, google plus, google wave, и прочее и прочее, можете еще вспомнить много чего.

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

Никакой мифической простоты в отладке и в понимании кода Go не приносит. Да и сложность программных систем растет совершенно не из-за понятности/непонятности какой-то отдельной взятой строчки кода или функции. Потому, что, во-первых, понятность это понятие субъективное, во-вторых потому, что, отдельно взятая фунцкия на 5 строк понятна любому опытному программисту, будь она написана хоть на Rust, хоть на Common Lisp.

Сложность программных систем возникает из-за их размера. И Go эту проблему значительно ухудшает. Человек не может удерживать в голове слишком много вещей, даже если каждая отдельная вещь - очень простая. Количество RAM в голове ограничено.

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

★★

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

Golang по дефолту тащит пакеты через прокси-сервер гугла. Что там не прибито?

завел свои афины и не паришься

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

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

В IT - сплошь и рядом.

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

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

так, понятно, ты близко к другим отраслям не подходил вообще никогда

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

Если вкратце… ерлангговский сетевой стек - это наслоение легаси.

Начнем с простого - строки в ерланге это списки. Буквально, списки символов. И кодируются они в etf как списки, посимвольно. Плюс сама реализация etf мягко говоря неэффективная.

Фрагментация пакетов - ее добавили буквально года 3 назад. При этом склеивание фрагментов они делают не в сетевом стеке, а внутри beam машины. Дичь, конечно, но это было обусловлено сложностью их реализации сетевого стека, который, как я уже говорил, слоеный пирог легаси. Может сейчас что-то изменилось, но слабо верю. Разработка ерланга сейчас- это в действительности поддержание штанов, а не развитие. Я уже молчу про то, что эта фича должна была появиться лет 15-20 назад, а не 3 года назад.

Dist протокол до сих пор утилизирует только одно tcp соединение.

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

Там еще много других родовых травм, все не припомню сейчас. Но вот еще вспомнил - они сделали классную фичу - алиасы. Но в действительности они ее используют как костыль для синхронных call запросов. Прям реально как костыль. А ведь могли раскрыть потенциал идеи алиасов по максимуму.

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

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

Нет, это не так работает. Бизнес обсуждает стек/архитектуру/штат со своим CTO и опирается в выборе в первую очередь на эффективность, и в этом анализе учитывается и рынок труда и время доставки фич до пользователя, и скорость проверки гипотез, и затраты на мейнтененс etc.

Это в сферическом идеальном мире в вакууме. На практике делается все известно как. Я в этой отрасли уже 15 лет, не надо мне сказки рассказывать.

Другой вопрос что завязываться на сегмент каких-то мифических «умных» - это не масштабируется

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

Здесь я имел в виду затраты на вход.

На какой вход? Куда и кому? Херли там входить вообще? Дотнетчиков на рынке толпа, это раз. Два - если их случайно вдруг нет, берутся джависты, которые за неделю пересаживаются на дотнет.

Это у го с документацией все в порядке, шарп - это ад сатаны.

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

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

Отлично, аргументы уровня «а вот сын маминой подруги рассказывал как однажды в штаны насрал…».

Ну не рассказывай человеку, который имеет дело с продакшн кодом в сотни сервисов.

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

У нас джуны нормально асинхронщину пишут под минимальным присмотром.

Да я уже понял что у вас там ад и израиль, мало того что джуны на го, так и вот это вот еще утверждение.

базовые паттерны уже давно выработаны, го - зрелый язык.

PHP тоже зрелый, ага. Но как и при старении человека «иногда зрелость приходит одна».

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

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

В других нерегулируемых отраслях? Сходи в любой гараж.

cumvillain
()

ЛОР-овцы познают англоязычные пасты образца 2014-2015? Настолько уныло и толсто, что даже обсуждать нечего.

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

Какая разница чем провоцировать лавсана размахивать своим пятнадцатилетним опытом быдлокодера?

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

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

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

Звучит как обычный распил, который сплошь и рядом. Думаешь при производстве какого-нибудь F-35 или Боенг 777макс такого не было (не в софтовой части)?

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

Хайлоад на Erlang будет пилить тот, кто вообще сколько-нибудь разбирается в построении сложных распределенных систем.

Списки ему, блеать, не нравятся. Срань господня, и это говорит гошник, у которого в рантайме непонятно как насранные контекст свитчи, абсолютно всратый GC, не приспособленный для распараллеливания, и у которого даже и близко нет в коробке даже аналога mnesia, для синхронизации сервисов итд, я уж не говорю про более сложные решения, и какие-то более глубокие вещи.

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

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

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

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

lovesan ★★
() автор топика

Сделайте, пожалуйста, обзор языка программирования Rust и операционной системы Redox OS.

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

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

lovesan ★★
() автор топика

Дело в том, что Go это, на самом деле, «решение» внутренних гугловских проблем

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

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

Нет, это твой уровень понимания эрланга и его экосистемы примерно нулевой, «прочитал в интернете чтобы в срачах на лоре поучаствовать».

А за golang я наблюдаю года эдак с 14го если не раньше. Иди детектор чини.

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

Не, он прав. Часто вместо проверенного решения (golang) люди едут крышей и выбирают дилдаки с лопатками (common lisp).

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

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

Это в сферическом идеальном мире в вакууме. На практике делается все известно как. Я в этой отрасли уже 15 лет, не надо мне сказки рассказывать.

так и запишем, работал в шарагах с кривыми процессами

Дотнетчиков на рынке толпа, это раз

нет, вообще не толпа. Рынок пустой, найм бэка уровня оч хороший мидл - это месяца 4 минимум без оглядки на платформу

Отлично, аргументы уровня «а вот сын маминой подруги рассказывал как однажды в штаны насрал…».

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

О, аргумент о котором я прямо в тексте упоминал - главное что народу побольше, и говна побольше навалено.

О, милый мой, нет. Бизнес бы и рад поменьше «говна», то тайм ту маркет, сами понимаете.

PHP тоже зрелый, ага.

И эти люди рассказывают мне про плохие аргументы.

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

Еще один дальше одного предложения не прочитал.

Никакие проблемы в собственно программировании Go не решает.

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

И и менеджер прямо отличный

Нет вообще, зон роста много

и в программировании разбираешься

Я этим зарабатываю

и даже в инженерии разнообразной сечешь.

В процессах побольше твоего, если судить по твоим утверждениям

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

так и запишем, работал в шарагах с кривыми процессами

Смотрю, Любитель Процессов? Вон в гугле, отличные процессы, ну вот из тех что я описал?

Рынок пустой, найм бэка уровня оч хороший мидл - это месяца 4 минимум без оглядки на платформу

Это не рынок пустой, это ваша шарага не может нормальные деньги предложить.

О, милый мой, нет. Бизнес бы и рад поменьше «говна», то тайм ту маркет, сами понимаете.

TTM делается не стеком (если это не C++, тогда TTM там будет плюс бесконечность), а людьми. Если менеджер утверждает что важен стек, а не люди, и к тому же добавляет что якобы на Go можно набрать/переучить народ, а на сраный C# якобы нельзя, он профнепригоден.

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

Чем эрланг лучше? Та же сборка мусора, всратый синтаксис. Лучше тем что его мало кто знает и если написать на нем важный для бизнеса сервис, то можно доить тот бизнес до пенсии

cobold ★★★★★
()

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

Куча старперов-профи, свободно творящих на любом из известных ЯП-ов, подхватили гошку на ура. Потому-что там есть свои жирнющие плюсы, а настоящему профи подойдет любой инстумент, если c этим инструментом можно выполнить задачу эффективно. Только не занятые делом нубы сидят в углу и наяривают на какую-то свою маниакальную прелесть.

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

Куча старперов-профи, свободно творящих на любом из известных ЯП-ов, подхватили гошку на ура.

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

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

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

Чем эрланг лучше

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

Та же сборка мусора, всратый синтаксис.

Охерительные аргументы. Еще можно сказать типа, «на нем тоже пишут в текстовых редакторах - короче одно и то же что Go». Синтаксис под beam кстати есть на любой вкус - тут и LFE и эликсир, итд.

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

Во-первых, много кто его знает. Во-вторых, в него въезжают даже стажеры за несколько недель. Никакой проблемы в «его никто не знает» нет ни как в случае эрланга, ни в случае какого-либо другого языка в принципе. Если для человека проблема выучить ЯП за пару недель - он в принципе профнепригоден, и его не стоит нанимать вообще от слова совсем.

lovesan ★★
() автор топика

А давно ты в Google?

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

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

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

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

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

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

А вот когда есть бабки на экскаватор, но вы вместо покупки экскаватора (это, кстати, пи$$ец, его берут в аренду или нанимают подрядчика) пилят большую часть бабла, нанимают кого придется и делают из говна и палок – сплошь и рядом.

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

То что Golang подхватили в народе, мне думается, это по причине, хайпожорства - «ну, модно-молодежно и от гугла»

постоянно мелькающим и закрывающимся высерам этой компании - hangouts, duo, google plus, google wave, и прочее и прочее

Ты не видишь тут противоречий?

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

Во-вторых, в него въезжают даже стажеры за несколько недель.

Как и во все остальное, за исключением плюсов и хаскеля с идрисом.

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

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

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

практически весь мейнстрим похож как две капли воды, и отличается разве что синтаксисом, иногда типизацией, ну и названием вещей в стандартной библиотеке. Если человек имел дело допустим с C# ему надо даже меньше двух недель чтобы в голове сопоставить названия на другом стеке.

CL ушел недалеко, на самом деле. Erlang ушел чуть подальше но там и стандартная либа мелкая и примитивы основные тупые как полено, там вообще учить нечего, и главные библиотеки простенькие.

Для хаскеля - ну, три недели, но хаскель не нужен, поэтому он не считается.

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

Я далек от вебни, Java-энтерпрайза и вот этого всего. Поэтому мне сложно судить.

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

Давай тогда все плюсы CL в студию! Что там есть такого крутого для быстрого и эффективного решения бизнес задачи, а если там еще и Clean Archtitecture, DDD etc ???

fpastush
()

во-первых, понятность это понятие субъективное, во-вторых потому, что, отдельно взятая фунцкия на 5 строк понятна любому опытному программисту, будь она написана хоть на Rust, хоть на Common Lisp

Пользователи C++ смотрят на это утверждение с недоумением.

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

во-первых, понятность это понятие субъективное, во-вторых потому, что, отдельно взятая фунцкия на 5 строк понятна любому опытному программисту, будь она написана хоть на Rust, хоть на Common Lisp

Пользователи C++ смотрят на это утверждение с недоумением.

Тут еще Пердл вспоминали с дословной формулировкой. Поэтому ее надо переписать так: «Пользователи говна смотрят на это утверждение с недоумением.» 😊

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

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

Да ладно. C++, Lisp и Haskell очень сильно отличаются семантикой. На C++ думаешь в терминах указателей/итераторов/классов, на Lisp в терминах функций и синтаксических конструкций, на Haskell в терминах классов типов, ленивых функций от одного значения и операторов.

Одно в другое просто синтаксисом не преобразуется.

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

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

Такого в постах ловсана тут точно нет, это твоя отсебятина.

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

На C++ думаешь в терминах указателей/итераторов/классов

А последние 20 лет еще и в терминах шаблонов, что сносит крышу почище указателей/итераторов/классов.

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

Как и во все остальное, за исключением плюсов и хаскеля с идрисом.

Я бы сюда еще и Rust со Scala добавил бы. Не сказать, что в этих языках возможен быстрый старт для простого смертного.

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

Это всё ерунда. Ничего особенного нет ни в перле, ни даже в плюсах. Когда я начинал карьеру, на перле писали любые рандомные школьники. Те же сисадмины в свитерах совершенно безграмотные, или вот первые веб-студии были все перловые, прикиньте какой контингент там работал. И ничё, справлялись. На плюсах первокурсники пишут KDE, например. И оно как-то даже работает. Да и много всякой любительской фигни в линуксе на плюсах. И только на ЛОРе вечные заплачки про «сложнаааа нипааняятнаа». Как будто тут девочки с филфака тусуются, а не погромисты.

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

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

Особенно в той части, которая касается менеджмента, ага.

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

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

Слушай, бро. Вот у меня компания, создал ее, нужно писать код для индустрии, где деньги водятся. Например, интернет сервисы. На чем сервисы писать? Нужно чтоб как можно быстрее, нужно чтоб как можно проще (сложности городить будет на хобби проектах), нужно чтоб было производлительно и не жрало ресурсов, нужно чтоб разработка всего этого стоила как можно дешевле (как можно меньшее время разработки и чтоб кодить могли почти все, а не только познавшие в течении 20-ти лет какой-то всратый дзен какого-то всратого замшелого лишпа), нужно чтоб технологии были открытыми, доступными, развитыми и активно развивающимися. Нужно чтоб не приходилось башлять тонные нефти всяки корпорациям. И что? И тут выше всех оказывается golang. Ничего личного, только бизнес. Так рассуждают в том числе и манагеры во всех шаражках. Они не на пьянках про технологию узнают, они (а их там отдел целый как правило) собирают циферки, считают, рисуют даиграмки, обосновывают и доказывают. golang сейчас-это тупо эффективная технология решения достаточно обширного класса задач. И да, golang буквально заполоняет. В РФ (далеко брать не будем), все крупнейшие интернет компании сейчас используют golang в большинстве новых крупных проектах. Не потому что там хайпожеры, а потому что там умеют считать деньги и знают как их зарабатывать. Для души можно и на лишпе покодить (я с него начинал в конце 90-ых), но как ЯП для разработки промышленого решения golang сейчас в топчике.

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

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

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