Pull to refresh

Comments 425

В этом отношении я согласен с Юрием

Да нормальный же язык:
ПЕР колво: ШИРЦЕЛ;
УКАЗ
колво:=10;
КОН
<!ДОКТИП ягтр>
<ягтр>
  <голова>
    <осебе кодировка="фпу-8">
    <заголовок>Если бы интернет изобрели в СССР</заголовок>
    <стиль>а { цвет: военноморскогофлота; }</стиль>
  </голова>
  <тело>
    <а>А ещё на клавиатуре были бы только русские буквы и не нужно было бы всё время переключать раскладку!</а>
  </тело>
</ягтр>

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

Раскладка была бы одна, но со всеми необходимыми знаками.

UFO just landed and posted this here

просто на клавиатуре было бы больше кнопок))

Кодировка "ФПУ-8"? Безобразие! Язык разметки ЯГТР должен использовать исключительно КОИ-8 (ГОСТ 19768-93)

Только "голова" заменить на "шапка" и норм, можно работать

ягтр как реализация ряр

Лого - учебный язык программирования (появился в 196; в 1997 году вышла российская версия):

ДЛЯ ПРИВЕТСТВИЯ
ПИШИ [Привет, мир!]
КОНЕЦ
ДЛЯ ОТВЕРСТИЯ
СВЕРЛИ [По утрам!]
М*ДАК

UFO just landed and posted this here

Программа выглядит неоптимизированной, её явно писал джун. Опытные специалисты знают, что по ночам стены мягче. Если провести оптимизацию - указать во второй строке [По ночам!] - работа программы заметно ускорится.

А зачем в программе перерывы на остальные времена суток? Эффективность же падает. Это же не какой-то порядочный человек. Ему ни есть, ни спать, ни отдыхать не надо.
🙃

Ночью электричество дешевле.

Хм, т.е. [По утрам!] и [По ночам!] подобны атрибутам из c++…
Т.е. наоборот! Создатели Лого задали направление c++!

появился в 196 - у праславян, видимо..

На обычной клавиатуре нужно постоянно переключаться на латиницу. Неудобно.

Рекомендую поставить переключение на caps lock и станет достаточно удобно)

Для того чтобы ввести []{}~@#' всё равно нужно переключаться.

Если чуть заморочиться, эту проблему можно решить

Как одинэсник, я давно нашел для себя решение: поставить Keyboard Maniac и прописать там макросы, чтобы кнопки с Ctrl работали, как будто включена английская раскладка: Ctrl+Х -> [, Ctrl+Ъ -> ], Ctrl+7 -> & и т.д.

И всё равно в результате получается вот такая путаница «n» и «н», как у автора
Заголовок спойлера
цикл 1..Цел(ввод())
   пер n = Цел(ввод())
   пер a = ввод().разделить(‘ ’).применить(Цел)
   пер ответ = (0 .< n).применить(н -> н + 1) // можно сократить до `пер ответ = Массив(1..n)`
   если a.послед == 0
      вывод_эл(ответ [+] (n + 1))
   иначе
      цикл(н) 0 .< a.длина
         если a[н] == 1
            вывод_эл(ответ[0.<н] [+] (n + 1) [+] ответ[н..])
            цикл.прервать

Объявить N и русскую Н графическими вариантами одного и того же символа, как в КОИ-7?

Да а потом туде же прописную H английскую добавить, потому как выглядит также.
Вот потом весело будет всякие сюрпризы при отладке ловить…
получается вот такая путаница «n» и «н», как у автора

А в чём тут путаница?


Переменная n названа так т.к. в тексте условия задачи на русском языке написано "строка набора входных данных содержит одно целое число n".
А переменная н обозначает просто порядковый номер. Можно было бы использовать i либо x, но, на мой взгляд, в данном случае н подходит чуть лучше.

Меня смущает то, что переменная n объявлена (во 2-й строке), а переменная н не объявлена нигде. Так что больше похоже на путаницу.

А есть клавиатуры, где не надо переключаться? То есть оба набора букв одновременно на разных клавишах?

В Linux можно подключить две клавиатуры и настроить для них разные раскладки.

Мне кажется это худшее решение из всех возможных.

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

Когда одна клавиатура на две машины, и ты нажимаешь DEL не для той машины...

Так, вроде, речь о двух клавиатурах для одной машины...

Это все сходные проблемы - неочевидная работа клавиатуры

Идея интересная, но слишком замудрённая. Даже если и есть, то вряд ли они пользуются широким спросом

Правокод - полный по Тьюрингу dsl для юристов, безскобочная нотация.
Написанный код может быть прочитан и верифицирован без изучения dsl.
Реализован транслятор в python.

Интересный комментарий - гугление по слову "правокод" дает ссылку лишь исключительно на данный комментарий, интернет по поводу "правокода" ничего не знает. Если где-либо можно узнать подробности, то где?

В отношении темы в целом - почему-то забыта система "Мастер", разработанная в начале 1990-х.

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

Правокод - внутреннее название проекта. Для внешних пользователей есть лендинг, с маркетинговой фигнёй: https://sberpravo.ru/legal-tech - "legal rules". Есть еще патент, но он как большинство патентов мутный: https://yandex.ru/patents/doc/RU2702967C1_20191014 .

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

Неплохая идея, но семантически это те же формы, что и обычное программирование, но мне лично приходят в голову такие идеи, что программирование можно построить и на семантических иных началах, а в случае "правокода" - это обычные семантические формы характерные программированию.

Еще раз спасибо за пояснения!

Немного юмора.

Если бы языки программирования были оружием, каким бы был каждый из них?
Ассемблер

C

11l

C++

Python



[Ссылка на вопрос на Quora.]

То, что спойлеры вложены друг в друга - это так и задумано?..

полагаю это намек на Форт ;)

Спасибо. Очень наглядно для не программистов.
Про Clang не упомянуто. Позволяет писать на русском названия функций и переменных.
Так это сейчас практически любой язык позволяет, будь-то C#, JavaScript или там Паскаль. Просто так писать непрактично, даже если вам не нужно, чтобы ваш код читали нерусскоязычные разработчики, вам просто надоест постоянно переключать раскладки.
UFO just landed and posted this here
И вот идея для тех, кто хочет русский язык в программировании:

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

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

1С не является и никогда не являлся языком общего назначения. Так что нет, не достаточно.

У меня в vscode стоит плагин переводящий комментарии (хотя на самом деле переводит любой выделенный текст) при наведении мышки. Так что мне без разницы на каком языке исходный код и комментари к нему

Подскажите название плагина, пожалуйста

А не проще комментарии тоже на английском писать?

UFO just landed and posted this here

Комментарии — это одно, идентификаторы — другое. Последние попросту слишком часто встречаются вперемешку с ключевыми словами и требующей другой раскладки пунктуацией.

"Непрактично? Подержи-ка мое пиво!" - сказали китайцы. В сименсовском софте (например, в таком ) уже очень давно можно писать имена символов на любом языке, в том числе на китайском. И китайцы так делают постоянно. Переменные, дата-блоки, функции - все на китайском. Особенно весело, когда установка приходит в неработоспособном состоянии, и все на китайском, включая ПО и схемы. Причем схемы не соответствуют действительности, а обозначения в схемах и в ПО контроллера разные (разумеется, и там, и там иероглифы).

function კვადრატი(عامل) {
  return عامل * عامل;
}
const सरणी = [1, 2, 3];
const 新陣列 = सरणी.map(კვადრატი);
console.log(新陣列); // [1, 4, 9]

Вот примерно так и выглядит для меня код на русском. Понимаю, что дело привычки и можно даже переучиться. Но зачем?

Но ведь этот код всегда будет печатать какашку :) Кстати, как оказалось, не так уж и сложно читать этот код. Я потратил пару минут, чтобы знакомые конструкции начать распознавать)

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

Чувствую лёгкую эйфорию, как будто иероглифы расшифровал :) На деле мне вообще пофигу на естественный язык используемый в качестве базового в ЯП. Я слова обычно не читаю и не думаю, я думаю смыслами, что они несут. if он и в Африке if, вне зависимости от того, написано там, "если", нарисован фрукт или какая-то другая абракадабра.

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

Некоторые через чур злоупотребляют макросами.

Напоминает задачку "Chuck Norris" с Coding Game.

с таким кодом никакая обфускация не нужна )

И чем это отличается от конструкторской документации на ракетные двигатели на русскому языке?

Если эта документация предназначена на экспорт, то ничем.

Вот как для прогромистов английский, так для ракетных двигателистов - русский.

Японских проектов автоматизации я пока не видел, возможно это так. Готовое оборудование - немного имел дело с Mitsubishi. Достаточно качественная документация на английском языке. Для китайских вендоров это огромная редкость. Из "обычного" японского софта приходилось работать с вот этим opensource проектом. Нормальные имена переменных на английском, попадаются комменты на японском. Но это опенсорс, так что, возможно, пример непоказательный :)

Любимая фишка китайских разработчиков конфигураторов и утилит для их же железок - конфигурация читается из какой-нибудь директории с названием иероглифами, желательно с диска M:. Я уже заколебался их творения декомпилировать, благо что про релиз-мод и тем более обфускацию они не слышали...

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

