Да, всем умникам. Кириллицу использует 0.3% населения Земли. То есть любой язык на кириллице обречён на локальность. Латиница у 70% населения Земли. И оставшиеся 30% тоже её используют.
Кто бочку на 1С катит пусть попробует задуматься как бы он назвал на английском идентификатор ЕстьДоговорГражданскоПравовогоХарактера. :))) Язык 1С это идеальное попадание в предметную область и англоязычный аналог вставлял бы много палок в колёса просто расхождением терминологического базиса.
На длину программы тоже не надо бочку катить - программа должна быть самоописуема и идентификаторы заменять комментарии - и большую часть написания кода программист занят вовсе не пропечатыванием символов.
Ох-хо-хо, годы наши тяжкие... Что-то никто не вспомнил про Кобол на русском для Минск-32. Уже на ЕС-ках, кажись, был на английском...
Так случилось, что всю свою жизнь я занимаюсь именно языками программирования. И диплом мой с этой темой связан, и даже довелось один язык самому придумать и реализовать :)
Поэтому я знаю и про Алгол-60, и про РАЯ (русский алгоритмический язык), и про 1С. То, что вы называете "издеваться над языком", на самом деле - очень интересный кунштюк из истории компьютерной лингвистики: "на каком языке удобнее программировать - на специальном или на естественном?"
Давным-давно, когда программистов было очень мало, но зарабатывали они уже неплохо, многие дилетанты хотели "программировать как говорят". Мол, что это мы тут будем всякие ключевые слова писать - давайте мы просто скажем компьютеру, что мы хотим, а он пусть выполняет!
И был проведен эксперимент. Исследователи создали два новых языка программирования: один "машинный", а второй "естественный". Взяли две группы подопытных кроликов, и дали им одни и те же задачи. Только первая группа должна была их делать на "машинном" языке, а вторая - на "естественном".
И выяснилась удивительная вещь! Поначалу "естественники" сильно обогнали "машинников" по скорости написания программ. Но очень скоро, как только "машинники" освоили свой язык как следует, они прочно вырвались вперед.
Никакой проблемы с русскими языками программирования НЕТ. Но средняя длина русских слов длиннее, чем английских, а никакого "понимания, что значат языковые конструкции", как мы только что увидели, НЕ НУЖНО.
Теперь вы знаете, почему я смеюсь, когда меня пугают, что "ChatGPT заменит программистов". Не заменит! Именно потому, что выражать свои желания на естественном языке СЛОЖНЕЕ, чем на машинном. То есть, проще написать код самому, чем вдолбить "умной машине", чего ты хочешь :)
Kelavrik_0➦Ector• 02.12.25 18:29
В общем то для любого машинного языка надо просто выучить число операторов и системных функций. Их не так уж и много. А после совершенно без разницы какими литерами выписаны команды. Время программирования не измеряется скоростью написания "if" и "если". Две литеры погоду не делают.
ystervark➦Ector• 02.12.25 20:02
С другой стороны, нам-то именно на естественном языке и говорят, что надо запрограммировать. Иногда (в редких случаях) достаточно подробно и формально, но чаще на пальцах и размахиванием рук. А уж мы это размахивание превращаем в код на машинном языке. Ну а тут чатжпт будет это делать. Говорят, кое-где уже и делает. У начальства затык в башке - ни один человек кода не читал, и что там, никто толком не знает, но юнит-тесты проходят, по правилам надо принимать!
У исландцев так до сих пор Густавсдоттир или Фредериксон. Карлсон туда же. Для шведов звучит как "Иванов сын"
Согласен, что многие академические проекты «русскоязычных языков» часто оставались экспериментом.
Однако, если говорить о реальном, масштабном и коммерчески сверхуспешном применении идеи, то нельзя не вспомнить про 1С.
Это не просто «язык с русским синтаксисом» — это целая огромная экосистема, созданная ещё в 90-е. Согласно данным статистики, вокруг 1С работает до миллиона специалистов (программисты, консультанты), свыше 8000 компаний франчайзи, а самые крупные внедрения автоматизируют десятки тысяч рабочих мест в одной организации. Рынок труда для senior-разработчиков 1С очень даже серьёзный, с зарплатами от 400 тыс. рублей и выше.
Идея, начавшаяся в советское время, в случае 1С привела не просто к чему-то серьёзному, а к одному из самых массовых и востребованных IT-примеров в странах СНГ
Softwarer ★➦Baldar• 02.12.25 15:27
1С обязана своим успехом не языку. Ключевое преимущество, обеспечившее ей рынок - регулярность и скорость обновлений при внесении изменений в законодательство. А про язык 1С, так случилось, я кое-что знаю. Где-то в 95 или 96 году 1С приглашала меня его делать.
sabbakka➦Softwarer• 02.12.25 16:35
Каким боком одно к другому? Вы заявили, будто попытки создать язык программирования на основе русского языка не привели ни к чему серьезному, что заниматься этим могут только люди уровня профессора Выбегалло. Вам привели контрпример и показали, что это далеко от истины. Приведенный вами пример псевдокода на русском выглядит ничуть не глупее реального кода на английском для тех, кто хотя бы немного знает английский )
sabbakka➦Baldar• 02.12.25 16:44
Академические примеры я бы тоже не стал сбрасывать со счетов. Для обучения детей лучше подходят императивные ЯП на основе их родного естественного языка. Создатели Logo, кстати, это Уолли Ферзег, Сеймур Пейперт и Синтия Соломон), но многие русскоязычные реализации Лого имеют русскоязычные команды или встроенные русскоязычные синонимы для всех встроенных команд. Пртмерно такой же подход использован в визуальном языке программирования (скорее это визуальная среда разработки) Scratch, но там куча разных естественных языков поддерживается. Оно и понятно: детям так удобнее )
Baldar➦Softwarer• 02.12.25 18:29
Вы совершенно правы насчёт ключевого преимущества 1С — скорость реакции на изменения в законодательстве была (и во многом остаётся) её «убийственной фичей».
Однако, позволю с вами поспорить в одной точке. Вы изначально заявили, что попытки создать русскоязычный язык программирования — это «фигня» уровня профессора Выбегалло, которая «не приводит ни к чему серьёзному».
Мой пример с 1С был призван показать, что это далеко не так. Да, её успех построен на бизнес-модели. Но реализована эта модель была именно внутри русскоязычной платформы. Язык 1С — не просто случайное следствие, а важнейший элемент экосистемы, который сделал эту платформу доступной для сотен тысяч бухгалтеров, экономистов и консультантов без глубокого знания английского и классического программирования. Он снизил порог входа и создал ту самую армию специалистов, которые и тиражируют решения.
У меня на полке до сих пор стоит брошюра голубого цвета автора А.Ю.Жедя «Практика программирования на встроенном языке «1С:Предприятия». Пособие для начинающих. Издательство Фирма 1С, Москва, 2001 год. 75 страниц.
Если бы в основе 1С лежал, скажем, чистый C++ или Java с английским синтаксисом, смогла бы она с такой же скоростью и масштабом захватить свою нишу в условиях тогдашнего российского рынка? Это большой вопрос.
Таким образом, русскоязычный синтаксис не был причиной успеха, но был его критически важным катализатором и неотъемлемой частью итогового «серьёзного» результата. Поэтому утверждать, что сама идея обречена на маргинальность, — не совсем корректно. Она просто нашла своё воплощение в уникальном гибриде платформы, бизнес-модели и языка.
Softwarer ★➦Baldar• 02.12.25 21:55
Имхо, необходимо таки выбрать между трусиками и крестиком. Если, допустим, 90% успеха 1С - в скорости реакции на изменения в законодательстве, то на долю всех прочих факторов, включая русскоязычный синтаксис, остаётся не более 10%. Так что даже нет смысла спорить, а дал ли он вообще плюс или минус - ответ на этот вопрос просто уже не слишком-то важен.
Что же до C++ или Java - оба варианта очевидно неудачны для 1С-применений. Туда напрашивается что-то вроде Visual Basic-а, и, собственно, практически он и реализован.
Русский язык в разы лучше наглицкого для литературы - и в разы хуже его же для кодировок.
Хотя бы уже потому, что наглицкие слова банально короче.
Предлагаю взять 20 "случайных" программировальных терминов и сравнить их длину с русскими переводами.
Можно даже сделать это прямо ЗДЕСЬ, у всех на виду.
Го го го!
Alexander_A ★➦Nik Name• 02.12.25 15:18
"Русский язык в разы лучше наглицкого для литературы"
Смешно.
Сколько ни читал по этому вопросу, всегда встречал утверждения, что английский богаче русского.
Для худ. литературы это наиболее ценно.
А какие у Вас критерии "лучшести"?
Nik Name➦Alexander_A• 02.12.25 15:31
Личный опыт чтения, лол.
Мноооголетний, и на обоих языках.
Не один фанфик с удовольствием перечитывал в русском переводе именно из-за качества языка.
Английский тоже не "плохой", но русский (на мой личный вкус) значительно выразительнее.
Ну, как минимум, в художественной литературе, а за научную не буду заявлять.
finnn ★➦Alexander_A• 02.12.25 16:23
В английском больше корней, в русском это компенсируют приставки и суффиксы. Так в английском для каких-то действий 5-6 разных слов, а в русском это один корень, но с разными приставками: забежал, подбежал, отбежал, прибежал, перебежал, забегался, отбегался...
Есть только один пункт, в котором русский язык действительно проигрывает, - интимные отношения. Об этом писал Набоков, когда попытался свою "Лолиту" перевести на русский. Правда, к тому времени он родной язык подзабыл...
Kelavrik_0➦Nik Name• 02.12.25 16:26
Сравните длину begin и старт.
Но вообще то длина не имеет значения. Значение имеет только универсальность латинских букв. То есть за границей кириллица только у русских. То есть язык с кириллицей обречён на локальность. Как и язык с иероглифами или арабской вязью.
Kelavrik_0➦Alexander_A• 02.12.25 16:30
Богатство языка практически невозможно измерить. Сейчас смеха ради перевёл в переводчике предложение:
А, это, ну как там вообще.
Перевод гугла:
Well, what's it like there anyway?
Обратный перевод:
Ну и как там вообще?
Nik Name➦Kelavrik_0• 02.12.25 16:33
Первый перевод уже кривой.
Ahem, eh, how's it going there in general?
Тоже не супер, ну куда ближе.
Kelavrik_0➦Nik Name• 02.12.25 17:13
Ок, ваш более корректный перевод содержит куда больше слов, чем оригинал. Так какой язык богаче?
Alexander_A ★➦finnn• 02.12.25 17:18
приставки и суффиксы... Интим...
Нахуя дохуя нахуярили? Расхуяривай нахуй к хуям!
Нтхуя не дохуя, похуярили!
Nik Name➦Kelavrik_0• 02.12.25 17:28
Не богаче, а приятнее на вкус. И я сам сказал, что русский, лол.
Для художки на почитать.
А вот для компа - наоборот.
finnn ★➦Alexander_A• 02.12.25 18:00
Вот именно об этом Владимир Владимирович и писал. Но другими словами. Я же говорю, - подзабыл...
Kelavrik_0➦Nik Name• 02.12.25 18:24
Русскому приятнее русский, англичанину английский. Кто как привык.
ГенАндр➦Kelavrik_0• 02.12.25 19:16
А почему справочники сообщают о более чем 50 языках в мире, использующих кириллицу?
Kelavrik_0➦ГенАндр• 02.12.25 19:32
Ну типа да.
Славянские языки
Белорусский, Болгарский, Македонский, Русский, Русинский, Сербский, Украинский.
Языки России и стран СНГ
Адыгский, Абазинский, Башкирский, Киргизский, Кумыкский, Молдавский (в Приднестровье), Ногайский, Осетинский, Таджикский, Татарский, Удмуртский, Чувашский, Якутский.
Другие языки
Монгольский, Татарский, Таджикский, Цыганский (в Сербии), Горско-еврейский (татский).
-----
Ну да, наберётся 50 вместе с языком чукчей. Так легче?
Alexander_A ★➦Nik Name• 02.12.25 20:15
"Личный опыт чтения, лол."
))))
Замечательный критерий.
Nik Name➦Alexander_A• 02.12.25 20:24
Куда объективнее (да-да), чем "критеги чесали репу".
Качество услуги оценивает клиент, а не теоретик.
ГенАндр➦Kelavrik_0• 02.12.25 20:26
У меня была в числе хороших знакомых татка. Такая разумная и энергичная девчушка.
И если бы я показал ей последнюю строку Вашего коммента, то она бы наверняка обнаружила в ней оттенок лёгкой ксенофобии.
Правда, в те годы это называлось несколько иначе.
Kelavrik_0➦ГенАндр• 02.12.25 20:48
Ага, ксенофобия. Это когда языки считают по числу носителей в мире. Латиницу используют 5000 языков, 70% населения планеты. Так насчитал ии, проверять лень. Порядок чисел именно такой. То есть по числу языков на пару порядков больше, чем кириллицу.
Блин, элементарный факт, но его надо доказывать!
MarikaB➦Kelavrik_0• 02.12.25 21:34
Предполагаю, что если и создадут русский язых программирования, то на 80% он будет состоять из мата.
функция Дохуя(Колво: целый): логический;
начать
если Колво < 0
то поднять ИБля.ХуяритьФрмт('Количество должно быть пиздец (%ц)', [Колво])
иначе хуйнуть Колво > 3;
кончить;
Kelavrik_0➦MarikaB• 02.12.25 21:43
Любой язык программирования, это набор стандартных инструкций. Даже язык Brainfuck. Главное, чтоб инструкции читались однозначно.
VadimCJ➦Kelavrik_0• 03.12.25 00:04
Шта то говориш? Стварно? Знаш поуздано да се ћирилица користи само у Русији? Онда имам вести за тебе – не, није истина.
(сербский)
Kelavrik_0➦VadimCJ• 03.12.25 00:18
Зашто се свађаш, драги моји? Колико људи има у Србији?
(сербский)
Ну да, кириллица отличается от русского варианта. И?
VadimCJ➦Kelavrik_0• 04.12.25 01:19
У овом случају, није битно колико људи има у Србији (6,5 милиона) или колико људи зна да чита српску ћирилицу, или колико су сличне српска ћирилица и руска. Важно је да је тврдња да се ћирилица користи само у Русији нетачна. Узгред, ту је и Бугарска, на пример.
В данном случае совершенно неважно сколько людей в Сербии (6.5 М) или сколько людей умеют читать сербскую кириллицу, или насколько совпадает сербская кириллица с русской. важно что утверждение что кириллица используется только в россии не верно. кстати еще есть Болгария например
VadimCJ➦Kelavrik_0• 04.12.25 01:26
Па, иначе... српску ћирилицу разумеју не само Срби (6,5 милиона) већ и цела бивша Југославија (22 милиона).. али у стварности користе... у Србији се ћирилица користи само у званичним документима - али у стварном животу се практично не користи :) - углавном латиница или лисавица (латиница без српских симбола)
Ну и кстати ... сербскую кириллицу понимают не только сербы (6.5М) но и вся бывшая Югославия (22М).. а вот реально используют.. в Сербии кирилица только в официальных документах - а вот в жизни ее практически не используют :) - в основном латиница или лысавица (латиница без сербских символов)
Kelavrik_0➦VadimCJ• 04.12.25 01:28
Смотрим комментарий выше. А по существу всё просто, любой язык на кириллице обречён на локальность, а не на мировой успех.

