Фото: Валерий Иванов
В Светлое Рождество Христово, седьмого января, начинаются Рождественские святки — святые дни, освященные приходом в мир Спасителя.
Святки продлятся 12 дней и закончатся Крещенским сочельником, 18 января. Отмечать особо эти дни Церковь начала с древних времен.
Уже в уставе шестого века преподобного Саввы Освященного пишется, что в дни святок не полагается класть поклоны и совершать венчание. Вторым Туронским Собором 567 года все дни от Рождества Христова до Богоявления названы праздничными.
История говорит, что обычай святок существовал в Римской империи, в Египте, и у греков. Подобные обряды совершались у персов в день рождения Митры, у индийцев и монголов. В Польше, Белоруссии и на Украине святки называют Колядою, Каледою.
Церковь призывает верующих проводить Святки в радости, любви и согласии, совершать милосердные дела.
В первые дни празднества по традиции принято посещать знакомых, близких, друзей, дарить подарки — в воспоминание о дарах, принесенных Богомладенцу волхвами.
Еще в 19 веке считалось, что каждый христианин на Святках должен посетить больницу, сиротский приют и тюрьму. Считалось, что рождественская радость должна коснуться всех.
Во второй день Святок принято было посещать больных, в третий — сирот, в четвертый — заключенных. В древние времена в Святки даже цари, переодетые в простолюдинов, посещали тюрьмы и давали заключенным милостыню.
Во второй день рождественских Святок прославляют Матерь Христа Спасителя, Святую Деву Марию. В этот день отмечают и праздник повивальных бабок и рожениц — Бабьи каши. Бабки-повитухи пользовались в деревнях большим уважением. Женщины с теми детьми, которых бабка в свое время приняла, ходили к родильничам и повивальным бабкам с пирогами и прочим угощением. Повитуха старалась как можно лучше принять своих гостей, а ребятишки стремились во всем ей угодить и помочь.
Центральным моментом святочных торжеств была общесемейная трапеза. Хозяйки красиво накрывают столы. Готовилось нечетное число блюд, основным из которых была кутья — вид круто сваренной каши из ячменной или пшеничной крупы (а иногда готовившейся из смеси разного вида зерна), готовили также блины и овсяный кисель. На столе ставили дополнительные приборы по числу членов семьи умерших в прошедшем году.
Особой традицией святок на Руси являлось колядование, или славление.
Даже Петр Первый наряжал своих любимцев кардиналами, дьяконами и церемониймейстерами и в сопровождении хора певчих на святки ходил с ними по боярским домам славить Христа.
Молодежь и дети наряжались, ходили по дворам с большой самодельной звездой, исполняя церковные песнопения — тропарь и кондак праздника, а также духовные песни-колядки, посвященные Рождеству Христову.
Для потешных и забавных игр парни и девушки заранее готовили маски зверей и птиц, шутовские одеяния. В масках с шутками-прибаутками обходили дома, исполняли величальные, обрядовые песни. Основная цель колядования — пожелание счастья, богатства и хорошего урожая. Каждая хозяйка угощала гостей выпеченными из теста фигурками птиц и зверей, конфетами и другими сладостями.
Все, кто «рядился» в маски, для того, чтобы смыть с себя грех, должны были искупаться в проруби.
С этого дня начинались девичьи гадания и продолжались они до самого Крещения.
Новости соседних регионов по теме:
Святки на Вологодчине пройдут в онлайн-формате
Школа традиционной народной культуры по 18 января проводит акцию «Святки на Вологодчине».
19:30 08.01.2022 35runet.Ru — Вологда
Рождественский концерт прошел на уличной сцене ДК
7 января на площади Дворца культуры прошли гуляния, посвященные одному из главных православных праздников — Рождеству.
19:56 08.01.2022 Газета Новый Качканар — Качканар
Архиерейские богослужения в дни Святок проходят в храмах Екатеринбургской митрополии
С 7 до 18 января православные христиане отмечают Святки. Это период времени в христианском календаре от Рождества Христова до Его Крещения.
17:24 08.01.2022 Екатеринбургская Епархия — Екатеринбург
С 6 января православные отмечают Святки
В России начались Святки — двенадцать праздничных дней «от звезды и до воды», то есть от появления первой звезды в канун Рождества и до крещенского освящения воды.
14:22 08.01.2022 Газета Заря Кубани — Славянск-на-Кубани
Рождественские колядки
Святки, или, как их еще называют, Святые вечера – это зимний народный праздник, который начинается в Рождество и длятся целых две недели, до самого Крещения.
13:14 08.01.2022 Татищевский район — Татищево
Рождественские посиделки в музее
Дни с Рождества до Крещения называются Святками. Издавна в это время проходили праздничные гулянья и посиделки.
12:56 08.01.2022 Краеведческий музей — Пенза
Мосюковская библиотека приглашает на мастер-класс
Рождественские святки — это особая часть зимних праздников, которые начинаются Сочельником в вечер 6 января, а заканчиваются Крещением Господним, то есть 19 января.
10:01 08.01.2022 Наша Жизнь — Тёплое
Центральная библиотека: «От Рождества до святого Крещения…» (12+)
Святки в народе называли святым временем. Этот многодневный праздник делился на две части.
00:02 08.01.2022 Веневская библиотека — Венёв
Раз в крещенский вечерок…
Святки, или Святые дни, — христианский праздник. Он начинается в особо чтимый день Рождества и длится 12 дней, по Крещение.
20:51 07.01.2022 Kotelnich.Info — Котельнич
На Рождество юные сараевцы колядовали, соревновались и получали сладкие подарки
7 января в Сараях на центральной площади провели театрализованное представления «Веселое Рождество».
19:18 07.01.2022 RyazPressa.Ru — Рязань
Самое таинственное и загадочное время: в Кузбассе началась святочная неделя
Фоторепортаж от Сибдепо.
Новости 7 января 2022 18:30
В Кузбассе прошли массовые мероприятия в честь светлого праздника Рождества Христова.
18:41 07.01.2022 Sibdepo.Ru — Кемерово
В поселке Центральном прошли праздничные колядки
В преддверии Рождества Христова в посёлке Центральном в рамках фольклорной программы «Наступили святки — начались колядки» прошли колядки.
14:41 07.01.2022 Арсеньевские Вести — Арсеньево
Рождество Христово: что можно и нельзя делать 7 января
Фото: novotroitsk-blago.ru
Православные христиане отмечают Рождество Христово в пятницу, 7 января.
16:20 07.01.2022 Ntr.City — Новотроицк
Светлое Рождество Христово. Фоторепортаж из Преображенского собора
В ночь на 7 января в праздник Рождества Христова, архиепископ Якутский и Ленский Роман совершил божественную литургию в Преображенском кафедральном соборе, сообщает пресс-служба Якутской епархии.
21:00 07.01.2022 NewsYkt.Ru — Якутск
Как Воркута встретила Рождество
Православные всей страны в ночь с 6 на 7 января встретили Рождество Христово.
14:55 07.01.2022 Bnkomi.Ru — Сыктывкар
Как провести святочные дни?
В русской традиции период от Рождества Христова до навечерия Богоявления (7–18 января) называется «святками», и с ним связано огромное количество народных традиций и верований.
17:28 07.01.2022 Епархия — Красноярск
Гадание на Святки
Святками называются две недели зимних праздников, от Рождественского сочельника, приходящегося на 6 января, до Крещения, празднуемого 19 января.
15:27 07.01.2022 ЦБС г. Заречный — Заречный
Митрополит Брянский и Севский Александр поздравил православных с Рождеством
guberniya.tv сообщает , что брянцы встретили Рождество Христово. В областных храмах повсеместно состоялись рождественские богослужения.
11:40 07.01.2022 Российская Нива — Выгоничи
Что запрещено делать православным христианам 7 января
По традиции верующие жители Волгоградской области отмечают в этот день Рождество Христово.
11:40 07.01.2022 Газета Вечерний Волгоград — Волгоград
Во вторник перед вечерней службой дежурная сестра Свято-Казанского женского монастыря обнаружила дворнягу.
Газета Регион
Шашечный турнир состоялся в Остроленской Павленковской библиотеке
Очень необычно и увлекательно встретили канун Рождества Христова участницы женского клуба «Сударушки», действующего при Остроленской Павленковской библиотеке.
Газета Всходы
Сегодня, восьмого января, православные отмечают Собор Пресвятой Богородицы.
Урал-пресс-информ
ЧЕЛЯБИНСК, 8 января, УралПолит.Ru. В Челябинской области продлили ограничение для движения транспорта по трассе М5 «Урал».
УралПолит.Ru
Дорогу она переходила в неположенном месте.
Как сообщает ОГИБДД ОМВД России по Миассу, поздно вечером 7 января в районе дома # 44а по ул.
Миасский рабочий
Многие наши земляки оказались в положении, когда при всем желании уехать невозможно Фото Олега Каргаполова/Вечерний Челябинск
Пассажирское сообщение Казахстана с Россией пока затруднено — в частности,
Газета Звезда
Оперативная информация по коронавирусу на 8 января.
За прошедшие сутки выписаны 297 человек.
Миасский рабочий
Звезды говорят, что Венера даст медицине новый толчок в своем развитии. Больше будет связано с наследием планеты Венеры, а именно затронет темы пищеварительной и мочеполовых систем,
31TV.RU
Доска, брус и прочие пиломатериалы в России подорожали в несколько раз Фото из открытых источников
Виной тому —пандемия коронавируса, подтолкнувшая многих людей к ремонту, заявил глава Рослесхоза Иван Советников.
Газета Звезда
В Челябинске, в органном зале «Родина», накануне нового года, 31-го декабря, состоялся концерт классической музыки «Мы с тобой,
Урал-пресс-информ
В библиотеке татарской и башкирской литературы им. Г. Тукая подвели итоги плодотворно прошедшего года.
Газета Регион
Оглядываясь назад, можно смело констатировать, что, несмотря на все пандемийные запреты, ограничения, отмены, озерчане весь прошлый 2021 год жили насыщенной культурной жизнью,
Ozersk74.Ru
Здравствуйте. Буду рада видеть вас на своей странице. Пишу в жанре СЛР. Молодежная проза. Первая книга «Ненавижу мажоров» будет завершена в ближайшие дни. Он красивый, богатый и избалованный бабник, она дерзкая и бесстрашная, выдает себя бедной девушкой, но на самом деле наследница огромного состояния. Однажды он случайно увидит, как она танцует и потеряет покой. Сможет ли он покорить гордое сердце девушки и сделать так, чтобы в будущем она танцевала только для него.
Вторая книга в процессе написания. Про любовь через препятствия и настоящее чудо в новогоднюю ночь. Книга пишется быстро, проды каждый день. Обе книги бесплатные. В ближайшее время планируются новинки в жанре любовные романы и романтическая эротика. Подписывайтесь на автора, чтобы не пропустить. Спасибо за внимание)
Здравствуйте.
Осень, начинает холодать… Хотите продлить лето?! Тогда присоединяйтесь к героям книги «На край света с первым встречным». Поедем все вместе в Португалию!
https://litnet.com/ru/reader/na-krai-sveta-s-pervym-vstrechnym-b363465?c=3766426&p=1
В истории будут:
♥️ путешествие, приключения, забавные моменты;
♥️ противостояние, притяжение, страсть, любовь.
Главы отредактированные. 5-6 раз в неделю. ХЭ! Буктрейлер.
Аннотация:
Всю жизнь с самого детства я мечтала поехать на край света, но, когда до осуществления задуманного оставались считанные дни, мой молодой человек огорошил новостью: путешествие отменяется. У меня было два выхода: спустить в унитаз потраченные деньги за бронирование жилья и вместе с ними свои надежды или искать попутчицу с машиной. Я выбрала второй вариант, только она оказалась высоким самовлюбленным парнем, и мне с ним на его Мини Купере предстоит проехать порядка десяти тысяч километров по дорогам Европы.
Если не интересно, то извините за беспокойство.
новинка⚡️✨ « Я (не) ЗАБУДУ ЕГО» Он бросил меня в день моего рождения. Отмахнулся, как от пустого места, коротким смс «Извини!Женюсь!». Он выбросил и стер меня из своей жизни на многие годы. Я научилась жить без него, стала чемпионкой мира по бегу и менеджером мирового фитнеса. А два месяца назад получила новое смс: «Привет. Как дела? Я год как в разводе! Может быть кофе?» И почему я не сменила телефон, ведь, появился же молодой, красивый и знаменитый поклонник… ———————————————-ЧИТАТЬ НЕМЕДЛЕННО——————————————— #сильная_героиня #сложный_выбор #сильные_чувства Приглашаю вас НОВИНКУ « Я (не) забуду его»!!! Жду на своей страничке)
Здравствуйте! Прошу прощение за наглость, но видя, что Вам нравится молодежная проза и романтика, хочу обратить Ваше внимание на мой роман «Шёпот ветра».
Аннотация:
Катя Сватова даже не мечтает о прекрасных принцах, которые непременно идут в комплекте с шикарными замками и всепоглощающими чувствами. Жизнь, временами жестокая и несправедливая, давно отучила её верить в сказки. Но что остается делать, когда ветер-проказник уже принес перемены?
Один вечер. Две встречи. И вот тебе навязывают отношения с самым популярным парнем в университете, целуют в свете софитов перед многотысячной армией фанатов и… хотят убить. Та еще сказочка складывается. Для полноты картины не хватает лишь одного – любви. Но это не проблема, когда возле тебя постоянно ошиваются два «принца».
Остается сущий пустяк – отыскать истинные чувства и сохранить нервные клетки.
https://litnet.com/ru/book/shepot-vetra-b57919
Роман завершен и выложен бесплатно.
Уважаемый читатель, приглашаю Вас на свою страничку. Предлагаю ознакомиться с моими книгами. Захватывающий сюжет, страсть и любовь, дружба и предательство, чувственные эмоции. Буду рада, если вам понравится.
Здравствуйте! Предлагаю присоединиться к прочтению моей новой книги «Чёрное. Белое».
Современный любовный роман ♥️ Проды 5-6 раз в неделю без задержек и обмана (отредактированные). ХЭ! Буктрейлер.
Аннотация: Моя жизнь по вине обстоятельств раскололась, как орех, на две половины: белую и чёрную… В одной я студентка-отличница, в другой танцовщица стриптиза, зарабатывающая деньги, необходимые как воздух… В одной я отчаянно пытаюсь воскресить в сердце невинную первую любовь, в другой, помимо своей воли, сгораю от страсти к непонятному мужчине… Но я не могу вечно жить двумя кардинально разными жизнями!
https://litnet.com/ru/book/chernoe-beloe-b328444
Здравствуйте, Марина! Приглашаю вас на свою страничку познакомиться с романами в жанре СЛР:
«Вернуть свою Любовь»
«Хочу стать мамой»
«Ты моё спасение»
«В гостях у Лешего»
Вас ждут захватывающий сюжет, настоящие чувства, адекватные герои, юмор, иногда драма, но всегда хэппи-энд! Присоединяйтесь, мне важна ваша поддержка! КНИГИ БЕСПЛАТНЫ
Агман
29.03.2021, 16:27:21
Здравствуйте, дорогой читатель! Хочу пригласить Вас познакомиться с моей новой книгой в жанре современного любовного романа «До десяти». Это проникновенная история любви, длиною в 20 лет. В ней Вы найдёте и адекватных героев, и романтику, и страсть, запретную любовь, преодоление трудностей, и повороты судьбы. Если интересно, то обязательно загляните ко мне) Прилагаю ссылку: https://litnet.com/ru/book/do-desyati-b321361
Спасибо за внимание и извините за беспокойство:)
P.S. Если Вам понравится роман, не забудьте подписаться и поставить звёздочку, а я постараюсь порадовать Вас в скором времени следующей книгой) Так же пишите комментарии, мне очень интересно узнать Ваше мнение)
М. Агман
Здравствуйте! Предлагаю прочитать книгу «Miss длинный нос. Любовь и прочие недоразумения.»
Книга завершена. Текст отредактирован. Есть буктрейлер.
Аннотация
Моя младшая сестра, умница-разумница, красавица-раскрасавица, прямо-таки мисс совершенство, а я не обладаю и половиной ее лучших качеств, и меня за мое любопытство прозвали «мисс длинный нос». Накануне ее свадьбы я узнаю, что мой парень мне изменяет, и надо решить: выставить себя полной неудачницей перед своей семьей или взять напрокат друга подруги и хоть как-то сохранить лицо. В довершение всего я оказываюсь в постели у первого встречного, и кажется, что ничего хуже в моей жизни уже быть не может, но судьба похоже всерьез взялась за меня, и события, происходящие дальше, шокируют и переворачивают мою жизнь с ног на голову, ставят перед выбором, и мне надо решить, какие приоритеты для меня важней.
Всего найдено: 93
Здравствуйте! Не могли бы Вы объяснить, почему все-таки нормативным является написание двух НН в слове «деланный»? Примечание: в вопросе № 256785 в ответе справочной службы слово «деланный» написано с одной Н.
Ответ справочной службы русского языка
Написание этого слова сейчас подведено под общее правило: с одной буквой н пишется прилагательное, образованное от бесприставочного глагола несовершенного вида: деланый (‘неестественный’); с двумя н пишется причастие деланный: деланная мастером табуретка. Ср.: жареная рыба – жаренная на сковородке рыба.
Раньше это слово считалось исключением, рекомендовалось написание прилагательного с двумя н. До сих пор такое написание встречается в некоторых словарях.
Словосочетание солёные в бочке, солёные пишется с одной н или с двумя? Спасибо!
Ответ справочной службы русского языка
Если речь идет о чем-то, что солили в бочке, то корректно написание с двумя н и ударением на первом слоге: соленные в бочке.
сведения искажены — с одной н?
Ответ справочной службы русского языка
Правильно с одной н.
Рядом с ней я увидел стальную палочку с круглой, некрашеного дерева рукояткой,…
Почему после слова «круглой» ставится запятая? И почему некрашеного пишется с одной н? Подскажите пожалуйста!
Ответ справочной службы русского языка
Запятая ставится между однородными определениями круглой и некрашеного дерева. Если после согласованного определения (круглой) стоит несогласованное (некрашеного дерева), такие определения являются однородными.
Слово некрашеный пишется с одной буквой н, как и слово крашеный (наличие приставки не не влияет на написание). А крашеный с одной н – как прилагательное, образованное от бесприставочного глагола несовершенного вида.
скажите, пожалуйста, неписаННое правило либо неписаНое правило?
Ответ справочной службы русского языка
Пишется с одной Н: неписаное правило.
Вот предложение: «в связи с праздниками будут ограничены движение и парковка транспортных средства». Правильно ли написано слово ограничены, или надо с двумя -нн-?
Ответ справочной службы русского языка
Верно с одной Н: будут ограничены. Правильно: средств.
Скажите, пожалуйста, как правильно писать «грудинно-челюстная мышца» или «грудино-челюстная мышца»? Спасибо!
Ответ справочной службы русского языка
Верно написание с одной Н.
Здравствуйте! Скажите пожалуйста, как правильно писать :
«ПроавансироваННо или проавансироваНо»? Заранее спасибо.
Ответ справочной службы русского языка
Если это краткое причастие, то корректно написание с одной Н. Наречие или прилагательное пишется с двумя Н. Нужно обратиться к контексту.
Как правильно писать: ожидание длиНою в жизнь или ожидание, длиННою в жизнь?
Ответ справочной службы русского языка
Правильно: ожидание длиною в жизнь. Существительное длина пишется с одной Н.
Вопрос № 213632
Добрый день! Помогите, пожалуйста, задаю вопрос второй раз. «Правительству удастся решить земельный вопрос, и трасса будет востребован(нн)а.» Сколько букв «н» нужно писать и почему?
danq
Ответ справочной службы русского языка
Слово востребованный в краткой форме всегда пишется с одной н: трасса будет востребована.Вопрос № 262989
Уважаемые знатоки русского! Ждала-ждала от вас ответа, пока не дождалась. Я все о той несостыковочке в ответах ваших, касающихся КРАТКОЙ ФОРМЫ слова «востребованный», см. №211886 и, например, 216831 и 195551 (как же все-таки правильно писать — с двумя или одной Н? Очень хочется знать!). В процессе ожидания у меня возник еще вопросик. Нужна ли запятая перед «ПОЧТИ КАК» в моем варианте («обзорность_ почти как в кабриолете»), а то я опять-таки нашла у Вас разные версии («популярен, почти как Бэкхем», «сложен почти как Аполлон») и совсем запуталась, а мне очень надо это знать. Жду ответа, надеюсь на Вас и уповаю.
kbsvetik
Ответ справочной службы русского языка
Количество Н зависит от того, краткая форма какой части речи перед Вами: востребована (краткое причастие) и востребованна (краткое прилагательное).
Вопрос № 262725
Уважаемые сотрудники «Грамоты»! Разрешите мои сомнения. Как же все-таки пишется слово «востребованные» в краткой форме — они востребованы или они востребованны? В разных случаях вы даете разные ответы, в частности в ответе на вопрос № 216831 это слово употреблено с двумя н. В моем случае: «Наши печатные проекты очень востребованы». Согласитесь, здесь слово имеет несколько иной оттенок, нежели в случае «письма были востребованы на почте». Как же написать правильно?
Спасибо!
ucheniy_kot
Ответ справочной службы русского языка
Это слово может выступать как краткое прилагательное или как краткое причастие, с чем и связаны различия в написании. В Вашем примере следует написать две Н (это краткое прилагательное).ТАК КАК ЖЕ ВСЕ-ТАКИ ПРАВИЛЬНО?
Ответ справочной службы русского языка
Правильны все ответы, кроме 213632, в котором допущена ошибка. Извините, что ввели в заблуждение.
Уважаемая Грамота!
Подскажите, пожалуйста:
В данном случае, однако, эта роль не столь очевидна, как в классических «цветных революциях», она опосредоваНна, замаскированНа и во всех отношениях более продумаНна.Или все-таки с одной Н ?
Спасибо.
Ответ справочной службы русского языка
Корректно: В данном случае, однако, эта роль не столь очевидна, как в классических «цветных революциях», она опосредована, замаскирована и во всех отношениях более продуманна. Также можно обосновать написание слова продумана с одним Н (как краткой формы причастия).
Добрый день!
Подскажите, пожалуйста, корректно ли написано: «В жару откажитесь от жаренного и копчённого». Спасибо!
Ответ справочной службы русского языка
Оба слова здесь надо писать с одной Н.
Сколько букв Н в слове жареный? Только что обнаружила претензию в комментариях, где это самое слово в сочетании «жареная картошка» написано с двумя Н и сказано, что только так и правильно, сама пишу вполне грамотно, но это слово всю жизнь писала с одной Н. Стала сомневаться.
Ответ справочной службы русского языка
См. ответ на вопрос № 253675.
Скажите, почему «настроенный» как прилагательное в краткой форме пишется с одной н. Как я понимаю, у причастий в краткой форме пишется одна н, а у прилагательных две.
Ответ справочной службы русского языка
Все по правилу: настроена, настроены — краткие причастия.
Здравствуйте, уважаемые знатоки русского языка! Мне непонятно, как правильно: «остались считаНые дни до моего отпуска» или «остались считаННые дни до моего отпуска». То так, то этак написано в словарях. И у вас тоже допускается и то, и другое. Со мной спорят, хотя я уверена, что надо писать с одной Н — это отглагольное прилагательное. В значении — очень мало. Да и сейчас такая тенденция наблюдается, я читала про это, — когда причастия больше переходят в отглагольные прилагательные. Спасибо вам! Жду ответа, как соловей лета! Ирина
Ответ справочной службы русского языка
См. ответ 257376.
Привет, Хабр! Меня зовут Саша, я бэкенд-разработчик в Ozon. Пишу платформу для контента, который генерят пользователи: отзывов, комментов, вопросов, ответов. Раньше я писал на Python. Выбрал его изначально из-за лёгкого синтаксиса и большого количества вакансий для Python-разработчиков — изи катка для входа в профессию.
В один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».
Каждый инженер десятки раз в своей карьере сталкивается с выбором: оставаться дальше на той технологии, на которой он работает, или уходить на другую. В статье я расскажу, по каким критериям я сравнивал две технологии, и почему принял решение переехать на другой язык.
Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Дисклеймер: сравнивая два языка, я не считаю один плохим, а другой — хорошим. У меня также нет цели ответить на вопрос, какой язык лучший (такая постановка в принципе некорректна, ведь каждый язык — для своих задач). Я лишь рассказываю о своём способе мышления и о том, на что я обращал внимание, делая выбор, переезжать или нет.
Python как первая любовь
Обожаю этот язык. По-прежнему слежу за ним и экспериментирую с машинным обучением. Он занял ряд ниш, где правит почти единолично: машинное обучение, аналитика, DevOps, скриптинг для различных нужд, например, датафикса. И, конечно же, Python широко используется в вебе. Рейтинг языков программирования PYPL ставит его на первое место с огромным отрывом.
На Python легко состряпать прототип веб-сервиса и получить proof of concept от рынка. Например, на Django можно за считанные дни собрать MVP — сразу бэкенд и фронтенд. Сильнейшее сообщество Python-разработчиков написало кучу прекрасных библиотек, которые дружат с Django так крепко, что в проект можно добавить какие-то хитрые модули буквально парой строк кода.
Golang — вечно молодой
В 2005 году перестало работать важное следствие закона Мура: «производительность процессоров должна удваиваться каждые 18 месяцев из-за сочетания роста количества транзисторов и увеличения тактовых частот процессоров». Тактовая частота упёрлась в ограничение, но начало расти количество ядер, используемых в процессоре.
Все основные языки, которые используются в бэкенде, были созданы, когда закон Мура работал и казалось, что так будет всегда: C (1972), C++ (1983), Python (1991), Java (1995), PHP (1995), JavaScript (1995), C# (2000). Дизайн этих языков изначально не подразумевал работу с несколькими ядрами.
Go — достаточно молодой язык. Ему всего 12 лет, и он сразу делался с оглядкой на то, что код будет выполняться на нескольких ядрах процессора. И в этом его невероятная сила.
А ещё Go изначально задумывался Робом Пайком, как язык, который ускоряет всё: процесс написания кода и процесс компиляции. Никаких ожиданий — всё под девизом «Make programming fun again».
Плох тот бэкендер, который не хочет писать хайлоад
Я всегда мечтал писать хайлоад — и это было первым аргументом в пользу Go. Вы можете возразить, что на Python тоже есть хайлоад, и будете правы. Когда говорят про Python, всегда упоминают, что на нём написаны Instagram и Dropbox.
На сегодняшний день Instagram — проект с самым большим трафиком, написанный на Python. Чтобы заскейлить горизонтально бэкенд на Python при миллиарде MAU (monthly active users), нужно вложить очень много денег в железо — на десятки процентов больше, чем если бы он был написан на более производительном языке. При таких объёмах затраты на железо бьют по карману. Но есть хорошая новость: такая задача в принципе решаема. Скорее в Instagram используют Python, потому что они заложники легаси-кода, который долго и дорого переписывать.
Dropbox, изначально написанный на Python, переписали часть бэка именно на Golang. Некоторые микросервисы до сих пор работают на Python, но это периферийная ненагруженная часть, core-функционал переписан на Go. И причина простая — Golang более производительный.
Основной язык бэкенда компании Lyft — Python. Агрегатор вычислил стоимость железа на одну поездку в такси, заказанную через приложение, — 14 центов. Количество поездок, совершённых в 2018 году, — порядка 650 миллионов. Lyft тратил 100 миллионов долларов в год на инфраструктуру, и сейчас эта сумма ещё больше. Если бы это был Golang стоимость железа могла бы быть меньше на несколько десятков миллионов долларов.
Хайлоаду важен производительный бэкенд — это вопрос экономики. Железо дешевле, чем люди, но на объёмах в сотни миллионов MAU затраты на разработку сравнимы по цене с железом, и выбор непроизводительного языка может привести компанию в ловушку, когда на железо будут сливаться сотни миллионов долларов в год. При этом переписывание бэкенда тоже влетит в копеечку, а, возможно, и вовсе будет невыполнимой задачей.
У Python есть три фундаментальные проблемы:
- GIL (global interpreter lock) съедает профит от concurrency. GIL нужен для того, чтобы синхронизировать потоки для работы сборщика мусора. При изменении количества ссылок на переменные GIL блочит все потоки и даёт исполняться только одному. Те, кто пишут код на Python, давно просят разработчиков языка убрать GIL, но он пустил свои корни так глубоко, что, скорее всего, останется с нами навсегда.
- Перед выполнением любых операций с любыми объектами Python проверяет их тип. Это боль языков с динамической типизацией, которая съедает производительность.
- Почти все объекты в Python аллоцируются на куче, а не на стеке. Неиспользуемая память на куче освобождается медленнее.
Тут нужно оговориться, что невысокая скорость Python — это не баг, а фича. Это расплата за лёгкий синтаксис, с которым можно не заботиться о памяти. Возможность создавать резиновые списки, hashmap’ы, set’ы и т. д. не может быть бесплатной.
Golang же идеален для написания хайлоада. Распараллелить флоу программы на несколько ядер и собрать результат воедино можно без танцев с бубном, а с помощью синтаксиса из коробки. Тут стоит упомянуть, что многоядерность — это не панацея и что она работает до определённого предела.
По закону Амдала, при распараллеливании вычислений быстро достигается предел производительности, после чего дополнительные ядра не обеспечивают предельной производительности.
Ещё одним преимуществом Go являются горутины. Это легковесные потоки исполнения программы. В отличие от тредов в операционной системе горутины:
- быстро стартуют;
- имеют расширяемый стек памяти;
- могут эффективно коммуницировать друг с другом через пакет sync и каналы;
- менеджерятся планировщиком от Go и не завязываются на ОС.
Читаемость и предсказуемость кода
На одно написание кода приходится в среднем пять его прочтений. А некоторые критические места любого сервиса перечитываются десятки раз. В Zen of Python есть такие строки:
Должен существовать один — и, желательно, только один — очевидный способ сделать что-то
На деле мне как-то на собеседовании задали вопрос про то, сколько существует способов развернуть список.
lst = [1, 2, 3, 4, 5]
# 1, разворачивает список in-place, возвращает None
lst.reverse()
# 2, возвращает reversed object, который надо завернуть в list()
new_lst = list(reversed(lst))
# 3, разворачивает список с использованием слайса, возвращает новый объект списка
new_lst = lst[::-1]
Очень легко запутаться и забыть, какой способ что возвращает. Это порождает ошибки.
Python пошёл по пути добавления синтаксического сахара. В какой-то момент его стало чересчур много. Например, объединить два хешмапа до версии 3.9 можно было вот таким способом:
new_dict = {**dict1, **dict2}
Но в 3.9 для этой операции появился ещё один вариант:
new_dict = dict1 | dict2
На вопрос: «А как же Zen of Python?» — в стандарте дан ответ: «Ну мы же говорим про один очевидный способ». А какой из них очевидный-то?
Там же в стандарте кодеры ругаются, что синтаксический сахар затрудняет чтение.
В Golang нет built-in-способа объединить два хешмапа. Приходится делать так:
for k, v := range b {
a[k] = v
}
Ужасно? Но я сразу понимаю замысел программиста, который писал этот код.
Синтаксический сахар порой становится миной замедленного действия. Например, в Python есть прекрасное средство для быстрого создания списков — list comprehension.
lst = [i for i in range(5)] # [0, 1, 2, 3, 4]
Но если такое средство есть, то в один момент ты встречаешь в чужом коде вот такую конструкцию.
init_data_struct = [{'a': 10, 'b': 20}, {'p': 10, 'u': 100}]
# нам нужно объединить два словаря внутри списка, выкинув оттуда ключи 'b','u'
new_data_struct = [[(k,v) for k,v in d.items() if k not in ['b','u']] for d in init_data_struct]
# [[('a', 10)], [('p', 10)]]
И чип начинает искриться. А что делает эта конструкция? Что хотел сказать автор? Сложность кода и так растёт экспоненциально. А если это часть какой-нибудь функции-портянки строк на 50, то восприятие теряется, ты снова и снова утыкаешься в это место и не понимаешь, что происходит. Я наблюдал, как среди разработчиков иногда начинается гонка, как уложить код в как можно меньшее количество строк. В итоге получается огромная цепочка вызовов в рамках строки — и никто не знает, как она работает.
В Golang реально есть только один очевидный способ сделать что-то. Без дзенов. Там просто нет синтаксического сахара. На написание любой конструкции требуется больше кода, чем в Python, но зато паттерны видны сразу, постоянно встречаются одни и те же конструкции, которые упрощают коммуникацию разработчиков через код.
Статическая vs динамическая типизация
У Python динамическая типизация — это значит, что тип переменной определяется в рантайме. У Go тип переменной определяется при компиляции.
a := "UpdateReviewStatus"
b := 1
c := a + b
Этот код в Golang просто не скомпилируется. Возможно, дело даже не дойдёт до компиляции, так как IDE начнёт ругаться и разработчик заметит это. Проект на Python с подобным кодом запустится, но выдаст ошибку в рантайме (хотя и тут IDE поругается и укажет на ошибки). За это Go-разработчики расплачиваются тем, что приходится писать похожие функции для разных типов. Кажется, небольшая плата за баги, отловленные на моменте компиляции. Если код на Go скомпилировался, то он рабочий в подавляющем большинстве случаев.
В версии Python 3.6 появились аннотации типов. Они подсказывают разработчику, какой тип заходит в функцию и что возвращается. Аннотации типов сделаны для того, чтобы подсказать разработчику, как функция работает. Даже если передать в функцию с аннотированными типами значения с другими типами, код запустится и будет работать.
def add(x: int, y: int) -> int:
return x + y
add("a", "b")
# ab
На аннотацию типов немного поругается IDE, а в остальном интерпретатор будет безразличен. Многие разработчики считают, что аннотация типов — это не Pythonic way. Хотя лично я считаю аннотации обязательными: с ними код читается гораздо легче, хоть и нет никаких гарантий, что в функцию зайдёт нужный тип.
Где больше денег, Лебовски?
По данным исследования Stack Overflow, медианная зарплата Go-разработчиков выше, чем у разработчиков на Python, на 27%: $75 669 против $59 454. В России, по данным Хабр Карьеры, разрыв ещё больше — 38%: 180 000 рублей против 130 000 рублей.
Здесь стоит упомянуть, что на Python, например, пишутся парсеры и прочие скриптовые истории, — они тянут медиану зарплат вниз. Но если взять 90-ый процентиль, то есть 10% самых дорогих специалистов, то разница между самыми дорогими разработчиками на Go и на Python составит примерно 10%. Для меня это был приятный бонус при переезде.
Тут стоит упомянуть, что переход на другую технологию почти всегда сопровождается падением по зарплате. Рынок верит в то, что опыт работы на конкретном языке важнее, чем опыт в целом. Но когда тебя хантят, то тебе компенсируют упущенную выгоду на твоём языке. Ты можешь учиться за счёт работодателя, что является приятным бенефитом.
Вывод
Отрефлексировав свой опыт, я убедился в правильности своего решения о переезде на Go:
- Во многих технологических компаниях он стал языком номер один. Если всё будет хорошо, то Golang станет стандартом высоконагруженного бэкенда — кажется, к этому всё и идёт.
- На Go пишется хайлоад, а это другой уровень задач и их разнообразия. В Ozon в период осенних распродаж держали планку в 5000 заказов в минуту.
- У Go прозрачный синтаксис и статическая типизация, что улучшает читаемость кода и уменьшает количество просаженных багов.
- Go-разработчикам больше платят. В России они вообще входят в топ-3 по зарплатам.
Но и Python я забывать не планирую. Я внимательно слежу за ним и продолжаю решать на нём свои задачи.