В сименсовском софте (например, в TIA portal ) уже очень давно можно писать имена символов на любом языке, в том числе на китайском. И китайцы так делают постоянно. Переменные, дата-блоки, функции — все на китайском. Особенно весело, когда установка приходит в неработоспособном состоянии, и все на китайском, включая ПО и схемы. Причем схемы не соответствуют действительности, а обозначения в схемах и в ПО контроллера разные (разумеется, и там, и там иероглифы).

это же посерьёзнее, чем отключение от SWIFT…

Я этим пользовался когда в (стороннем) swagger были прописаны русские названия переменных. Проще смириться со сгенерированным кодом (который постоянно обновляется) и переключением раскладок, чем каждый раз всё переименовывать.

"если" длинне чем "if", "цикл" длиннее чем "for", вот отсюда и появляются всякие "колво".

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

Русский язык в программировании

... не нужен.

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

И вы только что точно описали причину, по которой большинство решений на 1С было написано на русском, при наличии англоязычных вариантов ключевых слов.

В Excel с формулами кошмар = формулы на русском не работают в англоязычной версии. :(

Я вас вполне понимаю =) Меня это решение в MS Excel тоже всегда удивляло.
У 1С, кстати, с этим проблем чуток поменьше - т.е. английский и русский можно (в случае с всякими "ФабрикаXDTO", к сожалению, иногда и нужно) смешивать, и вроде с большего работает нормально, хотя и не без косяков.

Там это просто магические заклинания, надо выучить и не думать, никакой мнемоники. Редактор формул ущербен, отсюда максимальное сократительство. Например, что такое ВПР? В результате выходит какой-то диалект падонкаффского, ЕСЛИ ЗНЧ БЛШ ОКРУГЛВВЕРХ

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

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

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

Путиси.. путиси... вот поэтому и не приживается.

Во всём виноваты шрифты?

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

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

Именно это я и имел в виду!

Вот абсолютно верный коммент! Английский это аналитический язык и использовать русский для программирования, это петь "русский рок" - вроде музыка, но это не rock)))

UFO just landed and posted this here

Самое загадочное - КРАСЬСТРЕЛК(И)

Упаси боже такая статья попадется нашим чиновникам

Сколько бюджетных миллиардов попилиться на разработку этого велосипеда с квадратными колесами.

Но в результате все равно все программисты будут писать на нормальных языках - ибо глобализация и никуда от нее не деться

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

Но никто никогда не пишет – зачем? Для чего создаются подобные шедевры, что движет их авторами? Какие перспективы они видят для своих творений?

Очень хотелось бы почитать мнения поддерживающих идею «русских» ЯП, а в идеале самих авторов, если таковые прочитают этот комментарий.

Я же вижу только одно разумное предположение – just for fun.

Как учебный язык для детей.

Не соглашусь. Английский детям преподают уже с первого класса. Если учить программирование, то не стоит сразу начинать засорять мозг тем, что ему потом никогда не пригодиться во первых, и во-вторых, придется перепривыкать к нормальному кодингу…
UFO just landed and posted this here

Позвольте докопаться/поинтересоваться.

Но где Вы видели английский в школьной программе с первого класса?

У меня дочь сейчас переходит во второй класс, вот там да, будет английский язык, но в первом классе его нет. Если что, то я говорю за Санкт-Петербург.

Что за мелкие претензии?

Надо делать правильные шаги в отношении английского.

Надо заявлять:
1. Человек вправе не знать английского языка.
2. И при этом быть программистом.

Если что, я такого не заявляю. Но тот кто манифестирует «английский приди, порядок наведи» — ССЗБ.
UFO just landed and posted this here
Да, и я не возражал к этому, до определённой даты.

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

Но аргумент «весь мир» очень близок к аргументу «все так делают», не находите?
UFO just landed and posted this here
Какой именно?
Через два дня от даты с одними двойками.
Если в данном случае делать так, как делают все, несёт в себе большой ряд существенных преимуществ
Разумеется, нужно выбирать лучший вариант. А какой вариант лучший мы все знаем.
UFO just landed and posted this here
И почему же вы так решили?

Если вы хотите действительно обсудить, то задайте точный вопрос, чтобы было без моих домыслов.
UFO just landed and posted this here
Людей на Земле условно можно поделить на знающих русский и знающих английский. Условность — в отбрасывании других двух вариантов. В эту дату началась война, условно неизвестно кого с неизвестно кем. Условно потому что на этот счёт есть разногласия. Дата тоже условная. Существуют разногласия и по поводу причин этой войны и по поводу того куда она ведёт. Удивительно, но между делением кто как что понимает и знанием языка в моём воображении существует корреляция. По этому вопросу у меня есть позиция, соответственно, противоположную позицию (тут всё до двух вариантов сведено, для простоты) я считаю заблуждением. Корреляция приводит к тому что есть подозрение, что и язык влияет на понимание. Но если бы мне надо было кого-то в чём-то убедить, я бы конечно взял реальную статистику, а не воображаемую корреляцию.
Кроме того, корреляция не означает причино-следственную связь. Возможно одна и та же причина создаёт оба разделения.

Эта причина, какова бы она ни была, обращает внимание, что к понятию «своё» надо относиться последовательно.

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

Т.е. надо массово учить английский.

Т.е. надо массово учить английский.
Похоже, вы его знаете.
А знание веры ещё лучше.

Знание веры независимо от знания объекта веры. А вот знание объекта веры несовместимо с самой верой (по определению веры).

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

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

Вера в случайность не позволяет везение считать не случайностью.

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

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

Разве не удивительно, что качество информации оценивается по количеству?

Нет конечно. Чем больше выбор, тем больше шансов найти среди предлагаемого нечто качественное (это не только к информации относится).

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

2) При большем количестве источников с разными позициями появляется возможность увеличить качество информации путём личной интеллектуальной деятельности (сопоставить их друг с другом).

UFO just landed and posted this here

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

А я вот считаю что измерение информации количеством это близко к позиции «все говорят», «все так делают».
И оговорка «больше шансов» не спасает. Выбери один из миллиона кирпичей и съешь.
UFO just landed and posted this here
Давайте общаться приятно для обеих сторон.

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

Без разборов по существу всё скатится к оскорблениям. А по существу это другая проблема, чем в топике.

Впрочем, позиция «английский язык хорош» подорвана. И речь не только не о программировании. Но ещё и о программировании.

«везде где надо говорят, одно и тоже, только выбирай»

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

Ну даже в том что «одно и то же» или не «одно и то же» есть вовсе не два варианта понимания. Что если говорят разное, но по сути одно и то же?
И это добавляет вариацию: согласие с этим разделением уровней. Или противоположное, принятие множественность форм за авторитет?
UFO just landed and posted this here
Ваш комментарий можно написать всего тремя словами «передумать не пробовал?»
UFO just landed and posted this here
Предлагаю переформулировать.

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

Мысли о возможности жить и работать за границей?

UFO just landed and posted this here
За границей — это туризм, не эмиграция же? Ведь эмиграция — положительное понятие или отрицательное — уже дело вкуса. Или всем известно какой вариант правильный?
UFO just landed and posted this here

А, ну так то понятно :) Я думал мы про современную школу говорим :)

Хотя у меня дочь учит английский еще с садика, благо попался частный садик :)

Возможно и со второго. Младший уже в пятый пошел, я честно говоря не помню точно.

Но где Вы видели английский в школьной программе с первого класса?

Таштагол, Кемеровская обл. Средняя Образовательная Школа #10. Учили правда так себе, но английский был с первого класса.

Давно это было? Мне для статистики.

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

В школе у моей дочки английский с 1 класса. По желанию, правда. Алфавит учили и слова простые.

По желанию как факультатив после школы?

Спросили родителей, большинство высказалось "За". После этого добавили в расписание еще один урок. Это обычная районная школа, Питер.

Я поддерживаю создание русского языка программирования и могу ответить на этот вопрос.

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

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

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

русский человек думает на русском

Я не русский (и не украинец), и когда я говорю на русском я думаю на русском, а когда говорю на английском я думаю на английском.

Выглядит как отсутствие возражения.
UFO just landed and posted this here

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

UFO just landed and posted this here

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

Я правильно понимаю, что сейчас условные американцы\англичане пишут более доступный, точный, ясный и безопасный код, чем условные русские разработчики?

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

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

Замените "американцы\англичане" на "люди, для которых английский язык является родным" и попробуйте ещё раз

Языки русский/английский разные. Программирование на родном/не родном языке разное. Русские программируют на английском, англичане на родном. Если русские будут писать на родном, могут возникнуть преимущества.

Интересно, каким местом Python английский;) Расскажите англичанину, что является столицей Великобритании , только на Python;) Что то мне кажется что native speaker вас не поймет:)

На ассемблере тоже можно попробовать спросить как пройти в библиотеку ;)

Считаю ваше признание в не слежении за содержанием диалога бессмысленным.
Не затруднит ли тех кто минусует пояснить: в диалоге для ясности проводящем классификацию на две характеристики языка: русский/не русский родной/не родной вдруг попросить рассказать что-то человеку на языке программирования — разве это не отсутствие слежения за диалогом? Что я мог тут упустить?

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

(Не минусовал)