Из студенческого фольклора 1980-х:
Говорю я ей: "Continue!",
А она мне: "Go to!"
"Петрович - югославская фамилия" - звучит примерно как "Амбарцумян - советская фамилия".
Как Амбарцумян - фамилия не "советская", а армянская, так и Петрович - фамилия белорусская (с ударением на "о"), сербская, черногорская, хорватская и словенская (с ударением на "е").
Между прочим, настоящее имя Шандора Петёфи (типа "венгра") было "Александр Петрович" - папа его был серб, мама - словачка, а сын вот в венгры записался...
По словакам это в целом неизбежно, словаки омадьяренные чехословаки, как и чехи онемеченные чехословаки. Вместе они конечно пытались недолго пожить, но вернулись к исходному варианту культурного влияния.
Другой вопрос, что чувак себя идентифицировал по матери, т.к. решил, что сербом быть "напряжно", выгоднее выбрать "растущие перспективы"
Петрович - вполне реальная фамилия. Польско-белорусская, видимо, по происхождению.
В советское время во ВГИКе историю советского кино преподавала киновед Ади Яновна Петрович.
Почему бы не быть Соне Петрович при этом?
Ну вот именно такой "русский язык программирования" создать ничего не стоит. Добавить в компилятор альтернативные названия команд -- дело получаса. Больше хлопот потом эту версию компилятора распространить.
Ну как... Был же язык Ершова (даже компилятор, вроде, сделали). Активно юзали для обучения школьников. Так что, не надо про Выбегалло.
ystervark➦evengerova• 02.12.25 13:45
Интерпретатор, конечно. Я даже знаю тех, кто его делал. Сами, кстати, школьники и делали.
А автор вот так влегкую походя, через губу, например, назвал выбегаллами авторов ОС ДИСПАК и автокода БЭМШ
evengerova➦ystervark• 02.12.25 14:27
В Википедии пишут про МГУ. Наверное, реализаций было несколько.
Кажется, еще была поддержка русского языка в компиляторе с Алгола-68, который делался у Терехова в лаборатории системного программирования ЛГУ, но тут я не уверена.
Дирижабль ★➦evengerova• 02.12.25 14:28
Автор, невежество не есть аргумент. Был АКИ (Автокод Инженер, очень удобный), автокод "Эльбрус" (скорее всего, используется до сих пор в тех местах, куда автора не пускают).
ystervark➦evengerova• 02.12.25 15:37
Терехов тоже этим занимался, примерно в то же время, что и мы (1982-1994 годы), мы с ним дружили, и он регулярно приезжал в Новосибирск на летние школы. Но они работали на ЕС, а мы на Агате, так что охват разный. Но Рапира - это конкретно ВЦ СОАН.
Помимо учебных языков, автокодов и языков управления заданиями, следует вспомнить языки АЛМИР и Аналитик (Глушков). Да и вообще, похоже, у отцов-основателей советского программирования отвращения к русскому языку было поменьше, чем у автора.
evengerova➦ystervark• 02.12.25 17:02
Терехов и с Эльбрусом работал. А еще у Терехова был Самсон! :)
Печально все это. То Вирт помирает, то Терехов. Терехов вообще мне вечным казался :(
ystervark➦evengerova• 02.12.25 17:09
Ну что делать, время подходит. Кнут еще жив, вот! И может, еще что-то напишет.
Ершов вот умер рано, это печально, практически ему было, как мне сейчас.
А от Вирта у меня остался автограф, причем в зачетке. Зачетку, правда, я сдал, но копию сделал.
Pierre Valenkoff ★➦evengerova• 02.12.25 20:03
> Был же язык Ершова
Был язык Альфа - руссифицированный Алгол-60. Я с него переводил на Фортран, как только ЕС ЭВМ появились.
Альфа-язык — расширенный диалект языка программирования Algol 60. Разработан в СССР в 1960-х гг под руководством Андрея Петровича Ершова:
https://ru.wikipedia.org/wiki/Альфа-язык
Был знакомый с фамилией Борисович. И что?
Подкалывали его иногда - Человек с двумя отчествами и без фамилии.
"какую-нибудь даму зовут "Джулия Сын Джона"
Ужас какой!
Автор, а Вы в курсе, что, в большинстве стран, жена Васи Иванова будет иметь фамилию Иванов.
Т.е. сын Ивана?
А фамилию Бен Гурион слышали? В переводе Бен это сын. И жена, и дочка тоже будут Бен Гурион в.
Возможно, в программировании Вы разбираетесь лучше...
Даже в английском языке "begin ... end" (паскаль) заменили на {}.
Что "if", что "если" разницы никакой. Глаз привыкает мгновенно и ошибки в десятке другом операторов находит.
Соня должна быть Петровна, а не Петрович. Это понятно. Но ошибка для англоязычного проста. А так. Фамилии Иванов(а), Петров(а), Сидоров(а) довольно распространены.
Soma➦Kelavrik_0• 02.12.25 15:47
Тут прикол именно в скудности английского языка.
Формально фамилия Иванов тоже пошла от принадлежности (сын Ивана или холоп Ивана). Другое дело, что у нас сын Ивана стал Ивановичем, а потомок Ивана - Ивановым. Английский же язык имел ограниченные рамки системного реформирования и с какого то момента модернизировался исключительно заимствованием - при котором усложнение словоформ просто убило бы язык бессистемными противоречиями. Видимо потому инглиш и "пропустил" возможность разделения отчеств и фамилий
Kelavrik_0➦Soma• 02.12.25 16:19
Ну да, кстати фамилия Демидовы тоже от имени Демьян. Хотя суффиксов у англичан хватает. Но как то не придумали с отчествами или матчествами. Можно ведь придумать матчества Еленовна, Валерьевна и тд. Но не додумались.
А так по жизни оно не очень нужно.
finnn ★➦Kelavrik_0• 02.12.25 18:07
Матчества на Руси были (хотя телефон пытался переделать слово в Манчестер, до того непривычное). Когда мать-одиночка воспитывала нагуляного сына, его звали - Иван Марьин, или Степан Марфин. Потом это стало фамилиями, они до сих пор встречаются.
Kelavrik_0➦finnn• 02.12.25 18:30
Если и было, то экзотика. В советское время всё равно давали отчества.
finnn ★➦Kelavrik_0• 02.12.25 18:35
Экзотика, безусловно. В советское время отца записывали в свидетельство о рождении со слов матери, а в церковную метрику "левого" отца вписать было нельзя. Но и в наше время казусы были, у моего однокурсника в свидетельстве о рождении в графе "отец" был прочерк. Соответственно, в паспорте в графе "отчество" тоже.
Kelavrik_0➦finnn• 02.12.25 18:42
В постсоветское тоже можно со слов матери. В этом плане ничего не поменялось.
Softwarer ★➦finnn• 02.12.25 22:03
Самый известный пример древнерусского матчества - Иван Сусанин.
ElenaEPetrova ★• 02.12.25 12:36
Да ладно!
Никто не читает программы как художественные тексты. Примерно так же, как никто не читает подряд вывески "Ткани","Ресторан","Фаворит","Участковый пункт полиции №2".
Русскоязычный синтаксис удобнее хотя бы потому, что глаз сразу находит ошибку в написании операторов. И да, я день за днём пишу строки типа
" Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Период,
| ХозрасчетныйОстаткиИОбороты.Счет,
| ХозрасчетныйОстаткиИОбороты.Субконто1,
"
И уверяю Вас, найти ошибку в слове "запос" или "цил" русскоязычному человеку намного проще, чем ошибки в словах "wile" или "pint".
А насчёт фамилий - так у нас в средней полосе России полно интересных: Ширша, Шум, Бабюк, Русь и т.п.
Kelavrik_0➦ElenaEPetrova• 02.12.25 12:59
Просто из любопытства в свете анекдота. Вы дочь, внучка или правнучка Петра?
finnn ★➦Kelavrik_0• 02.12.25 16:28
У женщин фамилии, как правило, не потомственные, а благоприобретенные. Это муж - праправнучек Петра.
finnn ★➦ElenaEPetrova• 02.12.25 18:10
Ещё есть Туминас, Карбаускас... Это москвичи! Средняя полоса России...
писал в GDL (создан на основе Basic)
оттуда же перешла команда GOTO
как по-русски?.. ПОШЁЛ_НА или ПОШЁЛ_В? )))
Kelavrik_0➦Гарик О• 02.12.25 12:59
Это устаревший оператор! Его надо убрать. Пусть живёт в бейсике конца 80х!
Гарик О ★➦Kelavrik_0• 02.12.25 13:02
в GDL жив и процветает
хотя я лет десять его не трогал, может и убрали уже
Kelavrik_0➦Гарик О• 02.12.25 13:28
По моему я ответил внятно. Оператору GOTO место на свалке. И сохраниться он может только в языках, которые забыли.
Kelavrik_0➦Гарик О• 02.12.25 13:46
У меня знание программирования есть. Из всех языков постепенно оператор убирали.
ams➦Kelavrik_0• 02.12.25 14:55
Правильно. Туды их в качель все эти давно забытые C#, Perl, PHP, VB.NET
Soma➦Kelavrik_0• 02.12.25 15:58
Строго говоря, GOTO никто никуда не убирал ни к каких языках, его просто в прикладном программировании не рекомендуют использовать из-за потери (пользовательского) контроля над выполнением.
На практике его в пользовательском коде сейчас встретить почти невозможно, в вот в библиотеках и в драйверах в целом не редкость. По работе больше всего его встречал в решениях краевых задач (комплексное моделирование полета, численные методы или баллистика, не имеющая аналитического решения). Видел и в контроллерных кодах, хотя там и сам их применение не одобряю - управляемые переходы в отладчике ведут себя намного "мягче"
Kelavrik_0➦Soma• 02.12.25 16:21
Ну в общем да, оставили как реликт. Во всех= учебниках не рекомендуют пользоваться. Насколько я знаю, в библиотеках тоже редкость.
Kelavrik_0➦ams• 02.12.25 16:22
Его оставили но не рекомендуют пользоваться. Притом во всех учебниках. В коде практически не встречается.
Kelavrik_0➦ams• 02.12.25 16:32
Да, вдогон. Формально GOTO работает, но при компиляции вам выдадут предупреждение.
vap➦Kelavrik_0• 03.12.25 04:41
В коде встречается, причем в хорошем коде, и встречается часто, но только там, где уместно. Например, в коде линуксового ядра часто встречается в организации неуспешного выхода из функций с освобождением ресурсов - в конце тела функции цепочка освобождений ресурсов в порядке, обратном тому, как они выделялись, и при неуспехе выделения идет goto на соответствующее место в цепочке освобождений. Сделать это как-то более понятно, лаконично и надежно - не получается, хотя в язык ради этого и пытаются притащить всякие defer и подобное.
Kelavrik_0➦vap• 03.12.25 09:33
Ну так признано, что это плохой код. Что до выхода из функции, так есть волшебное слово return. Если освободить ресурсы, то можно написать короткую inline функцию, которая освободит память.
Здесь прикол в том, что ядро юникса (линукса, айрикса и тд) написано очень давно. Задолго до создания с++, был только с. Потому реликт.
vap➦Kelavrik_0• 03.12.25 11:51
Так в том-то и дело, что не признано это плохим кодом :) Он лаконичный, понятный, локальный. Все признаки хорошего кода. Ну и все-таки ядро линукса, особенно до того, как в него стали писать в таких объемах, как сейчас, это что-то вроде штампика "очень опытные люди думали, и все используемые подходы ими одобрены". А неприятие goto - оно, конечно, имеет немалые основания, но идет в основном от теоретиков, и воспринимается как догма людьми, которые сами хороший код если и научатся писать, то только через годы реальной работы, а сейчас они просто экзамен сдают :)
Коротких инлайн-функций нужна целая пачка, потому что ресурсов много и остановиться в выделении могли в любой точке. И в этих функциях будет феерический бардак. А goto решает проблему изящно, лаконично и понятно.
Ядро написано не на C++ не потому, что его не было (был он), а потому, что плюсы не дают нужной степени контроля. И ради автоматических действий при выходе из области видимости тащить целый другой язык - это уже в любом случае перебор.
Kelavrik_0➦vap• 03.12.25 12:20
Да, вы правы. С++ действительно создали в 1985, проверил. Прикол в том, что он был крайне редок. Официальный стандарт это 1998, я помнил эту дату.
GOTO нарушает логику программ. И самое главное не нужен. Неприятие накопилось именно в результате использования. Но юникс создавался на заре, тогда ещё этого неприятия просто ещё не было. Но даже в 1993, когда я читал учебники по С, неприятие уже появилось. Тогда говорили, что оператор полезен в одном случае: если надо выйти из большого числа вложенных циклов. Кстати, весьма редкая ситуация.
Что до освобождения памяти, так есть и по умолчанию. Больше того, когда создаётся функция, то создаётся блок всех переменных этой функции. За исключением static. И уничтожается автоматически. В общем нет проблем.