Для языков программирования родной/не родной — вполне определённая классификация. Вышло обновление Питона, в нём сказано «ура, новая функция, называется (новое английское слово) — ведь все англоязычные знают что оно означает — это так удобно!». Нет, не удобно.
Вот до этого момента вот именно этим словом и не пользовался, а теперь надо доучивать.
Так что вопрос удобства кодирования это одно, а удобство расширения, развития это другое.

Вот например добавился в python некий walrus operator :=

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

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

А те кто Битлз не слушали, тем совсем никак ;)

И как поможет знание того, что walrus это такое животное с бивнями, в понимании смысла этого оператора?

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

Вопрос к @yurixi. Как вы думаете, почему создатель Python - голландец - использовал для своего проекта английский язык?

Думаю, причин две. Высокая распространённость и подходящая для кодирования простота.

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

Я давно причислил аргумент «все так делают» к глупости.
Я веду диалог с позиции творчества, идея русского языка хорошая, стоит реализации.

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

Ну что за глупость??
UFO just landed and posted this here
Аргумент «как все» подразумевает что стандарт выбран за тебя.

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

А то что вы на автомате пропускаете различие — да, это глупость. Именно та, которая содержится в аргументации «как все».

Все пойдут с девятого этажа прыгать и на английском программировать. Соглашайся только во втором случае, в первом не соглашайся.
UFO just landed and posted this here
Утверждение «минусы иллюзорны» субъективно. О некоторых минусах можно даже не задумываться.
В общем, можно сойтись на том что не надо решать за других.
Я давно причислил аргумент «все так делают» к глупости.

Все в России разговаривают на русском языке. По вашей логике делать как все это глупость. Почему вы тогда разговариваете на русском языке, как делают все, а не на своем выдуманном?
Или все-таки это по каким-то причинам не является глупостью? Можете тогда сформулировать эти причины?

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

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

По-моему, я даже в детском садике закричал бы «да вы что, охренели все?»

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

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

А что, идея неплоха, может и прокатить. Вон же, хотели православный 3D движок, чем ЯП хуже.

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

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

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

Вы явно дружите с головой.

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

«Миллионы людей живут и работают во сне» — цитата из матрицы — не о том, что к мозгу подключены провода, а о том что мозг убаюкивает сознание, предостовляя основания убеждения не через доказательства, а через принятие того, что того что уже есть — достаточно для убеждения. Сон так и работает. Всё это и есть сон разума.

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

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

Тренируйте мозг, понимайте, кто кого на основании чего убеждает. И когда НЕ убеждает — тоже надо это понимать, а не то — будут являться чудовища там где их нет.
почему не надо быть баранами и не относиться к аргументации «все так делают» с полной серьёзностью

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


Но вы действительно страдаете этой проблемой, чтобы я вас от неё отучал?

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


Действительно если все скажут

Откуда вдруг взялась ситуация "без причин согласиться с тем, что все скажут"? Разговор был о том, что люди делают, а не о том, что они говорят, и о том, что у них есть причины считать свое мнение правильным, и они их вам приводили, а не о том, что они так делаю без причин. То есть прямая противоположность тому, что вы хотите использовать как аналогию.


Продолжая вашу аналогию, люди говорят вам, что то, что вы им предлагаете, "соленое и невкусное", потому что оно им не нравится, то есть делают именно то, что вы считаете правильным. Просто получается так, что это не совпадает с вашим мнением.

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

почему в данном случае вы не считаете глупостью делать как все

«Почему вы делаете как все?»
«Почему вы выбрали делать так как делают все?»
Улавливаете разницу?
«Потому что так делают все»
«Потому что оценил преимущества и выбрал»
А так?
Вряд ли утверждение "(вот этот) аргумент — глупость" — это название кого-либо глупцом

Это именно так.
Глупец — "Тот, кто поступил, вел себя глупо, сделал или сказал глупость."
Вы говорите, что они делают глупость, значит подразумеваете, что они являются глупцами, по крайней мере пока они так делают.


Улавливаете разницу?

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


«Потому что оценил преимущества и выбрал»

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

Вникайте в тонкости. В диалоге обмениваются аргументами, и аргументы принимаются, диалог продолжается. А здесь у нас с вами что за затык?

Прямо говорю, что применение единственного аргумента что все так делают, без осмысления почему надо за ними повторять — это глупость.

Куда прямее? Если вы скажете «так надо делать потому что так делают все» — я назову это глупостью и разрешу вам домыслить, что вы и сам глупец.

Тот кто объясняет почему бы он сам не стал развивать русский язык программирования — вполне правильно ведёт диалог. А тот кто возмущён, почему это кто-то вдруг не стал повторять за всеми и сам не видит разницы между существованием и отсутствием момента осмысления — тот вы.
А здесь у нас с вами что за затык?

Затык в том, что вы уходите от ответа на вопросы.


Куда прямее?

Напоминаю мой вопрос:
Почему вы тогда разговариваете на русском языке, как делают все, а не на своем выдуманном?
Или все-таки это по каким-то причинам не является глупостью? Можете тогда сформулировать эти причины?


Ответа на него вы не дали. Прямой ответ на этот вопрос должен начинаться "Я разговариваю на русском языке, как делают все в России, и не считаю это глупостью, потому что ...".


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

А почему вы решили, что ваши собеседники делают так без осмысления? Вам неоднократно привели аргументы, почему они так делают.


А тот кто возмущён, почему это кто-то вдруг не стал повторять за всеми и сам не видит разницы

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


То есть человек не говорил, что причина в том, что все так делают, это вы приписали ему эти слова.

Я разговариваю на русском языке, как делают все в России, и не считаю это глупостью, потому что
Дело не в том что так делают все, а в том что этот язык для меня родной. Вам помог этот очевидный ответ найти разницу между «как все» и другими вариантами аргументации?
это вы приписали ему эти слова.
Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился? Вы бы предположили, что с вами что-то не так, да? Что-то до вас не дошло бы в этом случае. Явно что-то упускаете.
Дело не в том что так делают все, а в том что этот язык для меня родной.

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


Вам помог этот очевидный ответ найти разницу между «как все» и другими вариантами аргументации?

Почему вы решили, что я до этого не находил разницу «как все» и другими вариантами аргументации?
Вы постоянно приписываете собеседнику какие-то свои домыслы в оскорбительном ключе.
Я указывал вам на то, что ваши собеседники и так используют другие варианты аргументации, отличные от "как все".


Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился?

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

не делать как все

Вот ты и попался. Отрицание аргумента «делать как все» не приводит к аргументу «делать не как все». Ну что, школьник, уроки все сделал? Шучу, не обижайтесь.

Но если серьёзно, прям загадка, как это так? Вроде рассуждать умеет, но вот как это у вас происходит — отрицание сразу шатает в противоположность да? А вы точно программист? Как можно приписывать мне аргумент «хочу не как все» на основании «не хочу как все»?

Различие мимо проходит, что ли, не улавливается?
говорит аргумент, который является противоположностью

Давайте закончим. Ну зачем мне разговаривать с человеком который думает, что рубит в логику, а сам не рубит? Я ж от смеха лопну. Я уже один раз пошутил, а дальше ещё одно подтверждение.

Да, собеседник не выражал согласия. Но эти два мнения просто не логические противоположности, как вы сами себе придумали. Так что вполне мог.
Отрицание аргумента «делать как все» не приводит к аргументу «делать не как все».

Приводит. "Ничего не делать" тоже означает "не как все".


Как можно приписывать мне аргумент «хочу не как все» на основании «не хочу как все»?

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


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


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


Но эти два мнения просто не логические противоположности, как вы сами себе придумали.

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

вы сказали, что делать как все это глупость
Так так. сравним.
Я давно причислил аргумент «все так делают» к глупости.

Так что же является глупостью? Делать как все, или аргументировать через то что все так делают? Вот неразрешимая для вас загадка.

Я предполагал, что вы умный человек, и не будете участвовать в дискуссии, подразумевая этот вариант.
У умного человека целых три варианта. Так и запишем. Не больше и не меньше.
Я не умею читать мысли, и поэтому не могу узнать, какие другие варианты, противоречащие логике, вы себе придумали.
На арене выступает человек, не умеющий читать мысли другого человека, но точно знающий, что они противоречат логике!

Так. Я проржался. Теперь надо, наверное, как-то обсудить конкретно, противоречат ли два утверждения «есть много аргументов почему все это выбирают» и «аргументировать через то что так все делают — глупо» не противоречат друг другу.

Разница в существовании момента осмысления перед выбором. Если первое сообщение подразумевает, что выбор просто разумен, и его можно рассмотреть, то нет никакого противоречия. И даже со вторым сообщением автор первого может согласиться. А если подразумевает, что надо просто повторить, то осмысления нет и тогда есть противоречие.
Делать как все, или аргументировать через то что все так делают? Вот неразрешимая для вас загадка.

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


У умного человека целых три варианта. Так и запишем. Не больше и не меньше.

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


На арене выступает человек, не умеющий читать мысли другого человека, но точно знающий, что они противоречат логике!

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


Теперь надо, наверное, как-то обсудить конкретно, противоречат ли два утверждения «есть много аргументов, почему все это выбирают» и «аргументировать через то, что так все делают — глупо» не противоречат друг другу.

Так, я похоже понял. Вы опять потеряли нить разговора. Напомню диалог в этой части:


— То есть человек не говорил, что причина в том, что все так делают, это вы приписали ему эти слова.
— Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился?
— … все эти "если бы да кабы" никак не меняют факта, что человек этого не говорил.
— Да, собеседник не выражал согласия… Так что вполне мог.


Я говорил о том, что человек не говорил аргумент, что "все так делают".
А вы почему-то решили, что под "не говорил" я подразумевал его согласие с вашим комментарием.


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

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

Делать что-то исключительно по причине что "все так делают" это глупость.


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

Англичане программируют на 'родном', но это им не даёт преимуществ. Другие народы, для которых английский является родным, тоже не получают преимуществ. Русские могут получить преимущества, я правильно понимаю?

Да, из-за того что сам русский язык другой.

А есть конкретные примеры того, что именно есть в русском такого, что поможет писать более ясный и безопасный код? Склонения? Падежи? Что?

Мы обсуждаем то чего ещё нет, но в общем, возможно.
Преимущества навскидку? В русском языке есть разные окончание для розного рода, и поэтому упомянув переменные, названные разными родами, повторное упоминание в этом же предложении можно обозначать его/её, и будет ясно о чём речь. Или привязать глагол, и по одному окончанию будет ясно к чему он относится. Но сам русский язык программирования я вам сейчас сходу не придумаю. Даже указанные особенности могут восприниматься сейчас не как преимущества. При общении — рода, падежи и склонения помогают, остаётся эту помощь воплотить в программировании.

есть разные окончание для разного рода

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

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

При общении — рода, падежи и склонения помогают, остаётся эту помощь воплотить в программировании.

Вот в этом и проблема. Идея звучит может быть и хорошо, а куда её прикрутить и как использовать, не понятно.

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

Было бы реально круто!

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

В Руби, например, обрабатывается окончание множественного числа у имен переменных, и, как по мне, от этого один вред и проблемы. Больше такого не видел нигде, и слава богу.

А вдруг(!) компьютер потому и тупой что программируется на английском?

Ужасно. Серьёзно, у вас мысли на уровне Задорнова (не комплимент).

Ну нет, мысль просто свёрнута до одного предложения. А так — вы действительно думаете, что составлять программы пользуясь микрофоном и динамиком было бы хуже?

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

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

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

Ну нет, мысль просто свёрнута до одного предложения.

Так я про это и пишу - вы как и Задорнов приписываете языку какие-то мистические свойства.

А так — вы действительно думаете, что составлять программы пользуясь микрофоном и динамиком было бы хуже?

Я вообще не понимаю этого аргумента - это в каких случаях надиктовывание текста годится для чего-то, кроме дневника капитана в "Звёздном пути", или заметок патологоанатома? И то во втором случае это в итоге переносится на бумагу.

Программирование сейчас это кодирование. Английский язык подходит для кодирования потому что сам похож на кодирование. Русский язык отличается. Предполагаемый язык программирования, который был бы русским, не только предоставлял бы другие символы для кодов, он мог бы разбирать живую речь, что может быть реализовано через голосовое взаимодействие. И отвечать программная среда для моментов отладки тоже могла бы.

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

Каким местом английский язык похож на кодирование? Разве что некоторые слова из английского совпадают с ключевыми словами из некоторых языков программирования. Так с русским то же самое ;)

Как каким, а одинаковые формы слов относительно разных форм для разных падежей в русском языке?

Как вам времена из английского языка?

Что вы имеете ввиду?

Что вы имеете ввиду?

В английском языке есть времена. Их много. Попробуйте закодировать ;)

А вы что имеете в виду (с примером если можно)?

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

благодаря отсутствию падежей издалека это выглядит как грамотная конструкция

Очень издалека. Для меня тоже любой набор иероглифов выглядит как образец каллиграфии.

А вот «вернуть переменная» на русском уже выглядит не грамотно.

Всего то? Ну кодируйте "переменная" и "переменную" в один токен var и будет компилятору всё равно, а вам будет щасьтье.

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

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

И отвечать программная среда для моментов отладки тоже могла бы.

Фэйспалм... ЭТО НИКОМУ НЕ НУЖНО. Нужна возможность видеть всё состояние программы, нужна возможность условных остановок, возможность отлатки дампов, куча всего нужно - но не голосовая озвучка. И не распознавание голоса. И не суверенный язык программирования.

Из вашего комментария я понял, что вы боитесь, что вас обманут путём того что представят под видом перспективной разработки то что будет выглядеть как русский язык программирования, а по факту будет содержать излишества и являться необоснованной тратой средств. Думаю, если так и будет, то это буду не я. Меня можете не бояться.

Я бы что-нибудь полезное сделал.

либо теоретик.

Либо просто тролит ;)

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

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

много домысливает, и только рамках своих представлений.

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

более удобный вид общения

Автоматы Милли/Мура не умеют в общение.

В Руби, например, обрабатывается окончание множественного числа у имен переменных

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

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

Как правило, программирование - это кодирование алгоритмов. Сможете придумать алгоритм, в котором можно как-то использовать "упомянув переменные, названные разными родами, повторное упоминание в этом же предложении можно обозначать его/её, и будет ясно о чём речь"? Потому что о чём речь я не понял ;)

Я бы сказал объяснение алгоритмов. Если компьютер поймёт фразу «возведение в квадрат это умножение числа на него же», то это и будет примером. Другой вопрос — видны ли преимущества?

Если компьютер поймёт фразу «возведение в квадрат это умножение числа на него же», то это и будет примером.

Тут 2 вопроса:

1 - а компьютер поймёт эту фразу?

2 - y = x*x выглядит достаточно понятно, но значительно более лаконично.

3 - попробуйте описать ряд Фурье на русском языке. А в метематической нотации это одна формула, которая достаточно тривиально кодируется на любом ЯП.

В своих статьях я описывал преобразование Фурье на русском языке, и мне вполне ясно, что формула имеет преимущество в лаконичности, но описание словами всё же добавляет что-то важное для понимания.
возведение в квадрат это умножение числа на него же

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

Он уже может это понять, русский язык для этого не требуется.


function square(number) {
  let itself = number
  return number * itself
}

функция возведениеВКвадрат(число) {
  значение него = число  
  вернуть число * него;
}

Грамматический род слова на русском в этом примере не играет никакой роли. На английском отсылка к самому числу выражается аналогично.
A square is the result of multiplying a number by itself.


А вот здесь с вашим подходом уже ничего не понятно.


функция нашаФормула(число, коэффициент) {
  вернуть коэффициент * число * него;
}

"Него" это коэффициент или число? В данном случае ваш подход имеет недостаток.


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

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

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

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

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


и вижу перспективу

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


и вижу перспективу

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


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

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

А продвижением в разработке это было бы, если кто-то это разработал.
Это конечно очень интересно, когда полезный пример приведён, но не разработан. Вряд ли у кого-либо это бы получилось.
разговор как раз о замене слов
Замена слов тривиальна, не стоит обсуждения.
еще никто так не сделал А изобретение искусственного интеллекта от языка ключевых слов не зависит
Вот, кстати, действительно здравая идея — после реализации аналога естественного русского языка позволить образоваться и аналогу естественного английского языка. Обязательно позволим.

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

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


Замена слов тривиальна, не стоит обсуждения.

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


после реализации аналога естественного русского языка

Вы либо не поняли, что я написал, либо намеренно проигнорировали. То, что вы называете "реализация аналога естественного русского языка", невозможно без изобретения ИИ. Без ИИ это будет просто замена одних ключевых слов на другие. А с ИИ это не будет языком программирования.

«Разработан» в моем комментарии означает
А в моём комментарии «разработан» значит доведён до демонстрации концепта.
можно привести полезные для данной дискуссии примеры
полезные примеры потому полезные что работают, в какой-то степени уже представляют собой концепт.
Не вам решать за других людей, что они хотят обсуждать.
То есть, надо было уточнить «не стоит моего обсуждения», не слишком ли это было эгоцентрично? Я вообще имел ввиду, что не обсуждаю простую замену слов, там изобретать нечего.
Без ИИ это будет просто замена одних ключевых слов на другие. А с ИИ это не будет языком программирования.

Да, а вариант что программист разработал язык программирования, и он похож на естественный, но без неопределённостей, для разъяснения которых нужен «ИИ», вы исключаете?
А в моём комментарии «разработан» значит доведён до демонстрации концепта.

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


То есть, надо было уточнить «не стоит моего обсуждения», не слишком ли это было эгоцентрично?

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


без неопределённостей, для разъяснения которых нужен «ИИ», вы исключаете?

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


Человек может пользоваться естественным языком потому что у него есть способность анализировать входные данные, которые поступают постоянно. У компьютера такой способности нет. Ее реализация на уровне, аналогичном человеку, это и есть ИИ. Другие варианты требуют предварительной формализации, закладывание формальной модели в компилятор, и обозначение элементов модели ключевыми словами.


Да, а вариант что программист разработал язык программирования, и он похож на естественный

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

это моя ошибка, извините
Вряд ли после моих слов о том что я бы не обсуждал замену вам стоит говорить чтобы я извинился что начал её обсуждать. Для уточнения: где конкретно указывается, что речь в этой ветке о замене, вдруг я упустил?
а для понимания входного текста на естественном языке.
Так. У нас тут целых четыре варианта образовалось. Обычный ЯП, ЯП с заменой слов, ЯП по форме похожий на естественный и действительно естественный для распознания которого нужен ИИ. Не много, не запутаемся?
Это ничем не отличается от существующих компиляторов.
А, четыре многовато для вас. Ну ладно, как хотите.

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

Где подтверждения того, что третья категория отличается от второй (либо четвёртой, в зависимости от того, с какой стороны подходить)?

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

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


Вряд ли после моих слов о том что я бы не обсуждал замену вам стоит говорить чтобы я извинился что начал её обсуждать.

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


Считаю ваше признание в не слежении за содержанием диалога бессмысленным.


Не много, не запутаемся?

Выглядит как отсутствие возражения.

Вы не ответили на вопрос, что само по себе является грубостью,
… в теме, где другие обсуждают замену.
вот вы и сами не ответили на вопрос об уточнении уточнение где это такое.
Считаю ваше признание в не слежении за содержанием диалога бессмысленным.
Я бы не стал собеседнику отвечать его словами, даже если бы они подходили. Это же неуважение ни к себе ни к собеседнику. Давайте хотя бы эту ветку оставим уже? Я в ветке про логические противоположности в высказываниях сейчас пытаюсь ответить так чтобы до чего-нибудь разумного договориться.
вот вы и сами не ответили на вопрос об уточнении уточнение где это такое

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


Действительно, я хотел ответить на этот вопрос, но пропустил его в финальной версии комментария. Но хочу заметить, что если вы сами не отвечаете на вопросы, то этим понижаете уровень дискуссии до того, где это допустимо, а потому не можете относительно этого предъявлять претензии собеседнику.


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

Поищите эти фразы на данной веб-странице. Они задают контекст всего этого обсуждения.


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

Мне жаль, что я не остановился и нафлудил с таким бескультурным неумным собеседником.

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

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

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

Просто сравните музыкантов профессионалов с музыкантами самоучками, пусть играют не так чисто, зато душевно.

А ещё были всякие математики смешные, которые додумаются до умного и им это так просто кажется, и словами они могут объяснит ту простоту, а вот доказать всему миру не то что не могут, а не пытаются, потому как всему миру нужно строгое математическое доказательство по всем правилам как все делают! А потом весь мир вместо развития дальше столетиями пытается по всем правилам доказать то, что понятно описано словами, но чтобы как все.

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

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

UFO just landed and posted this here

А можно, пожалуйста, без шуток, закрепляющих гендерные стереотипы?

UFO just landed and posted this here
Кроме того, сложность языка заставляет развивать понимание, воображение на слушающей стороне, что в программировании означает на стороне компьютера. А это значит, приближение программирования к диалогу с понимающим, ответственным исполнителем.

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

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

Анекдот.

Лампа просьбу поняла дословно правильно! Правда почему-то результат неожиданный!

Не только программирую, но и придумываю новый язык, вы находите здесь противоречие?

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

Разработчик. Планируется статья, когда будут результаты.

О! программирование как общение - прям мечты из журнала "Человек и Машина" за 1980й. А создание такой среды разработки на чём? на обычных ЯП, и это колоссальный труд, и его смысл пока не виден.

Всегда предполагал что программист мыслит абстракциями. А потом уже идет реализация через ЯП.

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

Так процедура, функция и есть абстрактный шаблон. Передали аргументы, получили результат.
Мы не работаем с физическими объектами в большинстве случаев.

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

Шаблоны в С++ и функции базовых классов в ООП - и есть "абстрагирование". Да и сами классы - суть абстракция реальных сущностей, а методы - абстракция взаимодействий.

«Создание шаблона» — это не абстракция, а вот «шаблон создания шаблона» — абстракция.

Шаблон создания шаблона - это схоластика.

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

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

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

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

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

Вы спросили нейронку. Нейронка вам дала ответ. Вы его использовали. Ответ оказался вредный. На каком этапе нужно вводить изменения, в ваш вопрос, в нейронку, или в процедуру проверки ответа перед практическим выяснением того что он навредил?

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

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

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

Так. Аргумент что кому-то не хватает времени и денег понятен. А вот указание, что у меня найдётся много ошибок — по моей классификации необоснованное принижение достоинства. Вот прям наверняка, без вариантов? И прям кучу? Не три, не десять, а кучу?

Нормально же общались.

Я и так уделил этим обсуждением весь день. Мне карму слили чисто по упоротости недорусских по английскому языку и мировоззрению. Половина оппонентов не умеют ни читать ни в логику. Сама мечта не оценена.

И вам обязательно вот так под конец дня хамить?

Что-то как-то перебор.

Зря вы обижаетесь - это обьективная реальность. Если не использовать статический анализ - то в "безопасных" языках будет 1-2 ошибки на страницу, а в C/C++ - еще больше. Такова сложность современных ЯП.

А времени и денег не хватает всем - бюджет не безграничный и рынок тоже не будет ждать вечно

Вы проецируете своё отношение к ошибкам в программе на меня. У меня другое отношение к ошибкам. Не общепринятое, можно сказать.

Писать на Idris и доказывать всё необходимое c проверкой на тотальность?

Как вы считаете, все понимают то что они сами говорят, или есть исключения?

Программирование с доказательствами это хорошо, но что если будут такие места, где наоборот, именно доказательства ожидать и не стоит?

В этой теме копать и копать.

все понимают то что они сами говорят, или есть исключения?

Никто не понимает - это фундаментальное ограничение естественного языка.

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

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

Так и делается.
Шаблонные классы с шаблонизированными шаблонными параметрами и переменным количеством простых типов-параметров, вот, например.

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

Если шаблон функции можно будет свести к «С учётом что было объяснено выше нам понадобится функция, сам понимаешь какая, и сам понимаешь как называется». И это развернётся в исполняющийся код, то это будет хорошим приближением к естественному языку.

Ну тут либо неоднозначность и трудноуловимые ошибки — такое сейчас готовы предоставить нейросетевые классификаторы.
Либо долгое объяснение, какие функции что делают, то есть написание библиотеки алгоритмов, откуда можно создавать объекты и функции, подставляя им конкретные типы данных и шаблонные стратегии (типичный пример стратегии в C++ — аллокатор при создании контейнеров).

Объяснять выше, собирая конференц-колл и проводя двухгодичные курсы алгоритмов и структур данных для компьютера, мало толку: на выходе получится та же стандартная библиотека, только с ошибками — во всяком случае, люди, начав код писать после такого курса, довольно быстро узнаю́т слова off-by-one и segfault.
Объяснить сложные вещи как-то ещё более по-другому — непонятно как, и от выбора языка это не сильно зависит, хотя конечно, в языке должны быть необходимые слова и абстракции.

Всё сходится к такому хорошему абстрагированию, которое переходит в понимание. Но и там проверку правильно ли друг друга участники понимают, не стоит отменять.

Я бы не хотел работать с такой системой, скажем прямо. По одной простой причине: когда (не "если") она сделает не то, что надо, мы не сможем разобраться, почему.

Ну для того чтобы такого не было надо быть на одной волне)

И проверить, правильно ли тебя поняли помогает и в обычном кодировании.

Разница только в том, что при обычном кодировании это возможно, ввиду его формализуемости.

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

"Quis custodiet ipsos custodes?" Где гарантия, что проверка интерпретациями друг друга будет иметь хоть какую-то достоверность - опять-таки, в условиях не-формализуемого языка?

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

То есть, какая-то принципиальная основа действительна должна быть.

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

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

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

А как проверить правильно ли тебя поняли?

Аналог отладки, тестов. Только при приближении к общению — ответ на уточняющие вопросы.

При использовании формального языка или формул это просто.

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

Ну, если у вас был опыт с людьми которых надо непрестанно проверять, то вам, наверное, виднее. По моему опыту можно объяснить и проверить объяснение за ограниченное время. Ну, в рамках мировоззренческих установок.

Человеку не ставят задач на python.

Компьютеру не обьясняют, ни на английском языке, ни на латыни.

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

А вы попробуйте реально абстрагироваться. Возьмите любую проблему по работе и замените в ней все важные сущности случайно выбранными словами. Допустим, у вас есть группы пользователей с разными правами доступа к объектам. Назовите группы "яблоками", пользователей "сапогами", права доступа "кляксами", а объекты "яичницами". Итак, "сапог может входить в разные яблоки, которые имеют разные кляксы к яичницам...". Все существенные отношения между сущностями тут сохраняются, но сомневаюсь, что у вас получится рассуждать таким образом. И даже если взять нейтральные имена А, Б, В и Г, вряд ли это что-то изменит.

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

Вы не поверите, но я с таким сталкиваюсь так как поддерживаю несколько систем на 1с, одна из которых довольно древняя.
Так там хватает и программирования на русском и случайных слов не связанных с предметной областью (переменные ГВ, ХВ, СЗ_, ДН_ и.т.п.). При работе с ними как раз помогает абстрагирование.

При этом я ещё и умудряюсь получать удовольствие, так как воспринимаю работу с таким кодом как логическую головоломку(хотя может это проф. деформация...)

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

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

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

Чтобы программировать на PHP не обязательно знать, как переводятся слова while, switch, yield, надо просто знать, как они работают.

И кстати, попытки довести синтаксис ЯП до человеко-понятного текста на английском или русском вообще не доводят до добра. Код - это не речь, это отдельный "язык".

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

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

Уже TDD и дебаг можно воспринимать как ответные шаги в общении с компьютером.

для программирования нужно переключаться в другой режим

Вот не согласен, ибо по крайней мере у меня как-то не так происходит. Например, когда думаю, надо написать какое-то условие, проговариваю в уме "если", но пишу "if". Аналогично при чтении кода: вижу "if" -- читаю "если".

«активное непонимание необходимости русского языка программирования» — это торможение развития компьютерных технологий

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

«активное непонимание необходимости русского языка программирования» — это торможение развития компьютерных технологий

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

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

Вот для меня С++ (или другой язык программирования) и выглядит как иностранный язык, отличный от английского или какого-то другого естественного языка.

когда думаю, надо написать какое-то условие, проговариваю в уме «если», но пишу «if».
О том и речь, без переключения бы так и писали «если».
не имеют под собой основания.
Дело в том, что такое уже упомянутое явление как «русскийязыкнинужын» существует, и в комментариях много примеров. Моё высказывание направлено против него. Если вы и явления не ощущаете, то и обсуждать нечего.

О том и речь, без переключения бы так и писали «если».

Но это утверждение работает и в другую сторону. Т. е. какой-нибудь немец может заявить вот если бы вместо "if" писали "wenn"... Да, и что твориться у китайцев страшно себе представить, говорят "rén", а пишут "人". Также скажу, что мы говорим "малако" (более точно, "мълᴧко" -- но мы этого не чувствуем), но пишем "молоко". А вот если бы сразу писали "малако"...

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

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

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

Дело в том, что такое уже упомянутое явление как «русскийязыкнинужын» существует

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

у китайцев страшно себе представить, говорят "rén" ", а пишут "人".

Что звучит как "жэн", а по Палладию пишется "жэнь" (у Палладия "ng" пишется как "н").

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

Все кто утверждает «давайте русского языка программирования не будет» говорит «давайте не развивать ИТ в этом направлении». «Давайте не развивать», ага — явно не позитивное предложение.
чтобы языки програмирования были похожи в некоторой степени.
Ну да, а то что это не как все.

В даёте себе отчёт, что на моё утверждение «при программировании нужно переключаться» вы возражаете по типу «при программировании нужно переключаться»

Лично я не переключаюсь, по крайней мере, "базовый" C++ для меня это как родной язык.

Русский язык для вас не родной, или в чтение не всегда?

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

Ну да, а то что это не как все.

Условно, зная С++, человек может легко освоить Java или C# (или вернее сказать, ему будет легче освоить) в силу похожей "лексики" и грамматики языков. Но вот язык с абсолютно другими непохожими ключевыми словами будет освоить ему гораздо сложнее (Я напомню, что слова языка программирования я не воспринимаю как слова естественного языка). Тогда зачем следует тратить время на создание языка, который текущим разработчикам будет сложнее освоить. Конечно, язык программирования это, вообще говоря, теоретическая вещь. Для использования его на практике (в промышленности) нужны дополнительные вещи, например, компилятор. Если же язык для учебных целей -- то зачем, если у него нет применения в промышленности, а это значит, что с него надо будет переучиваться потом на язык программирования с другой "лексикой", что будет сложнее, чем изучение первым языка, более приближенного или совпадающего с языком, используемым в промышленности.

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

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

А зачем тратить? Уже всё потрачено. С помощью небольшого заголовочного файла неправославный С превращается в православный , даже с ятями. Здорово, правда?

на моё утверждение «при программировании нужно переключаться» вы возражаете по типу «при программировании нужно переключаться»?

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

Ваше утверждение: «при программировании нужно переключаться, если язык программирования не основан на естественном языке, знакомом программисту
Вот прямо что я говорил:
Дело в том, что русский человек думает на русском, и для программирования нужно переключаться в другой режим.
Почувствуйте разницу. В том что Англичанину не надо переключаться я не говорил. Что, все минусы — от этих домыслов, да?

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

Или надо будет, но на такой который на ближе к родному.

для программирования нужно переключаться в другой режим

В режим программирования? Любая деятельность подразумевает некий набор "слов" - на естественном языке или на ЯП. При этом на естественном есть огромное количество специфичных слов - вон у любителей парусного спорта спросите. Даже когда я еду на велике по всякой пересеченке, я внутри себя думаю специфичными "словами", не все их них русские (а те что да - часто матерные). Также и с программированием - тут есть некоторые "слова", которыми нужно пользоваться. Кому какое дело на какой естественный язык они похожи? Они им не являются.

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

Опять же - понятной кому? Программисту и так понятно, на то он и программист. А не программистам оно нафиг не нужно, на то они и не программисты.

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

Ну... да? Я это и говорю - слова это только форма, какая разница какие они там. А вот зачем тратить усилия на создание и, что важнее, поддержку языка с другими словами, мне непонятно.

Но никто никогда не пишет – зачем? Для чего создаются подобные шедевры, что движет их авторами? Какие перспективы они видят для своих творений?

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


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

обычному человеку удобнее общаться на родном языке

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

Допустим, у нас есть два ЯП. Язык Q с ключевыми словами на английском языке и язык Ы с ключевыми словами на на русском языке. Совершенно очевидно, что язык Ы является более русским, чем язык Q.


Q.E.D.


В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее.

В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее.

Если не ошибаюсь, примерно так в 90-х начинался всем известный язык Ruby. С ним работать действительно удобнее? Я просто не могу судить, я на нём постоянно NameError получаю, закодить что-то крупное не получается, но я, наверное, просто английским не владею?

В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее

Живая речь содержит слишком много неоднозначности и недосказанности, так что вряд ли.

Ну и в целом, звучит слишком категорично и без пруфов

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

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

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

Для тех из них, кто понимает русский, очень весело звучит название 1С

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

...я как-то just for fun, одну из обработок в 1С переписал на "английский" (да, 1С - двуязычный):

Штатных программистов 1С ставило в тупик

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

Это не более чем вопрос привычки. Т.е. мне, допустим, комфортно читать код на английском, если это не 1С (мысленно на русский при этом не перевожу), а вот читать код 1С на английском - "ломает" (этакий своеобразный "эффект зловещей долины" только для программирования - мозг понимает, что это 1С, но какой-то неправильный =)).

Quer, TTab, ArrRep, Lin,

For each Str in TTab

For each Str2

Вы не только программистов 1с в тупик ставите таким кодом)

Quer - чтобы не пересекаться с зарезервированным словом, TTab - да, это не "тип таб", а всего лишь "временная таблица", а то, что "str" в 1С не зарезервирован - ну, такова селявя😎 и вообще, меня программированию учили в те лохматые времена, когда счётчиком цикла были переменные "i,j,k", строковыми переменными были "a,b,c...", а числовыми "n,m,x,...", так что приведённый выше код можно считать абсолютно читабельным... и да, "серьёзно" не писал года с 1994-го - так, костыли и подпорки всякие иногда колхозю, да, на проде, да, иногда и не в "микробизнесах", но когда надо, чтобы "работало со вчерашнего дня", иногда приходится...

Выбирать название quer, чтоб не пересекаться - не самая лучшая идея.
TTab можно назвать TempTab хотя бы. Вместо Str и Str2 можно написать, что это за str вообще, иначе Lin.Add(Str(Str2.Title)) и не читаемо и подвержено ошибкам при изменении.

но когда надо, чтобы "работало со вчерашнего дня", иногда приходится

Придумать имена переменным не займёт несколько дней. Хотя бы имена, отражающие суть, а не просто str и str2

Вместо Str и Str2 можно написать, что это за str вообще, иначе Lin.Add(Str(Str2.Title)) и не читаемо и подвержено ошибкам при изменении.

Там весь цимес этой обработке в том, что на вход она получает название запроса, и по сути, она не знает ни размеров возвращаемой запросом таблицы значений, ни что это за значения (вся интерпретация данных - от ожидаемого количества столбцов до сопоставления типов данных и форматирования - на запросившей стороне), хотя по прошествии лет могу согласиться - вместо Str2 красивее было бы Cell (значение ячейки обрабатываемой строки), а вместо Lin - LineRep (строка отчёта) или LineRet (возвращаемая строка). И вообще, именно эта обработка - нерабочая - я пытаюсь перебирать строки не в таблице Cols, а в возвращённом результате запроса TTab, не являющемся, в общем случае, таблицей ))) Да, "боевой" обработки от того древнего проекта под рукой не оказалось (он остался в боевой конфигурации предприятия) - попался первичный набросок, сделанный на домашнем компе в пустой конфигурации.

просто просится сюда этот старый мем

Может и не старый. Может кто-то из будущего прислал

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

дебаггинг code review

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

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

Да, если бы речь шла о том, чтобы что-то программировать на каких-то очень высоких уровнях абстракции и в специфических сферах, то там, возможно, имело бы смысл использовать русский язык, чтобы получать какой-то профит от его персональных особенностей. А просто так, ради православного рескина GO TO на ВЫЙДИ ВОН - бессмысленно, даже (особенно) для детей.

GO TO на ВЫЙДИ ВОН

Скорее не выйди вон, а иди на.

Пролог и Форт позволяют писать на любом языке если не ошибаюсь.

UFO just landed and posted this here

Удивлен, что еще никто не упомянул этот древний баян на C++

Баян (осторожно мат)
#define говно NULL
#define нихуя void
#define факт bool
#define хуёво false
#define пиздато true
#define цифра int
#define число float
#define базар char
#define ТамГде *
#define типа {
#define ёба }
#define это =
#define сука ==
#define и &&
#define или ||
#define чатко const
#define базарь cout<<
#define спроси cin>>
#define блять ;
#define то )
#define иначе else

#include <iostream>
using namespace std;

нихуя main()
типа
	факт Semki блять
		базарь "Семки есть,, ёба? /n" блять
		спроси Semki блять
			если Semki сука пиздато то
			типа
				базарь "Красава" блять
			ёба
			иначе
			типа
				базарь "Нарываешься, сука? /n" блять
			ёба
ёба

Есть конспирологическая версия. Язык Кумир создан по заказу Госдепа США для того. чтобы окончательно похоронить попытки создать кириллический ЯП с именами команд на основе русского языка. А рептилоиды в министерстве образования вредительски внедрили его во все школы страны. :)

Почему?

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

  • Документация к нему и учебные материалы (для коих он, собственно, и создавался), написаны ужасно и непонятны ни детям, ни взрослым.

  • массовое внедрение в разноуровневые школы привело к тому, что на нем писались только самые простые и примитивные вещи. Даже Интернет не знает ничего сверх ГДЗ,

  • На олимпиадах по программированию этот язык не котировался от слова никак. а потому школьник, которых хотел развиваться, на нем развиваться не мог.

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

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

Я лично в свое время прошел в 1993-94 когнитивный диссонанс от того, что учебники были на некоем кириллическом языке, и задачи были на нем же, а реально у нас был нормальный бейсик, к которому не было никаких пособий, кроме страшно дефицитной методички для поступающих в ГАУ. И даже если бы удалось разыскать и чудом прошить этим кириллическим языком БК-шки, то все равно для дальнейшего развития надо было бы осваивать другие языки.

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

Язык ключевых слов и команд в ЯП не имеет никакого значения.

... если этот язык - английский

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

В спектрумовском basic ключевые слова сохранялись как готовые токены. Нельзя LIST набрать из 4 символов, можно только ввести готовый токен 1 нажатием. А отображение токенов бралось из ПЗУ, были бы тогда в хожу эмоджи - можно хоть иконки нарисовать.

Очень зря пропустили OneScript. Его создавали люди практикующие программирование на 1C, С#. Так что получился самый адекватный язык из всех перечисленных на мой взгляд.

Надо воспринимать английский язык в ключевых словах языка программирования не английским языком, а латынью, математическими обозначениями, и тогда переводить на русский язык не надо будет. Мне кажется, перевод на русский язык наоборот ухудшит понимание программного кода, ибо будет смешивать в голове программиста бытовую семантику с компьютерной. А вот имена переменных/функций для обозначения сущностей прикладной области на русском языке норм (и компактные DSL-язык для композиции бизнес-логики, возможно, тоже можно для конфигураторов/менеджеров делать на русском).

"не английским языком, а латынью, математическими обозначениями" - Мне кажется вы заново изобрели APL

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

Судя по результатам голосований (на compiler.su и даже здесь на Хабре) идею программирования на русском поддерживает не так уж и мало людей.

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

Ну-ка(двое из ларца)

Замесить

Нарубить

К сожалению интерпретатор был глючный, поэтому после получение команды "замесить" месились дрова, а команда "нарубить" рубила тесто :-)

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

В принципе без разнице на каком языке будут комманды, программировал на 1с. Но даже там перешел на латиницу.

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

У некоторых ide до сих пор проблемы с кодировкой и поиском.

В английском существенно короче слова. Правописание и времена противопоказаны в программирование, а краткость, читаемость и емкость - самое важное.

А есть программирование с китайским синтаксисом? Интересно как оно выглядит.

UFO just landed and posted this here

Поздно.

Русский язык программирования мог бы быть полезен лет 30-50 назад, когда всё начиналось. Сейчас уже всё завязано на английский язык, даже корпоративный сленг содержит (по ощущениям) несколько процентов английских слов типа NDA, KPI, SLA - чужие буквы и слова вообще никто не стесняется использовать, и не только в офисе. Вычистить английские фрагменты из языка общения уже сложно и не имеет смысла.

Сегодня единственный успешный ЯП, основанный на русском - 1С. Остальные слишком эзотеричны для реального применения. Да и, как показывает быстрое изучение вопроса, 1С не содержит ни ООП, ни статической типизации, так что он не очень хорош как ЯП общего назначения. От языка ключевых слов точно ничего не зависит. Любой программист способен выучить ~25 идентификаторов языка, и их семантику всё равно надо учить.

А в научной нотации тоже от латиницы откажемся? Не ощущается это хорошей идеей.

Английский упрощался и переформатировался под международным давлением. Мы же не на языке Шекспира пишем, а используем некий наиболее общий pidgin - примитивный язык: "я ехать в 3 час сегодня сверху трамвай". Да, он сформирован на основе английского, потому что Британия была великой морской торговой империей. Но, может, она и была великой морской торговой империей, потому что всем легко было освоить базовые структуры языка?..

Смогут ли господа/товарищи патриоты вменить русский всем потенциальным своим партнёрам, чтобы расширять свою it-индустрию на них? И не боятся ли они, что великий и могучий таким образом превратится в "твоя моя понимай"? Ведь, необходимо будет резко упростить систему сопряжений и склонений. Иначе прямо сейчас легко разглядеть многокилометровые флеймы о допустимых падежах и формах глаголов в именованиях функций, классов, процедур и т.д. И, ведь, это будет настоящая производственная необходимость, а не просто ВерблюдСтиль против _подчёркивание (споры о которых носят характер религиозных войн). Программистам, всё равно, придётся жить с двумя языками: русским и pidgin-русским. И второй будет проникать в сферу обращения первого.

Оно нам точно надо?

Если так уж не хочется английского, то может быть, лучше взять или разработать простой искусственный язык такой, как toki pona?

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

Ересь, по мне. Если человек дорос до программинга, то выучить десяток слов на английском он уже должен суметь (у нас с 1 класса был, а сейчас некоторые уже в детсадах начинают спикать). Раскладку постоянно дергать, потому как не можешь ввести [], <> или ' - тоже изврат. Ну а имена переменных успешно решаются за счет транслита, и неизменные Zena (вовсе не воительница из сериала) и Rashod (вовсе не некий араб) вымрут, наверно, только вместе с русским языком.

Как-то все упускают один момент из виду, бизнес-логику есть смысл описывать в русских терминах, чтобы туда-сюда это все не переводить, особенно если следовать DDD

Как пример, врачи во всем мире используют латынь. И всех это устраивает

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

Там была бы трёхзначная логика: лечите, не лечите, попейте витаминки

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

Хотите сказать, что латынь используют врачи только в России?

"Я вам не скажу за всю Одессу" - но похоже что только в СНГ.

Давно хочу взять любой интерпретатор Бейсика (как известно, это Beginner’s All-purpose Symbolic Instruction Code) с открытыми исходниками, чтобы переделать в интерпретатор языка ОСНОВА (Обучающая Система для Начинающих Операторов Вычислительной Аппаратуры) со следующими соответствиями:

PRINT СКАЖИ
INPUT СПРОСИ
FOR ДЛЯ
TO ДО
STEP ШАГ
END ГОТОВО
STOP ПРЕКРАТИ
GOTO ПЕРЕЙДИ
GOSUB ОТВЛЕКИСЬ
RETURN ВЕРНИСЬ
DELAY/PAUSE ПОДОЖДИ
BEEP ПОСИГНАЛЬ
PLAY СЫГРАЙ
LOAD ЗАГРУЗИ
SAVE ЗАПИШИ

В Terminal-BASIC, кстати, уже что-то подобное сделано, но соответствия отличаются.

Какой-то словарь Эллочки-людоедки

END ГОТОВО

STOP ПРЕКРАТИ

EXCEPTION ОЙВСЁ

А в каком Бейсике есть EXCEPTION? И я бы его перевёл как БЛИН.

STOP ПРЕКРАТИ

Ах, семпай, прекрати!

GOSUB ОТВЛЕКИСЬ

Как-то вообще плохо. Это же не "отвлечение", а выполнение блока операций.

Но почему именно бейсик? Он мёртв. Возьмите интерпретатор питона.

Можно взять питон 2.5 ;)

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

Интересно, чтобы оно не в IDE работало, а в интерпретаторе с диалоговым режимом, ибо я с таковых начинал.

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

Естественно, это была надстройка, реализованная с помощью Node JS и Selenium. Основное достоинство - просто написания и поддержки тестов.

Еще в теории могу вообразить национальный язык разметки.

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

Представим, например, нотацию для описания рецептов. Не просто список ингредиентов, а более толковую нотацию, как вот тут. Там будут шаги, операнды, изменения состояния, вызов подпрограммы приготовления соуса, и пр. Не сильно будет отличаться от «настоящего» языка программирования. Очевидно, что такая нотация как раз выиграет, если адаптировать ее к различным национальным языкам.

Боюсь, что сварить хинкали по рецепту в национальной нотации я не смогу.

#include "stdafx.h"
#include <iostream>

использовати площадь какобычно аминь1

наместе двояко провѣрятичегоглаголют молчаливо
кагбе
		ѣжѣли получалка.сломалася молчаливо тогдауж 
		кагбе 
			молвити "Не лепо молвишь, барин!" аминь1
			возвѣрнути нуль спасихоспади1
		ага
		возвѣрнути один аминь1
ага

цѣло голова(цѣло количество_указов, глаголют указы[])
кагбе 
	дваждыточно первыйсундук, второйсундук, отвѣт аминь1
	буквица знако спасихоспади1

	творити 
	кагбе
		молвити "молви первый цифирь, барин: " аминь1
		получити первыйсундук аминь1

		ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1

		молвити "молви деяние, барин: " аминь1
		получити знако спасихоспади1

		ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1

		ѣжѣли знако еси 'q' тогдауж прѣрвати аминь1

		молвити "молви второй цифирь, барин: " аминь1
		получити второйсундук аминь1
		
		ѣжѣли провѣрятичегоглаголют молчаливо еси ложъ тогдауж прѣрвати спасихоспади1

		избирати знако 
		тогдауж	кагбе
			выборъ '+' сталобыти
				отвѣт буде первыйсундук да второйсундук аминь1
				прѣрвати спасихоспади1
			выборъ '-' сталобыти
				отвѣт буде первыйсундук бѣзо второйсундук аминь1
				прѣрвати спасихоспади1
			выборъ '*' сталобыти
				отвѣт буде первыйсундук повторити_столько_сколько второйсундук аминь1
				прѣрвати спасихоспади1
			выборъ '/' сталобыти
				отвѣт буде первыйсундук убрати_столько_сколько второйсундук аминь1
				прѣрвати спасихоспади1
		ага

		молвити "Ответ есьм: " аминь1
		молвити отвѣт да_промолчати спасихоспади1

	ага
	пока (истино) аминь1

	возвѣрнути нуль спасихоспади1
ага

Древнее зло пробудилось! Пришло время!

https://habr.com/ru/post/41561/

Первую программу, которую, кроме меня использовал кто то ещё, я вводил с пульта Урал-11 в 8-х кодах. До того как я увидел первую раскраску Си на экране прошла маленькая вечность. Сейчас мне не удобно без раскраски как и многим другим. Убеждён что все языки программирования сведутся к хранению промежуточного дерева. А ключевые слова, операторные скобки [begin/end,{/},TAB] мы будем выбирать как стиль раскраски или цветовую схему. Кто то первый это сделает, как это случилось с раскраской, и мир изменится.

p.s. кстати мне приходилось набирать Си текст на клавиатуре с отсутствующими фигурными скобками и да в стандарте это предусмотрено.

меня просто тошнит от русского языка в коде после знакомства с 1С во время учёбы, ещё экзамен сдавали по нему, ужас

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

Интерпретатору/компилятору в принципе пофигу на каком национальном языке написаны буковки в листинге программы. Научишь его с русского в бинарник гнать - будет жрать русский. Смысла, разумеется, никакого.
Говорить, что в русском есть какая-то "истинно православная логика", которой нет в других национальных языках без доказательств некорректно. Скорее наоборот, практика показывает, что с лаконичностью у русского большие проблемы.
Тут выше было, что можно использовать рода, падежи и всё такое. Ну, как бы в немецком это тоже всё есть и в итальянском, и чего? Т.е. у русского нет монополии на эти фишки естественного языка.
Ну и отдельный привет тому, кто будет писать компилятор, который будет класть неявность русского языка на всякую булеву логику.

Напомню про ИнтАЛ. Разработка белорусская. Имелись роботы-исполнители: чертёжник, кладоискатель и другие. Аналог КуМир.

Ох, какая жесть... когда я первый раз увидел 1С внутри, решил, что больше никогда :))

Вопрос зачем придумывать супер локальные ЯП?
На английском говорит весь мир (так уж сложилось), все всех понимают и это помогает сообществу развивать продукты, делать для них либы, дорабатывать под себя.
Вот представьте, что индусы начнут массово писать полезные программульки на хинди. Или на каком нибудь языке мертвых?
Какой в этом смысл, если тебя не будут понимать другие люди?
Да и вопрос кому надо было много переключаться в процессе написания кода?
В нормальном продукте, где есть локализация все выводимые значения и формулировки выносятся в отдельный файл. В остальных местах все пишется на латинице.
Комментарии можно писать и на английском. Я сомневаюсь что для кого-то написать мысль из 4-10 слов составит труда (а если и составит - повод для того, чтобы подучить язык)

А можно узнать предполагаемый православный синтаксис для ФП и реактивщины? Map, flatmap, bind, monad, either, yield, debounce, throttle и т.д.

Карта, плющкарта, вилка, буррито, либо, свержение, стреноживание.

Ну буррито же неправославно. Лучше кулебяка.

Hidden text

Кулебяка - это расстегай в категории эндовыпечки

GHCi, version 9.2.3: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration
Prelude> :set -XUnicodeSyntax
Prelude> import Text.Show.Unicode
Prelude Text.Show.Unicode> напечатай = uprint
Prelude Text.Show.Unicode> затем = (>>)
Prelude Text.Show.Unicode> напечатай 5 `затем` напечатай "Ну и зачем это нужно?"
5
"Ну и зачем это нужно?"
Prelude Text.Show.Unicode>

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

Мы в PascalABC.NET экспериментировали с этим 6 лет назад и пробовали сделать русские ключевые слова. Поскольку мы на PascalABC.NET массово учим школьников, то основная аргументация была такой - детям младших классов (для нас это 6-7 класс) будет понятнее видеть русский код.

Оказалось совсем несложно влезть в компилятор и поменять английские лексемы на русские.

Но возник ряд проблем.

Первая - основная. Когда набираешь код, то всё равно некоторые переменные пишешь на английском и знаки препинания тоже привык на английском. И переключать язык при наборе - это куча ошибок. А дети их делают в 10 раз больше преподавателя.

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

var a := 0;

Варианты:

пер a := 0;
перем a := 0;
переменная a := 0;

Все варианты - не очень. Второй немного лучше.

В итоге код получается примерно такой:

тип   
  Ученик = авто класс     
    Имя: строка;     
    Возраст: цел;   
  кон;

нач   
  для перем счетчик := 1 до 10 делать     
    Вывод(счетчик);   
  перем а := 1;   
  ВыводПК;   
  пока а <= 10 делать   
  нач     
    Вывод(а);     
    а += 1;   
  кон;
  ВыводПК;   
  перем уч := нов Ученик('Иванов',15);   
  ВыводПК(уч); 
кон.

ВыводПК - это здесь аналог Println - как перевести ln по-другому - не хватило фантазии.

Некоторые ключевые слова вообще плохо переводились:

var a: array of integer;

Как здесь перевести of - вообще непонятно.

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

uses Исполнители;

begin
  Страны.Выбрать(страна -> страна.Континент = 'Азия')
    .ОтсортироватьПоУбыванию(страна -> страна.Население)
    .Взять(10)
    .Преобразовать(страна -> (страна.Название,страна.Население))
    .ВывестиПострочно
end.  

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

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

var a: array of integer;

переменная А: массив из целое;

Конечно, очень режет глаза отказ от окончаний множественного числа.

Да, согласен. Я вижу, у нас были такие синонимы типов:

тип 
  цел = integer;
  вещ = real;
  строка = string;

Поэтому

перем a: массив из цел;

вполне себе ничего.

У нас кстати была идея заложить в язык склонения и множественное число в зависимости от контекста. Это не безумная идея - на уровне компилятора можно сделать - в большинстве случаев будет нормально.

"Println" - "ВыводСтроки". "ln" - сокращение от "line"

Это не очень хорошая идея в ситуации

Println(1,2,3)

Начинающих будет путать - почему

ВыводСтроки(1,2,3)

выводит целые

А ЯМБ (язык машин бухгалтерских) почему-то забыли. Видел такой на ИСКРЕ 226. С документацией в виде здоровенной книжки переплетёных "синек" (кто знает, тот поймёт).

Удивлен, что никто не упомянул язык АП для армянских ЭВМ Наири с ключевыми словами: допустим, кончаем, введем, вставим.
i=3 j=4 a
i=2 x
1 допустим i=0
2 допустим j=0
3 введем aij
4 вставим j=j+1
5 если j-3≤0 идти к 3
6 вставим i=i+1
7 если i-2≤0 идти к 2
8 программа су (a 3 x)
9 печатаем с 5 знаками x0 x1 x2
10 кончаем

Допустим - LET

Вставим - SET

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

BASIC? ("идти к" там тоже есть)

Точно. Старинный, с обязательной нумерацией строк ;)

Самое годное из того что есть на текущий момент, для программирования на руском, это Компонентный Паскаль или какой-нибудь диалект Оберона. Современные компиляторы позволяют писать от микроконтроллеров до прикладного софта, ОС (JAOS например) Мозг ломает конечно конкретно, но писать на русском можно)

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

Аааа. Транслитом не пользуетесь если прога для наших внутренних российских реалий?
"float dlina, shirina, vysota;"

почему YoptaScript не на первом месте и вообще не в топе? Как мы докатились до такого?

Articles