Comments 425
В этом отношении я согласен с Юрием
Да нормальный же язык:
ПЕР колво: ШИРЦЕЛ;
УКАЗ
колво:=10;
КОН
Как вы собираетесь угловые скобки вводить, не переключая раскладку ))
Раскладка была бы одна, но со всеми необходимыми знаками.
На правом альте висят доп символы, специфичные для 1с и не только https://1c.chistov.pro/2012/11/1.html
просто на клавиатуре было бы больше кнопок))
Кодировка "ФПУ-8"? Безобразие! Язык разметки ЯГТР должен использовать исключительно КОИ-8 (ГОСТ 19768-93)
Только "голова" заменить на "шапка" и норм, можно работать
ягтр как реализация ряр
Лого - учебный язык программирования (появился в 196; в 1997 году вышла российская версия):
ДЛЯ ПРИВЕТСТВИЯ
ПИШИ [Привет, мир!]
КОНЕЦ
ДЛЯ ОТВЕРСТИЯ
СВЕРЛИ [По утрам!]
М*ДАК
Программа выглядит неоптимизированной, её явно писал джун. Опытные специалисты знают, что по ночам стены мягче. Если провести оптимизацию - указать во второй строке [По ночам!]
- работа программы заметно ускорится.
?
Т.е. наоборот! Создатели Лого задали направление c++!
появился в 196 - у праславян, видимо..
На обычной клавиатуре нужно постоянно переключаться на латиницу. Неудобно.
Рекомендую поставить переключение на caps lock и станет достаточно удобно)
Для того чтобы ввести []{}~@#' всё равно нужно переключаться.
цикл 1..Цел(ввод())
пер n = Цел(ввод())
пер a = ввод().разделить(‘ ’).применить(Цел)
пер ответ = (0 .< n).применить(н -> н + 1) // можно сократить до `пер ответ = Массив(1..n)`
если a.послед == 0
вывод_эл(ответ [+] (n + 1))
иначе
цикл(н) 0 .< a.длина
если a[н] == 1
вывод_эл(ответ[0.<н] [+] (n + 1) [+] ответ[н..])
цикл.прервать
Объявить N и русскую Н графическими вариантами одного и того же символа, как в КОИ-7?
получается вот такая путаница «n» и «н», как у автора
А в чём тут путаница?
Переменная n
названа так т.к. в тексте условия задачи на русском языке написано "строка набора входных данных содержит одно целое число n".
А переменная н
обозначает просто порядковый номер. Можно было бы использовать i
либо x
, но, на мой взгляд, в данном случае н
подходит чуть лучше.
На капслоке должен быть ctrl.
А есть клавиатуры, где не надо переключаться? То есть оба набора букв одновременно на разных клавишах?
В Linux можно подключить две клавиатуры и настроить для них разные раскладки.
Идея интересная, но слишком замудрённая. Даже если и есть, то вряд ли они пользуются широким спросом
Правокод - полный по Тьюрингу dsl для юристов, безскобочная нотация.
Написанный код может быть прочитан и верифицирован без изучения dsl.
Реализован транслятор в python.
Интересный комментарий - гугление по слову "правокод" дает ссылку лишь исключительно на данный комментарий, интернет по поводу "правокода" ничего не знает. Если где-либо можно узнать подробности, то где?
В отношении темы в целом - почему-то забыта система "Мастер", разработанная в начале 1990-х.
Кроме того, язык макрокоманд Access в локализованной версии - русский; это несколько неполный язык программирования, в нем невозможно задать переменную, но все же - это вполне себе язык программирования, но позволяющий оперировать лишь исключительно объектами Access.
Правокод - внутреннее название проекта. Для внешних пользователей есть лендинг, с маркетинговой фигнёй: https://sberpravo.ru/legal-tech - "legal rules". Есть еще патент, но он как большинство патентов мутный: https://yandex.ru/patents/doc/RU2702967C1_20191014 .
Спасибо, смысл понятен - и разного рода прочим областям умственной деятельности дано заключать собой "логику ветвления" и в эти области возможен перенос методологии программирования именно как "управления ветвлением" и всем, что может из этого следовать.
Неплохая идея, но семантически это те же формы, что и обычное программирование, но мне лично приходят в голову такие идеи, что программирование можно построить и на семантических иных началах, а в случае "правокода" - это обычные семантические формы характерные программированию.
Еще раз спасибо за пояснения!
[Ссылка на вопрос на Quora.]
И вот идея для тех, кто хочет русский язык в программировании:
Не знаю, лично мне кажется, что для тех, кто хочет русский язык в программировании, достаточно 1С. А кому по каким-то причинам 1С не подходит, так же достаточно упомянутого Глагола. Ну просто потому, что все эти языки, они ценны не той от силы парой сотен лексем, составляющих основу языка, а огромным количеством библиотек, которые создаются разработчиками со всего мира. Новый нативный русский язык программирования изначально будет отрезан от мировой базы разработчиков, и будет поддерживаться небольшим подмножеством энтузиастов одной отдельной взятой страны. Ну т.е. у него изначально нет шансов на развитие, и будет у нас два Глагола. А зачем нам ещё один?
У меня в vscode стоит плагин переводящий комментарии (хотя на самом деле переводит любой выделенный текст) при наведении мышки. Так что мне без разницы на каком языке исходный код и комментари к нему
А не проще комментарии тоже на английском писать?
Комментарии — это одно, идентификаторы — другое. Последние попросту слишком часто встречаются вперемешку с ключевыми словами и требующей другой раскладки пунктуацией.
"Непрактично? Подержи-ка мое пиво!" - сказали китайцы. В сименсовском софте (например, в таком ) уже очень давно можно писать имена символов на любом языке, в том числе на китайском. И китайцы так делают постоянно. Переменные, дата-блоки, функции - все на китайском. Особенно весело, когда установка приходит в неработоспособном состоянии, и все на китайском, включая ПО и схемы. Причем схемы не соответствуют действительности, а обозначения в схемах и в ПО контроллера разные (разумеется, и там, и там иероглифы).
function კვადრატი(عامل) {
return عامل * عامل;
}
const सरणी = [1, 2, 3];
const 新陣列 = सरणी.map(კვადრატი);
console.log(新陣列); // [1, 4, 9]
Можно даже вот так:
Вот примерно так и выглядит для меня код на русском. Понимаю, что дело привычки и можно даже переучиться. Но зачем?
Но ведь этот код всегда будет печатать какашку :) Кстати, как оказалось, не так уж и сложно читать этот код. Я потратил пару минут, чтобы знакомые конструкции начать распознавать)
Никто не спорит, что можно себя приучить читать и такой код. Вопрос исключительно в ощущениях в процессе. Чувствуете, что у нас особый путь и так гораздо лучше, чем было? :)
Чувствую лёгкую эйфорию, как будто иероглифы расшифровал :) На деле мне вообще пофигу на естественный язык используемый в качестве базового в ЯП. Я слова обычно не читаю и не думаю, я думаю смыслами, что они несут. if он и в Африке if, вне зависимости от того, написано там, "если", нарисован фрукт или какая-то другая абракадабра.
Единственное важное условие - должно быть удобно печатать и тут русский язык очевидно непригоден. Равно как и любой локальный язык и эмодзи. Для меня это неудобно не потому, что неудобно читать, а потому что неудобно писать
Некоторые через чур злоупотребляют макросами.
И чем это отличается от конструкторской документации на ракетные двигатели на русскому языке?
Японцы, вроде как, тоже на японском пишут методы и переменные
Японских проектов автоматизации я пока не видел, возможно это так. Готовое оборудование - немного имел дело с Mitsubishi. Достаточно качественная документация на английском языке. Для китайских вендоров это огромная редкость. Из "обычного" японского софта приходилось работать с вот этим opensource проектом. Нормальные имена переменных на английском, попадаются комменты на японском. Но это опенсорс, так что, возможно, пример непоказательный :)
Любимая фишка китайских разработчиков конфигураторов и утилит для их же железок - конфигурация читается из какой-нибудь директории с названием иероглифами, желательно с диска M:. Я уже заколебался их творения декомпилировать, благо что про релиз-мод и тем более обфускацию они не слышали...
SCADA-система Yokogawa хоть и использует английские слова в интерфейсе, но также для переходов, выбора режимов и функций используются значки, похожие на символы катаканы. Очень тяжело такое осваивать русскому человеку. Я, периодически посещая установку с йокогавой, испытывал затруднения с запоминанием их значений.
В сименсовском софте (например, в TIA portal ) уже очень давно можно писать имена символов на любом языке, в том числе на китайском. И китайцы так делают постоянно. Переменные, дата-блоки, функции — все на китайском. Особенно весело, когда установка приходит в неработоспособном состоянии, и все на китайском, включая ПО и схемы. Причем схемы не соответствуют действительности, а обозначения в схемах и в ПО контроллера разные (разумеется, и там, и там иероглифы).
это же посерьёзнее, чем отключение от SWIFT…
Я этим пользовался когда в (стороннем) swagger были прописаны русские названия переменных. Проще смириться со сгенерированным кодом (который постоянно обновляется) и переключением раскладок, чем каждый раз всё переименовывать.
"если" длинне чем "if", "цикл" длиннее чем "for", вот отсюда и появляются всякие "колво".
Русский язык в программировании
... не нужен.
Использовал переменные на кириллице в python, когда пытался повторить расчёт зарплаты бухгалтерией. Всякие тарифные оклады, должностные оклады, надбавки за категорию, повышения и прочие тарифные ставки 1 разряда. На английский и обратно это плохо переводится (и через пару месяцев забудется), а транслит использовать как-то неприятно.
И вы только что точно описали причину, по которой большинство решений на 1С было написано на русском, при наличии англоязычных вариантов ключевых слов.
Я вас вполне понимаю =) Меня это решение в MS Excel тоже всегда удивляло.
У 1С, кстати, с этим проблем чуток поменьше - т.е. английский и русский можно (в случае с всякими "ФабрикаXDTO", к сожалению, иногда и нужно) смешивать, и вроде с большего работает нормально, хотя и не без косяков.
Там это просто магические заклинания, надо выучить и не думать, никакой мнемоники. Редактор формул ущербен, отсюда максимальное сократительство. Например, что такое ВПР? В результате выходит какой-то диалект падонкаффского, ЕСЛИ ЗНЧ БЛШ ОКРУГЛВВЕРХ
Ну смотрите. У нас есть языки программирования с крайне упрощённым английским, для изучения которого не нужно применять никаких особенных усилий.
В противном случае, давайте в каждой стране делать свою локализацию каждого языка.
Теперь, в вашей огромной организации, половина кодовой базы на английском, четверть на русском (с другой терминологией, пришедшей в голову разработчиком, и ещё четверть на бурятском. А какие-то особо важные ключевые моменты на хинди и иддише, потому что почему бы и нет.
А самое приятное, что изначально всё это допустим питон. Просто разработчики решили что будут делать как им "удобнее" и роднее :)
В общем, это буквально расслоение абстракций на разные языки, что будет приводить к очень интересным моментам с отладкой.
Путиси.. путиси... вот поэтому и не приживается.
Во всём виноваты шрифты?
Так и будет получаться, если из фундаментально флективного языка выкидывать флексию, а не задействовать её по назначению.
Вот абсолютно верный коммент! Английский это аналитический язык и использовать русский для программирования, это петь "русский рок" - вроде музыка, но это не rock)))
Самое загадочное - КРАСЬСТРЕЛК(И)
Упаси боже такая статья попадется нашим чиновникам
Сколько бюджетных миллиардов попилиться на разработку этого велосипеда с квадратными колесами.
Но в результате все равно все программисты будут писать на нормальных языках - ибо глобализация и никуда от нее не деться
www.computer-museum.ru/books/besm6_instruction.pdf
Авторы показывают синтаксис, сравнивают с другими языками, показывают примеры кода на таких языках. Люди в комментариях в основном хейтят, кто-то ржёт, небольшой процент поддерживает и разделяет идею «русских» ЯП.
Но никто никогда не пишет – зачем? Для чего создаются подобные шедевры, что движет их авторами? Какие перспективы они видят для своих творений?
Очень хотелось бы почитать мнения поддерживающих идею «русских» ЯП, а в идеале самих авторов, если таковые прочитают этот комментарий.
Я же вижу только одно разумное предположение – just for fun.
Позвольте докопаться/поинтересоваться.
Но где Вы видели английский в школьной программе с первого класса?
У меня дочь сейчас переходит во второй класс, вот там да, будет английский язык, но в первом классе его нет. Если что, то я говорю за Санкт-Петербург.
Надо делать правильные шаги в отношении английского.
Надо заявлять:
1. Человек вправе не знать английского языка.
2. И при этом быть программистом.
Если что, я такого не заявляю. Но тот кто манифестирует «английский приди, порядок наведи» — ССЗБ.
Но после определённой даты возникло подозрение, что английский имеет негативное влияние на разум. Хорошо что только подозрение, и только в моём понимании негативного, и мне нет необходимости убеждать кого-то в чём-то.
Но аргумент «весь мир» очень близок к аргументу «все так делают», не находите?
Какой именно?Через два дня от даты с одними двойками.
Если в данном случае делать так, как делают все, несёт в себе большой ряд существенных преимуществРазумеется, нужно выбирать лучший вариант. А какой вариант лучший мы все знаем.
И почему же вы так решили?
Если вы хотите действительно обсудить, то задайте точный вопрос, чтобы было без моих домыслов.
Кроме того, корреляция не означает причино-следственную связь. Возможно одна и та же причина создаёт оба разделения.
Эта причина, какова бы она ни была, обращает внимание, что к понятию «своё» надо относиться последовательно.
Удивительно, но между делением кто как что понимает и знанием языка в моём воображении существует корреляция.
Т.е. надо массово учить английский.
Т.е. надо массово учить английский.Похоже, вы его знаете.
Знание лучше веры.
Знание веры независимо от знания объекта веры. А вот знание объекта веры несовместимо с самой верой (по определению веры).
Удивительно, но между делением кто как что понимает и знанием языка в моём воображении существует корреляция.
А что тут удивительного? Человеку, знающему английский, доступно на порядок больше источников информации, и соответственно его понимание формируется на основе большей полноты данных. Удивительно скорее то, что вы считаете это чем-то негативным.
Нет конечно. Чем больше выбор, тем больше шансов найти среди предлагаемого нечто качественное (это не только к информации относится).
1) При большем количестве источников вероятность обнаружить качественный растёт (если предполагать, что они вообще существуют, разумеется).
2) При большем количестве источников с разными позициями появляется возможность увеличить качество информации путём личной интеллектуальной деятельности (сопоставить их друг с другом).
Ну, это в целом вписывается во второй пункт, но да, согласен, значимо.
И оговорка «больше шансов» не спасает. Выбери один из миллиона кирпичей и съешь.
Ну вот правда, аргумент «везде где надо говорят, одно и тоже, только выбирай» вы считаете существенным?
Это же всё равно личный выбор.
Без разборов по существу всё скатится к оскорблениям. А по существу это другая проблема, чем в топике.
Впрочем, позиция «английский язык хорош» подорвана. И речь не только не о программировании. Но ещё и о программировании.
«везде где надо говорят, одно и тоже, только выбирай»
Лично я как раз акцентировал внимание на том, что говорят не одно и то же, и именно это "не" и превращает количество в качество. Впрочем, если для вас позиция англоговорящей стороны - заведомая ложь, а русскоговорящей - нет, то, разумеется, "приятным для обеих сторон" разговор не будет (кроме случаев, когда ваш собеседник думает так же).
Но где Вы видели английский в школьной программе с первого класса?
Таштагол, Кемеровская обл. Средняя Образовательная Школа #10. Учили правда так себе, но английский был с первого класса.
В школе у моей дочки английский с 1 класса. По желанию, правда. Алфавит учили и слова простые.
Дело в том, что русский человек думает на русском, и для программирования нужно переключаться в другой режим. В этом, конечно, есть преимущество — кодирование отличается от разговора, и необходимые для кодирования навыки внутренне отделены от навыков общения. И даже когда есть возможность просто подменить язык слов — именно ощущения смешения навыков приводит к неприятным впечатлениям.
Но преимущество есть и в отсутствии переключения — компьютерный язык может изначально выглядеть как общение, а не кодирование. Тогда это может усилить доступность, точность, ясность, безопасность.
Кроме того, компьютер может начать и грамотно отвечать.
Поэтому, как минимум, «активное непонимание необходимости русского языка программирования» — это торможение развития компьютерных технологий.
Но преимущество есть и в отсутствии переключения — компьютерный язык может изначально выглядеть как общение, а не кодирование. Тогда это может усилить доступность, точность, ясность, безопасность.
Я правильно понимаю, что сейчас условные американцы\англичане пишут более доступный, точный, ясный и безопасный код, чем условные русские разработчики?
Не понимаю, к чему ведёте, я задал прямой вопрос, но как то Вы странно от него ушли.
Замените "американцы\англичане" на "люди, для которых английский язык является родным" и попробуйте ещё раз
Интересно, каким местом Python английский;) Расскажите англичанину, что является столицей Великобритании , только на Python;) Что то мне кажется что native speaker вас не поймет:)
На ассемблере тоже можно попробовать спросить как пройти в библиотеку ;)
Это косвенное указание на то, что проводимая классификация применима для естественных языков, но не для языков программирования.
(Не минусовал)
Вот до этого момента вот именно этим словом и не пользовался, а теперь надо доучивать.
Так что вопрос удобства кодирования это одно, а удобство расширения, развития это другое.
Вот например добавился в python некий walrus operator :=
Я очень сомневаюсь, что все англоязычные без чтения документации вдруг внезапно поняли, что это и зачем оно.
А те кто Битлз не слушали, тем совсем никак ;)
И как поможет знание того, что walrus это такое животное с бивнями, в понимании смысла этого оператора?
Да. Высокая распространенность -> больше аудитория -> проще создать большое и активное сообщество -> язык лучше развивается и проще в использовании. Для всех, в том числе и для тех, у кого английский - иностранный.
Я считаю, что хабр помолодел, и молодые люди не различают тонкости общения и ставят минусы вполне позитивным ответам, негативно относящихся к заблуждениям, но не к оппоненту.
Ну что за глупость??
Аргумент «по стандарту», означает что ты сам выбрал стандарт, и понятно кто и зачем его выполняет.
А то что вы на автомате пропускаете различие — да, это глупость. Именно та, которая содержится в аргументации «как все».
Все пойдут с девятого этажа прыгать и на английском программировать. Соглашайся только во втором случае, в первом не соглашайся.
Я давно причислил аргумент «все так делают» к глупости.
Все в России разговаривают на русском языке. По вашей логике делать как все это глупость. Почему вы тогда разговариваете на русском языке, как делают все, а не на своем выдуманном?
Или все-таки это по каким-то причинам не является глупостью? Можете тогда сформулировать эти причины?
Но вы действительно страдаете этой проблемой, чтобы я вас от неё отучал? Действительно если все скажут «оно вкусное» на солёное, как в опытах над детьми, которые соглашались если все другие скажут то что отличается от их мнения, вы согласитесь?
По-моему, я даже в детском садике закричал бы «да вы что, охренели все?»
Знаете, почитал я ваши комменты (все сплошь заминусованные), и у меня сложилось впечатление, что ваш посыл - "я тут самый умный, а все дураки". Ну что же, позиция понятна. Но боюсь, у меня для вас плохие новости. Не в обиду. :-)
Ну то есть, с математической точки зрения идеальный образец лажи.
Интересно, как мозг использует убеждения как сокращения доказательств. Дружба с головой выглядит как принятие убеждений без доказательств, но на основании информации, что доказательств достаточно. Вполне оправдано, и пока идёт начальное развитие мозга иначе — никак.
Вы явно дружите с головой.
Но что это значит? Не раздумавая о правилах убеждения вы готовы убеждаться по альтернативным формам убеждения. Не точным. Ничем вам не обязанным. Скрывающим свой обман.
«Миллионы людей живут и работают во сне» — цитата из матрицы — не о том, что к мозгу подключены провода, а о том что мозг убаюкивает сознание, предостовляя основания убеждения не через доказательства, а через принятие того, что того что уже есть — достаточно для убеждения. Сон так и работает. Всё это и есть сон разума.
Я с головой не дружу — пусть и смешное заявление, но математический склад ума позволяет более уверенно требовать от мозга доказательств своих собственных убеждений. У меня с головой любовь любовная, в том числе много добавочных требований.
Если вы на основании того что выполняете «принцип лажи», думаете, что и я его выполняю, то вы ошибаетесь. Я не переубеждаю других тем что сам там себе что-то доказал. Если я правильно понял, именно это вам у меня бы и не понравилось. При этом самому вам так делать — нормально. Смешно.
Тренируйте мозг, понимайте, кто кого на основании чего убеждает. И когда НЕ убеждает — тоже надо это понимать, а не то — будут являться чудовища там где их нет.
почему не надо быть баранами и не относиться к аргументации «все так делают» с полной серьёзностью
Ну так в том и дело, что с серьезностью относитесь к ней вы и на основании этого называете окружающих глупцами.
Но вы действительно страдаете этой проблемой, чтобы я вас от неё отучал?
Нет, "действительно" я попросил вас сформулировать ваши причины того, почему в данном случае вы делаете как все. Я спрашивал серьезно и хотел бы услышать честный ответ. Вы ушли от ответа, поэтому я попрошу еще раз. Сформулируйте пожалуйста причины, почему в данном случае вы не считаете глупостью делать как все.
Я поясню, зачем это нужно, если вы все-таки ответите прямо, как взрослый человек, участвующий в аргументированной дискуссии.
Действительно если все скажут
Откуда вдруг взялась ситуация "без причин согласиться с тем, что все скажут"? Разговор был о том, что люди делают, а не о том, что они говорят, и о том, что у них есть причины считать свое мнение правильным, и они их вам приводили, а не о том, что они так делаю без причин. То есть прямая противоположность тому, что вы хотите использовать как аналогию.
Продолжая вашу аналогию, люди говорят вам, что то, что вы им предлагаете, "соленое и невкусное", потому что оно им не нравится, то есть делают именно то, что вы считаете правильным. Просто получается так, что это не совпадает с вашим мнением.
на основании этого называете окружающих глупцами.Вряд ли утверждение "(вот этот) аргумент — глупость" — это название кого-либо глупцом, даже если он верит, что это весомый аргумент, не глупо было бы передумать.
почему в данном случае вы не считаете глупостью делать как все
«Почему вы делаете как все?»
«Почему вы выбрали делать так как делают все?»
Улавливаете разницу?
«Потому что так делают все»
«Потому что оценил преимущества и выбрал»
А так?
Вряд ли утверждение "(вот этот) аргумент — глупость" — это название кого-либо глупцом
Это именно так.
Глупец — "Тот, кто поступил, вел себя глупо, сделал или сказал глупость."
Вы говорите, что они делают глупость, значит подразумеваете, что они являются глупцами, по крайней мере пока они так делают.
Улавливаете разницу?
Я же попросил ответить прямо. Если решили участвовать в дискуссии, соблюдайте пожалуйста общепринятые правила ведения дискуссии. В частности, это означает, что на вопросы надо отвечать прямо, а не намеками.
«Потому что оценил преимущества и выбрал»
Ну вот и другие тоже оценили преимущества и выбрали. И вам эти преимущества сообщили. Почему вы тогда все равно называете это глупостью, если по вашим критериям это не глупость?
Прямо говорю, что применение единственного аргумента что все так делают, без осмысления почему надо за ними повторять — это глупость.
Куда прямее? Если вы скажете «так надо делать потому что так делают все» — я назову это глупостью и разрешу вам домыслить, что вы и сам глупец.
Тот кто объясняет почему бы он сам не стал развивать русский язык программирования — вполне правильно ведёт диалог. А тот кто возмущён, почему это кто-то вдруг не стал повторять за всеми и сам не видит разницы между существованием и отсутствием момента осмысления — тот вы.
А здесь у нас с вами что за затык?
Затык в том, что вы уходите от ответа на вопросы.
Куда прямее?
Напоминаю мой вопрос:
Почему вы тогда разговариваете на русском языке, как делают все, а не на своем выдуманном?
Или все-таки это по каким-то причинам не является глупостью? Можете тогда сформулировать эти причины?
Ответа на него вы не дали. Прямой ответ на этот вопрос должен начинаться "Я разговариваю на русском языке, как делают все в России, и не считаю это глупостью, потому что ...".
применение единственного аргумента что все так делают, без осмысления почему надо за ними повторять — это глупость.
А почему вы решили, что ваши собеседники делают так без осмысления? Вам неоднократно привели аргументы, почему они так делают.
А тот кто возмущён, почему это кто-то вдруг не стал повторять за всеми и сам не видит разницы
В словах ваших собеседников ничего подобного не было. Вам неоднократно объяснили преимущества, почему в данном случае надо использовать общепринятые решения. Они указаны прямо в том комментарии, на который вы ответили, что аргумент «все так делают» это глупость. Я пожалуй их процитирую:
"проще создать большое и активное сообщество"
"язык лучше развивается и проще в использовании"
То есть человек не говорил, что причина в том, что все так делают, это вы приписали ему эти слова.
Я разговариваю на русском языке, как делают все в России, и не считаю это глупостью, потому чтоДело не в том что так делают все, а в том что этот язык для меня родной. Вам помог этот очевидный ответ найти разницу между «как все» и другими вариантами аргументации?
это вы приписали ему эти слова.Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился? Вы бы предположили, что с вами что-то не так, да? Что-то до вас не дошло бы в этом случае. Явно что-то упускаете.
Дело не в том что так делают все, а в том что этот язык для меня родной.
Не вижу, как это мешает вам придумать несуществующий язык и разговаривать не как все. Вы же можете придумать какой-то язык, который никто не будет понимать. Или как минимум изучить какой-то достаточно редкий. Ну чтобы не делать как все. Но почему-то этого не делаете. Значит есть какие-то другие причины?
Вам помог этот очевидный ответ найти разницу между «как все» и другими вариантами аргументации?
Почему вы решили, что я до этого не находил разницу «как все» и другими вариантами аргументации?
Вы постоянно приписываете собеседнику какие-то свои домыслы в оскорбительном ключе.
Я указывал вам на то, что ваши собеседники и так используют другие варианты аргументации, отличные от "как все".
Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился?
Я бы предположил, что у него проблемы с логическим мышлением, сначала говорит аргумент, который является противоположностью "как все", потом соглашается, что это аналогично "как все". Но все эти "если бы да кабы" никак не меняют факта, что человек этого не говорил.
не делать как все
Вот ты и попался. Отрицание аргумента «делать как все» не приводит к аргументу «делать не как все». Ну что, школьник, уроки все сделал? Шучу, не обижайтесь.
Но если серьёзно, прям загадка, как это так? Вроде рассуждать умеет, но вот как это у вас происходит — отрицание сразу шатает в противоположность да? А вы точно программист? Как можно приписывать мне аргумент «хочу не как все» на основании «не хочу как все»?
Различие мимо проходит, что ли, не улавливается?
говорит аргумент, который является противоположностью
Давайте закончим. Ну зачем мне разговаривать с человеком который думает, что рубит в логику, а сам не рубит? Я ж от смеха лопну. Я уже один раз пошутил, а дальше ещё одно подтверждение.
Да, собеседник не выражал согласия. Но эти два мнения просто не логические противоположности, как вы сами себе придумали. Так что вполне мог.
Отрицание аргумента «делать как все» не приводит к аргументу «делать не как все».
Приводит. "Ничего не делать" тоже означает "не как все".
Как можно приписывать мне аргумент «хочу не как все» на основании «не хочу как все»?
Так, что вы сказали, что делать как все это глупость, а в русском языке, которому меня учили, это слово имеет негативную коннотацию и подразумевает, что надо делать противоположные вещи.
Единственно возможный третий вариант это "ничего не хочу", а в контексте данного разговора он бессмысленный. Я предполагал, что вы умный человек, и не будете участвовать в дискуссии, подразумевая этот вариант.
И да, я уже вас просил отвечать прямо, а не намеками. Я не умею читать мысли, и поэтому не могу узнать, какие другие варианты, противоречащие логике, вы себе придумали.
Но эти два мнения просто не логические противоположности, как вы сами себе придумали.
Эти два мнения просто логические противоположности. Я тоже умею делать бездоказательные утверждения, но в отличие от вас не использую их в качестве аргументов.
вы сказали, что делать как все это глупостьТак так. сравним.
Я давно причислил аргумент «все так делают» к глупости.
Так что же является глупостью? Делать как все, или аргументировать через то что все так делают? Вот неразрешимая для вас загадка.
Я предполагал, что вы умный человек, и не будете участвовать в дискуссии, подразумевая этот вариант.У умного человека целых три варианта. Так и запишем. Не больше и не меньше.
Я не умею читать мысли, и поэтому не могу узнать, какие другие варианты, противоречащие логике, вы себе придумали.На арене выступает человек, не умеющий читать мысли другого человека, но точно знающий, что они противоречат логике!
Так. Я проржался. Теперь надо, наверное, как-то обсудить конкретно, противоречат ли два утверждения «есть много аргументов почему все это выбирают» и «аргументировать через то что так все делают — глупо» не противоречат друг другу.
Разница в существовании момента осмысления перед выбором. Если первое сообщение подразумевает, что выбор просто разумен, и его можно рассмотреть, то нет никакого противоречия. И даже со вторым сообщением автор первого может согласиться. А если подразумевает, что надо просто повторить, то осмысления нет и тогда есть противоречие.
Делать как все, или аргументировать через то что все так делают? Вот неразрешимая для вас загадка.
Вы снова приписываете собеседнику свои домыслы.
В данном случае разницы никакой нет, потому что если делать как все это не глупость, а логичное поведение, то и аргументировать этим не глупость. Аргументировать отсылкой к действию, про которое известно, что оно аргументировано, это логично. Это как с теоремами в математике, доказали одну, через нее можно доказывать другую.
У умного человека целых три варианта. Так и запишем. Не больше и не меньше.
Вы снова приписываете собеседнику свои домыслы.
Я сказал, что умный человек не будет рассматривать этот вариант. Лично я считаю, что их всего три, причем третий является частным случаем одного из остальных, но возможно у вас в данном случае какие-то другие критерии логичности.
На арене выступает человек, не умеющий читать мысли другого человека, но точно знающий, что они противоречат логике!
Естественно, если с моей точки зрения рассмотрены все варианты, покрывающие область значений функции логичности, то другие варианты я могу считать нелогичными, даже не зная их. Вы можете доказать, что это не так, приведя конкретные примеры с пояснениями, но вы этого не сделали.
Теперь надо, наверное, как-то обсудить конкретно, противоречат ли два утверждения «есть много аргументов, почему все это выбирают» и «аргументировать через то, что так все делают — глупо» не противоречат друг другу.
Так, я похоже понял. Вы опять потеряли нить разговора. Напомню диалог в этой части:
— То есть человек не говорил, что причина в том, что все так делают, это вы приписали ему эти слова.
— Как бы вы себя чувствовали если бы тот кому я так ответил тут же со мной согласился?
— … все эти "если бы да кабы" никак не меняют факта, что человек этого не говорил.
— Да, собеседник не выражал согласия… Так что вполне мог.
Я говорил о том, что человек не говорил аргумент, что "все так делают".
А вы почему-то решили, что под "не говорил" я подразумевал его согласие с вашим комментарием.
А тот кто возмущён, почему это кто-то вдруг не стал повторять за всеми и сам не видит разницы между существованием и отсутствием момента осмысления — тот вы.
И еще один момент, который вы не поняли. Смысл моего комментария про русский язык был вовсе не в том, что надо повторять за всеми. А в том, что те же аргументы, которые вы приведете, справедливы и для ваших оппонентов. Но вы, к сожалению, решили уйти от ответа и не продолжать эту ветку обсуждения. Поскольку это был единственный тезис моего изначального комментария, не вижу смысла продолжать эту дискуссию.
Делать что-то исключительно по причине что "все так делают" это глупость.
Но это не значит что не может существовать других, более адекватных, причин делать что-то также как все остальные.
Англичане программируют на 'родном', но это им не даёт преимуществ. Другие народы, для которых английский является родным, тоже не получают преимуществ. Русские могут получить преимущества, я правильно понимаю?
А есть конкретные примеры того, что именно есть в русском такого, что поможет писать более ясный и безопасный код? Склонения? Падежи? Что?
Преимущества навскидку? В русском языке есть разные окончание для розного рода, и поэтому упомянув переменные, названные разными родами, повторное упоминание в этом же предложении можно обозначать его/её, и будет ясно о чём речь. Или привязать глагол, и по одному окончанию будет ясно к чему он относится. Но сам русский язык программирования я вам сейчас сходу не придумаю. Даже указанные особенности могут восприниматься сейчас не как преимущества. При общении — рода, падежи и склонения помогают, остаётся эту помощь воплотить в программировании.
есть разные окончание для разного рода
И для разных чисел и падежей, вот только пользуются ими далеко не все, как видно прямо из процитированной фразы. Неужели языку программирования, который должен быть однозначно понятен и машине, и человеку, нужны такие усложнения, которые и в естественном-то языке постоянно теряются?
При общении — рода, падежи и склонения помогают, остаётся эту помощь воплотить в программировании.
Вот в этом и проблема. Идея звучит может быть и хорошо, а куда её прикрутить и как использовать, не понятно.
Нет. До появления сильного ИИ пихать куда-либо в программирование концепции из естественных языков - плохая идея. Компьютер сейчас тупой, он все равно ничего не поймет, а программисту будет только сложнее читать.
В Руби, например, обрабатывается окончание множественного числа у имен переменных, и, как по мне, от этого один вред и проблемы. Больше такого не видел нигде, и слава богу.
Ужасно. Серьёзно, у вас мысли на уровне Задорнова (не комплимент).
Мне кажется, так думает любой, кто хоть раз пытался втолковать что-то более или менее сложносочиненное даже очень продвинутому голосовому помощнику. А если у меня фефекты фикции (а они есть у каждого первого, если он не профессиональный актёр), то вообще швах.
Вы вот, как я понимаю, математик. Вы как предпочитаете математические задачи с какими-нибудь сложными уравнениями решать - ручкой (шаркиовой) на бумажке или вслух надиктовывать?
Ну нет, мысль просто свёрнута до одного предложения.
Так я про это и пишу - вы как и Задорнов приписываете языку какие-то мистические свойства.
А так — вы действительно думаете, что составлять программы пользуясь микрофоном и динамиком было бы хуже?
Я вообще не понимаю этого аргумента - это в каких случаях надиктовывание текста годится для чего-то, кроме дневника капитана в "Звёздном пути", или заметок патологоанатома? И то во втором случае это в итоге переносится на бумагу.
Английский язык подходит для кодирования потому что сам похож на кодирование.
Каким местом английский язык похож на кодирование? Разве что некоторые слова из английского совпадают с ключевыми словами из некоторых языков программирования. Так с русским то же самое ;)
Как вам времена из английского языка?
Что вы имеете ввиду?
В английском языке есть времена. Их много. Попробуйте закодировать ;)
А вы что имеете в виду (с примером если можно)?
благодаря отсутствию падежей издалека это выглядит как грамотная конструкция
Очень издалека. Для меня тоже любой набор иероглифов выглядит как образец каллиграфии.
А вот «вернуть переменная» на русском уже выглядит не грамотно.
Всего то? Ну кодируйте "переменная" и "переменную" в один токен 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.
А вот здесь с вашим подходом уже ничего не понятно.
функция нашаФормула(число, коэффициент) {
вернуть коэффициент * число * него;
}
"Него" это коэффициент или число? В данном случае ваш подход имеет недостаток.
Так у вас есть аргументы, которые могут показать преимущества? Потому что если их даже у вас нет, то странно ожидать от собеседников, что они их увидят.
Примеров более качественных предоставить не могу, это само по себе было бы продвижением в разработке.
Но я ввязался в этот спор потому что размышляю на эту тему и вижу перспективу.
предоставить не могу, это само по себе было бы продвижением в разработке
Нет, это было бы обоснованием ваших высказываний. Вы же говорите о преимуществах для программирования, а программирование подразумевает конкретные программы. То есть получается, что вы спорите, не имея обоснования своих слов.
А продвижением в разработке это было бы, если кто-то это разработал.
и вижу перспективу
Ну так значит вы представляете какие-то ситуации, где это было бы лучше, чем программирование с английскими словами. Почему бы тогда не описать эти ситуации? Или вы их все-таки не представляете?
и вижу перспективу
Опишите пожалуйста перспективу во втором примере программного кода из моего комментария.
Он сделан в точности так, как вы хотите.
Лично я по сравнению с обычным языком программирования вижу только одно отличие, которое является недостатком — непонятно, что означает слово "него". Но может быть я чего-то не понимаю, поэтому жду от вас ответа, почему этот вариант лучше.
принцип замены языка слов и идея взятия из естественного языка его преимуществ различаются
Не очень понятно, почему вы спорите с собеседниками о преимуществах естественного языка для задания требований компьютеру, когда разговор как раз о замене слов.
Но дело даже не в этом, а в том, что английский это тоже естественный язык, и взятие его преимуществ было бы полезно. То есть это не является аргументом в пользу использования русского языка (или какого-то другого естественного языка) вместо английского. Просто понимание естественного языка требует изобретения искусственного интеллекта, поэтому еще никто так не сделал. А изобретение искусственного интеллекта от языка ключевых слов не зависит, как минимум потому что программы потом компилируются в машинный код.
А продвижением в разработке это было бы, если кто-то это разработал.Это конечно очень интересно, когда полезный пример приведён, но не разработан. Вряд ли у кого-либо это бы получилось.
разговор как раз о замене словЗамена слов тривиальна, не стоит обсуждения.
еще никто так не сделал А изобретение искусственного интеллекта от языка ключевых слов не зависитВот, кстати, действительно здравая идея — после реализации аналога естественного русского языка позволить образоваться и аналогу естественного английского языка. Обязательно позволим.
Но потом.
когда полезный пример приведён, но не разработан. Вряд ли у кого-либо это бы получилось.
"Разработан" в моем комментарии означает фактическое внедрение описанных вами преимуществ в компиляторы для языков программирования.
А гипотетические примеры на выдуманном языке можно приводить и без существующего компилятора.
Поэтому да, можно привести полезные для данной дискуссии примеры, не имея разработанным использование в компиляторах "преимуществ естественного языка".
Замена слов тривиальна, не стоит обсуждения.
Не вам решать за других людей, что они хотят обсуждать.
после реализации аналога естественного русского языка
Вы либо не поняли, что я написал, либо намеренно проигнорировали. То, что вы называете "реализация аналога естественного русского языка", невозможно без изобретения ИИ. Без ИИ это будет просто замена одних ключевых слов на другие. А с ИИ это не будет языком программирования.
«Разработан» в моем комментарии означаетА в моём комментарии «разработан» значит доведён до демонстрации концепта.
можно привести полезные для данной дискуссии примерыполезные примеры потому полезные что работают, в какой-то степени уже представляют собой концепт.
Не вам решать за других людей, что они хотят обсуждать.То есть, надо было уточнить «не стоит моего обсуждения», не слишком ли это было эгоцентрично? Я вообще имел ввиду, что не обсуждаю простую замену слов, там изобретать нечего.
Без ИИ это будет просто замена одних ключевых слов на другие. А с ИИ это не будет языком программирования.
Да, а вариант что программист разработал язык программирования, и он похож на естественный, но без неопределённостей, для разъяснения которых нужен «ИИ», вы исключаете?
А в моём комментарии «разработан» значит доведён до демонстрации концепта.
Демонстрация концепта "в компиляторах надо использовать преимущества естественного языка" это и есть разработка такого компилятора. Демонстрируется в данном случае его работа. Без этого никакой демонстрации нет.
То есть, надо было уточнить «не стоит моего обсуждения», не слишком ли это было эгоцентрично?
Нет, надо было сказать "Да, я признаю, что разговор был о замене слов, а я начал спорить о чем-то другом, и мои аргументы в этой теме ничего не доказывают, это моя ошибка, извините".
без неопределённостей, для разъяснения которых нужен «ИИ», вы исключаете?
ИИ нужен не для разъяснения неопределенностей программисту, а для понимания входного текста на естественном языке.
Человек может пользоваться естественным языком потому что у него есть способность анализировать входные данные, которые поступают постоянно. У компьютера такой способности нет. Ее реализация на уровне, аналогичном человеку, это и есть ИИ. Другие варианты требуют предварительной формализации, закладывание формальной модели в компилятор, и обозначение элементов модели ключевыми словами.
Да, а вариант что программист разработал язык программирования, и он похож на естественный
Это и есть замена одних ключевых слов на другие. "Похож", но не "является", значит есть какие-то формальные рамки, которые заданы этим программистом при разработке компилятора. Это ничем не отличается от существующих компиляторов.
это моя ошибка, извинитеВряд ли после моих слов о том что я бы не обсуждал замену вам стоит говорить чтобы я извинился что начал её обсуждать. Для уточнения: где конкретно указывается, что речь в этой ветке о замене, вдруг я упустил?
а для понимания входного текста на естественном языке.Так. У нас тут целых четыре варианта образовалось. Обычный ЯП, ЯП с заменой слов, ЯП по форме похожий на естественный и действительно естественный для распознания которого нужен ИИ. Не много, не запутаемся?
Это ничем не отличается от существующих компиляторов.А, четыре многовато для вас. Ну ладно, как хотите.
У нас тут целых четыре варианта образовалось. Обычный ЯП, ЯП с заменой
слов, ЯП по форме похожий на естественный и действительно естественный
для распознания которого нужен ИИ.
Где подтверждения того, что третья категория отличается от второй (либо четвёртой, в зависимости от того, с какой стороны подходить)?
А я думаю, что за превышение статистики по пониженной культуре общения
Я вежливо попросил вас ответить на вопрос, заданный в корректной форме и в нейтральных словах. Вы не ответили на вопрос, что само по себе является грубостью, и начали высказывать различные реплики с негативными коннотациями в адрес собеседников. Культура общения да, от этого понижается.
Вряд ли после моих слов о том что я бы не обсуждал замену вам стоит говорить чтобы я извинился что начал её обсуждать.
Я не говорил, чтобы вы извинились, что начали обсуждать замену. Я говорил, чтобы вы извинились, что начали приводить аргументы, касающиеся распознавания естественного языка, в теме, где другие обсуждают замену.
Считаю ваше признание в не слежении за содержанием диалога бессмысленным.
Не много, не запутаемся?
Выглядит как отсутствие возражения.
Вы не ответили на вопрос, что само по себе является грубостью,
… в теме, где другие обсуждают замену.вот вы и сами не ответили на вопрос об уточнении уточнение где это такое.
Считаю ваше признание в не слежении за содержанием диалога бессмысленным.Я бы не стал собеседнику отвечать его словами, даже если бы они подходили. Это же неуважение ни к себе ни к собеседнику. Давайте хотя бы эту ветку оставим уже? Я в ветке про логические противоположности в высказываниях сейчас пытаюсь ответить так чтобы до чего-нибудь разумного договориться.
вот вы и сами не ответили на вопрос об уточнении уточнение где это такое
Пишите пожалуйста в большем соответствии с правилами русского языка, сложно понимать, где именно вы пропустили знаки препинания и что хотели сказать.
Действительно, я хотел ответить на этот вопрос, но пропустил его в финальной версии комментария. Но хочу заметить, что если вы сами не отвечаете на вопросы, то этим понижаете уровень дискуссии до того, где это допустимо, а потому не можете относительно этого предъявлять претензии собеседнику.
Для уточнения: где конкретно указывается, что речь в этой ветке о замене, вдруг я упустил?
Поищите эти фразы на данной веб-странице. Они задают контекст всего этого обсуждения.
"В данной статье приводится мой краткий обзор некоторых языков программирования и решений, которые позволяют программировать на русском."
"Русификация служебных/ключевых слов"
"новый скриптовый язык программирования с синтаксисом на русском языке"
имхо не было тут безкультурия или культуры вообще, было обыкновенное непонимание ака про Фому и Ерёму. Я не настоящий программист, однако есть мнение про поднятую проблему.
Есть такая тенденция развития творческих и не только занятий людей, ну там живопись, музицирование, да мало ли, так вот, для примера использую музыку. Для создания музыки нужно осваивать нотную грамоту или хотя-бы блатные аккорды, притом в дальнейшем придётся учить что-то более сложное типа нотной грамоты или гармонии с тональностями, не всякий человек осилит по разным причинам такой путь, однако появляются решения для тех у кого в голове возникают творческие идеи и эти решения помогают им как-то их реализовать, пусть неграмотно с точки зрения профи, но они могут выдать образ и поделиться им.
Тот же эффект произойдёт и в программировании если таковой инструмент появится! Ведь кто такой профессионал в программерстве (образ усреднён) - это обученный всем премудростям согласно требований, имеющий опыт успешного применения навыков ремесленик, но тем не менее идущий как лошадь в шорах по проторённой до него другими тропе с высокой оградой, ограничивающей творчество стандартами, этакий идеальныё робот.
Просто сравните музыкантов профессионалов с музыкантами самоучками, пусть играют не так чисто, зато душевно.
А ещё были всякие математики смешные, которые додумаются до умного и им это так просто кажется, и словами они могут объяснит ту простоту, а вот доказать всему миру не то что не могут, а не пытаются, потому как всему миру нужно строгое математическое доказательство по всем правилам как все делают! А потом весь мир вместо развития дальше столетиями пытается по всем правилам доказать то, что понятно описано словами, но чтобы как все.
В русском языке есть разные окончание для розного рода, и поэтому упомянув переменные, названные разными родами, повторное упоминание в этом же предложении можно обозначать его/её, и будет ясно о чём речь.
Я за всю жизнь не сталкивался с ситуацией, когда бы мне в программе требовалось выразить род переменной или функции.
ложность языка заставляет развивать понимание, воображение на слушающей
стороне, что в программировании означает на стороне компьютера
Вот чего меньше всего хочется, так это воображения со стороны компьютера. Он навоображает, что вы его угнетаете своими программами, и обидится.
Лампа просьбу поняла дословно правильно! Правда почему-то результат неожиданный!
а вы программируете?
не в противоречии дело, просто ваша точка зрения - с моей точки зрения - выглядит странной и даже сомнительной, потому что вместо практического удобства вы предлагаете значительное усложнение ради... я не очень понял, ради чего, если честно. Поэтому и вопрос, теоретик вы или практик.
О! программирование как общение - прям мечты из журнала "Человек и Машина" за 1980й. А создание такой среды разработки на чём? на обычных ЯП, и это колоссальный труд, и его смысл пока не виден.
Всегда предполагал что программист мыслит абстракциями. А потом уже идет реализация через ЯП.
Так процедура, функция и есть абстрактный шаблон. Передали аргументы, получили результат.
Мы не работаем с физическими объектами в большинстве случаев.
Шаблоны в С++ и функции базовых классов в ООП - и есть "абстрагирование". Да и сами классы - суть абстракция реальных сущностей, а методы - абстракция взаимодействий.
Шаблон создания шаблона - это схоластика.
В языках вроде SmallTalk или ObjectiveC, например - вообще нет "методов" - а есть взаимодействия между обьектами. Включая возможность реакции на не известные на момент написания или имеющие другой набор параметров..
Тогда уже замахивайтесь не на "что надо сделать" - а на "что должно получиться", как в нейронных сетях...
Что вы вкладываете в понятие "проверять"? Как и любая другая аппроксимация неизвестной функции - нейронные сети проверяются статистически. Доказать, что где-то не пропустили локальный экстремум - невозможно, как и критерии "аппроксимируемости" в этой самой точке.
Это так не работает. Вы "спросили" сеть - она вам дала ответ с определенной уверенностью. Множите эту уверенность на статистическую точность сети - получаете вероятность правильного ответа. Дальше - зависит от критичности применения, можно иметь несколько сетей разных архитектур и совмещать их результаты, можно поставить дополнительные датчики, можно просто смириться.
Если возможна ретроспектива - то большинство сетей умеют "дообучаться" на своих ошибках.
Этому придается внимание - но "поиск возможных ошибок" невозможно завершить за разумное время и деньги.
Кстати, вы для своих "обычных" программ используете статический анализ кода? Думаю что нет, хотя стоят такие анализаторы недорого (а то и вообще бесплатны) - и наверняка найдут у вас кучу ошибок.
Нормально же общались.
Я и так уделил этим обсуждением весь день. Мне карму слили чисто по упоротости недорусских по английскому языку и мировоззрению. Половина оппонентов не умеют ни читать ни в логику. Сама мечта не оценена.
И вам обязательно вот так под конец дня хамить?
Что-то как-то перебор.
Зря вы обижаетесь - это обьективная реальность. Если не использовать статический анализ - то в "безопасных" языках будет 1-2 ошибки на страницу, а в C/C++ - еще больше. Такова сложность современных ЯП.
А времени и денег не хватает всем - бюджет не безграничный и рынок тоже не будет ждать вечно
Писать на Idris и доказывать всё необходимое c проверкой на тотальность?
Программирование с доказательствами это хорошо, но что если будут такие места, где наоборот, именно доказательства ожидать и не стоит?
В этой теме копать и копать.
все понимают то что они сами говорят, или есть исключения?
Никто не понимает - это фундаментальное ограничение естественного языка.
что если будут такие места, где наоборот, именно доказательства ожидать и не стоит?
При работе с автоматическими системами (т.е. с такими, которые руководствуются только сказанным явно в коде программы либо в спецификации языка) такое место ровно одно: обработка аппаратных сбоев, вроде некорректно прочитанного из памяти бита. Во всех остальных примерах доказательство корректности кода возможно (пусть и редко когда стоит того) и является единственным способом не допускать ошибок при разработке.
Так и делается.
Шаблонные классы с шаблонизированными шаблонными параметрами и переменным количеством простых типов-параметров, вот, например.
Просто оно настолько развивает воображение на принимающей стороне (у человека-читателя), что не очень часто используется. А компьютеру нормально, и иногда очень полезно получается.
Ну тут либо неоднозначность и трудноуловимые ошибки — такое сейчас готовы предоставить нейросетевые классификаторы.
Либо долгое объяснение, какие функции что делают, то есть написание библиотеки алгоритмов, откуда можно создавать объекты и функции, подставляя им конкретные типы данных и шаблонные стратегии (типичный пример стратегии в C++ — аллокатор при создании контейнеров).
Объяснять выше, собирая конференц-колл и проводя двухгодичные курсы алгоритмов и структур данных для компьютера, мало толку: на выходе получится та же стандартная библиотека, только с ошибками — во всяком случае, люди, начав код писать после такого курса, довольно быстро узнаю́т слова off-by-one и segfault.
Объяснить сложные вещи как-то ещё более по-другому — непонятно как, и от выбора языка это не сильно зависит, хотя конечно, в языке должны быть необходимые слова и абстракции.
Я бы не хотел работать с такой системой, скажем прямо. По одной простой причине: когда (не "если") она сделает не то, что надо, мы не сможем разобраться, почему.
И проверить, правильно ли тебя поняли помогает и в обычном кодировании.
Разница только в том, что при обычном кодировании это возможно, ввиду его формализуемости.
"Quis custodiet ipsos custodes?" Где гарантия, что проверка интерпретациями друг друга будет иметь хоть какую-то достоверность - опять-таки, в условиях не-формализуемого языка?
То есть, какая-то принципиальная основа действительна должна быть.
Естественный язык не формализуем принципиально. Соответственно, предлагаемый язык либо будет заведомо не похож на естественный, либо будет также не формализуем.
А как проверить правильно ли тебя поняли?
При использовании формального языка или формул это просто.
А с естественным языком процесс будет бесконечным: чтобы проверить правильно ли тебя поняли, надо задать уточняющий вопрос, проверить правильно ли поняли вопрос и т.д. А еще надо проверять правильно ли поняты ответы...
А вы попробуйте реально абстрагироваться. Возьмите любую проблему по работе и замените в ней все важные сущности случайно выбранными словами. Допустим, у вас есть группы пользователей с разными правами доступа к объектам. Назовите группы "яблоками", пользователей "сапогами", права доступа "кляксами", а объекты "яичницами". Итак, "сапог может входить в разные яблоки, которые имеют разные кляксы к яичницам...". Все существенные отношения между сущностями тут сохраняются, но сомневаюсь, что у вас получится рассуждать таким образом. И даже если взять нейтральные имена А, Б, В и Г, вряд ли это что-то изменит.
В программировании мы мыслим больше аналогиями, чем абстракциями. Например, в этом же примере, если оставить пользователей, а остальное заменить на "связки ключей к комнатам", то мышление пойдет бодрее и, может быть, даже проявятся какие-то неочевидные возможности.
Вы не поверите, но я с таким сталкиваюсь так как поддерживаю несколько систем на 1с, одна из которых довольно древняя.
Так там хватает и программирования на русском и случайных слов не связанных с предметной областью (переменные ГВ, ХВ, СЗ_, ДН_ и.т.п.). При работе с ними как раз помогает абстрагирование.
При этом я ещё и умудряюсь получать удовольствие, так как воспринимаю работу с таким кодом как логическую головоломку(хотя может это проф. деформация...)
Это не совсем абстракция. Правильная абстракция - это, например, моделирование автомобиля классом Car с методами, имитирующими воздействие на руль и педали. Такая абстракция вполне применима для определенных задач - хотя в ней опущены, например, параметры топливо, рельеф и т.п. А также взаимодействия типа "ломаться", "насрал голубь" и "запихать в багажник матрац"
Это да, но речь о том, что от средство построения такой модели -- нотация на основе языка, и что от языка мы как раз не абстрагируемся, а напротив, используем всю его конкретику, все символические связи, почерпнутые нами из окружающей культуры. Сколько споров идет о том, как правильно называть переменные -- но если имена переменных важны, то и язык тоже.
Когда ты пишешь код, ты не думаешь ни на русском, ни на английском, ты мысленно оперируешь конструкциями языка, структурами данных и алгоритмами, а потом записываешь это на языке программирования. Соответственно, определённые алгоритмические шаблоны уже ассоциируются с блоками кода на этом языке, и какими именно символами записаны всякие ключевые слова - не имеет большого значения.
Чтобы программировать на PHP не обязательно знать, как переводятся слова while, switch, yield, надо просто знать, как они работают.
И кстати, попытки довести синтаксис ЯП до человеко-понятного текста на английском или русском вообще не доводят до добра. Код - это не речь, это отдельный "язык".
Но преимущество есть и в отсутствии переключения — компьютерный язык может изначально выглядеть как общение, а не кодирование. Тогда это может усилить доступность, точность, ясность, безопасность.
Программирование не предполагает общения - это сведение задачи к точным формулировкам языка. Можно сказать что это смесь приказов и юридического документа. А когда с машиной начинают общаться - в мир выходят особенно убойные шедевры индусского стиля.
для программирования нужно переключаться в другой режим
Вот не согласен, ибо по крайней мере у меня как-то не так происходит. Например, когда думаю, надо написать какое-то условие, проговариваю в уме "если", но пишу "if". Аналогично при чтении кода: вижу "if" -- читаю "если".
«активное непонимание необходимости русского языка программирования» — это торможение развития компьютерных технологий
Я вот вообще не понимаю подобных тем "какой-то там естественный язык (русский, английский) в программировании". Так, например, я не воспринимаю при чтении кода ключевые слова языка программирования как слова какого-то там естественного языка. Т.е. я не ассоциирую ключевое слово "while" языка программирования С++ с каким-нибудь английским словом "пока", для меня это просто слово "while" со значением цикла, а то что оно совпадает с английским словом -- так это уже другой вопрос. И в естественных языках тоже бывают совпадения слов. Поэтому, на мой взгляд, такие высказывания как
«активное непонимание необходимости русского языка программирования» — это торможение развития компьютерных технологий
где вместо русского можно вставить любой другой язык, не имеют под собой основания.
компьютерный язык может изначально выглядеть как общение, а не кодирование
Вот для меня С++ (или другой язык программирования) и выглядит как иностранный язык, отличный от английского или какого-то другого естественного языка.
когда думаю, надо написать какое-то условие, проговариваю в уме «если», но пишу «if».О том и речь, без переключения бы так и писали «если».
не имеют под собой основания.Дело в том, что такое уже упомянутое явление как «русскийязыкнинужын» существует, и в комментариях много примеров. Моё высказывание направлено против него. Если вы и явления не ощущаете, то и обсуждать нечего.
О том и речь, без переключения бы так и писали «если».
Но это утверждение работает и в другую сторону. Т. е. какой-нибудь немец может заявить вот если бы вместо "if" писали "wenn"... Да, и что твориться у китайцев страшно себе представить, говорят "rén", а пишут "人". Также скажу, что мы говорим "малако" (более точно, "мълᴧко" -- но мы этого не чувствуем), но пишем "молоко". А вот если бы сразу писали "малако"...
В случае языков программирования происходит следующее: можно составить такой язык, чтобы как можно больше его ключевых слов совпадало со словами некоторого наперед заданного языка. Но, как я говорил ранее, ключевые слова языка программирования даже в такой ситуации, становятся словами иностранного языка, хотя и совпадающими со словами выбранного естественного языка.
Кстати, похожим образом создаются некоторые языки программирования, где в качестве некоторого наперед заданного языка выступает другой язык программирования.
Также с другой стороны, какой естественный язык выбирать качестве такого наперед заданного языка для создания языка программирования? Выберем, условно, немецкий -- что тогда скажут французы? Выберем французский -- что тогда скажут русские? Поэтому тут тоже такая проблема у данного подхода, что всем не угодишь, и приходиться выбирать компромисное решение, ведь язык обычно создается для международной разработки, для всех, а не для разработчиков-носителей определенного языка.
Дело в том, что такое уже упомянутое явление как «русскийязыкнинужын» существует
На данный момент не вижу в этом смысла, ибо важнее чтобы один язык программирования был похож на некоторый другой язык програмирования (на смесь некоторых языков программирования). Или так можно сказать: чтобы языки програмирования были похожи в некоторой степени.
Все кто утверждает «давайте русского языка программирования не будет» говорит «давайте не развивать ИТ в этом направлении». «Давайте не развивать», ага — явно не позитивное предложение.
чтобы языки програмирования были похожи в некоторой степени.Ну да, а то что это не как все.
В даёте себе отчёт, что на моё утверждение «при программировании нужно переключаться» вы возражаете по типу «при программировании нужно переключаться»
Лично я не переключаюсь, по крайней мере, "базовый" C++ для меня это как родной язык.
Русский язык для вас не родной, или в чтение не всегда?
Таки да, не родной. Но опять же, говоря на русском, мне не нужно переключаться. И произношение слов определенного языка не обязано совпадать с написанием.
Ну да, а то что это не как все.
Условно, зная С++, человек может легко освоить Java или C# (или вернее сказать, ему будет легче освоить) в силу похожей "лексики" и грамматики языков. Но вот язык с абсолютно другими непохожими ключевыми словами будет освоить ему гораздо сложнее (Я напомню, что слова языка программирования я не воспринимаю как слова естественного языка). Тогда зачем следует тратить время на создание языка, который текущим разработчикам будет сложнее освоить. Конечно, язык программирования это, вообще говоря, теоретическая вещь. Для использования его на практике (в промышленности) нужны дополнительные вещи, например, компилятор. Если же язык для учебных целей -- то зачем, если у него нет применения в промышленности, а это значит, что с него надо будет переучиваться потом на язык программирования с другой "лексикой", что будет сложнее, чем изучение первым языка, более приближенного или совпадающего с языком, используемым в промышленности.
Более того, в промышленности уже существующие языки программирования хорошо заняли свои нишы. Даже если взять язык программирования, и заменить в нем ключевые слова, то что это даст? Кто будет это использовать? Не говоря уже про проекты, развиваемые силами участников из разных стран.
на моё утверждение «при программировании нужно переключаться» вы возражаете по типу «при программировании нужно переключаться»?
Не совсем так. Ваше утверждение - "при программировании нужно переключаться, если язык программирования не основан на естественном языке, знакомом программисту". Утверждение вашего собеседника - "при программировании нужно переключаться точно так же, как и при разговоре на иностранном языке, независимо от того, какой естественный язык для программиста родной".
Ваше утверждение: «при программировании нужно переключаться, если язык программирования не основан на естественном языке, знакомом программистуВот прямо что я говорил:
Дело в том, что русский человек думает на русском, и для программирования нужно переключаться в другой режим.Почувствуйте разницу. В том что Англичанину не надо переключаться я не говорил. Что, все минусы — от этих домыслов, да?
для программирования нужно переключаться в другой режим
В режим программирования? Любая деятельность подразумевает некий набор "слов" - на естественном языке или на ЯП. При этом на естественном есть огромное количество специфичных слов - вон у любителей парусного спорта спросите. Даже когда я еду на велике по всякой пересеченке, я внутри себя думаю специфичными "словами", не все их них русские (а те что да - часто матерные). Также и с программированием - тут есть некоторые "слова", которыми нужно пользоваться. Кому какое дело на какой естественный язык они похожи? Они им не являются.
Опять же - понятной кому? Программисту и так понятно, на то он и программист. А не программистам оно нафиг не нужно, на то они и не программисты.
для абстрактной идеи можно легко менять форму воплощения, не привязываясь к одной
Ну... да? Я это и говорю - слова это только форма, какая разница какие они там. А вот зачем тратить усилия на создание и, что важнее, поддержку языка с другими словами, мне непонятно.
Но никто никогда не пишет – зачем? Для чего создаются подобные шедевры, что движет их авторами? Какие перспективы они видят для своих творений?
Ну, во-первых это интересно. Во-вторых обычному человеку удобнее общаться на родном языке, а не на английском суржике, приправленном щепоткой знаков препинания. Плюс комплимент от шеф-повара в виде брызжущих слюной в комментариях на тему «русскийязыкнинужын!»
Единственный минус в том, что как правило получается просто русификация уже существующего ЯП, а не что-то действительно новаторское. И это в то время, когда нейронные сети бороздят просторы Большого Интернета, генерируя тексты, изображения и звуки.
обычному человеку удобнее общаться на родном языке
Это не будет русским языком, так же как сейчас язык программирования не является английским языком
Допустим, у нас есть два ЯП. Язык Q с ключевыми словами на английском языке и язык Ы с ключевыми словами на на русском языке. Совершенно очевидно, что язык Ы является более русским, чем язык Q.
Q.E.D.
В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее.
В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее.
Если не ошибаюсь, примерно так в 90-х начинался всем известный язык Ruby. С ним работать действительно удобнее? Я просто не могу судить, я на нём постоянно NameError получаю, закодить что-то крупное не получается, но я, наверное, просто английским не владею?
В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее
Живая речь содержит слишком много неоднозначности и недосказанности, так что вряд ли.
Ну и в целом, звучит слишком категорично и без пруфов
В обозримом будущем неизбежно будет сделан шаг в сторону более похожих на живую речь ЯП. Потому что людям так удобнее.Если бы живой язык был удобен везде и всегда, то не возникли бы те же правила радиообмена в авиации, сложные юридические формулировки для исключения неоднозначных толкований, армейские уставы с прописанными в них командами и ответами.
Нотация -- инструмент мышления и влияет на то, до чего человек может додуматься. Рассуждая на одном языке человек будет думать иначе, чем на другом, особенно на неродном.
Вот вам смешно, а англоязычные программисты всю жизнь вынуждены писать на таких языках))
Слышал такую мотивацию: военные не хотят, чтобы их программисты знали английский, потому что знание английского повышает шансы ухода такого специалиста в закат, то есть на запад.
...я как-то 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, не являющемся, в общем случае, таблицей ))) Да, "боевой" обработки от того древнего проекта под рукой не оказалось (он остался в боевой конфигурации предприятия) - попался первичный набросок, сделанный на домашнем компе в пустой конфигурации.
просто просится сюда этот старый мем
Языки программирования и языки говорения/общения - вещи совершенно разные. Подавляющее большинство языков программирования "английские", но это не английский, а просто в написании команд используется латиница и какие-то ключевые слова на ней. Потому как изначально всё делалось под латиницу и удобно в принципе - английские слова короче, префиксы/суффиксы - редкость, алфавит небольшой, язык сам по себе более абстрактен, а всякие языковые сложности (вроде системы времён) в коде как раз не используются.
Конкретно для нас то, что языки программирования, как правило, английские - это благо. Так как граница очень чётко проведена - в чате пиши себе на русском, а когда программируешь, то там уже не чат, там своя рабочая среда с английскими командами. Очень легко абстрагироваться, чтобы писать алгоритмы и логику. А русский оставьте для рассказов, статей, романов, где это действительно нужно.
Да, если бы речь шла о том, чтобы что-то программировать на каких-то очень высоких уровнях абстракции и в специфических сферах, то там, возможно, имело бы смысл использовать русский язык, чтобы получать какой-то профит от его персональных особенностей. А просто так, ради православного рескина GO TO на ВЫЙДИ ВОН - бессмысленно, даже (особенно) для детей.
Пролог и Форт позволяют писать на любом языке если не ошибаюсь.
Удивлен, что еще никто не упомянул этот древний баян на 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-х видел русифицированный клон спектрума, на котором вполне себе загружались и работали программки, написанные на нерусифицированном.
Очень зря пропустили OneScript. Его создавали люди практикующие программирование на 1C, С#. Так что получился самый адекватный язык из всех перечисленных на мой взгляд.
Надо воспринимать английский язык в ключевых словах языка программирования не английским языком, а латынью, математическими обозначениями, и тогда переводить на русский язык не надо будет. Мне кажется, перевод на русский язык наоборот ухудшит понимание программного кода, ибо будет смешивать в голове программиста бытовую семантику с компьютерной. А вот имена переменных/функций для обозначения сущностей прикладной области на русском языке норм (и компактные DSL-язык для композиции бизнес-логики, возможно, тоже можно для конфигураторов/менеджеров делать на русском).
"не английским языком, а латынью, математическими обозначениями" - Мне кажется вы заново изобрели APL
«Математических» языков сейчас как грибов после дождя, а «нематематические» обрастают «математическими» аспектами (прежде всего аспектами ФП) и фреймворками, выражающими прикладную «математику» с помощью этих аспектов. Думаю, основным экономическим фактором тут является развитие машинного обучения и всей этой темы, которая тянет за собой потребность в простом выражении сложных параллельно-массовых вычислений.
Судя по результатам голосований (на compiler.su и даже здесь на Хабре) идею программирования на русском поддерживает не так уж и мало людей.
Пример кириллического языка программирования показан в известном мультфильме в виде примера кода:
Ну-ка(двое из ларца)
Замесить
Нарубить
К сожалению интерпретатор был глючный, поэтому после получение команды "замесить" месились дрова, а команда "нарубить" рубила тесто :-)
В принципе без разнице на каком языке будут комманды, программировал на 1с. Но даже там перешел на латиницу.
Придется постоянно переключать раскладку, чтобы ввести специальные символы.
У некоторых ide до сих пор проблемы с кодировкой и поиском.
В английском существенно короче слова. Правописание и времена противопоказаны в программирование, а краткость, читаемость и емкость - самое важное.
А есть программирование с китайским синтаксисом? Интересно как оно выглядит.
Поздно.
Русский язык программирования мог бы быть полезен лет 30-50 назад, когда всё начиналось. Сейчас уже всё завязано на английский язык, даже корпоративный сленг содержит (по ощущениям) несколько процентов английских слов типа NDA, KPI, SLA - чужие буквы и слова вообще никто не стесняется использовать, и не только в офисе. Вычистить английские фрагменты из языка общения уже сложно и не имеет смысла.
Сегодня единственный успешный ЯП, основанный на русском - 1С. Остальные слишком эзотеричны для реального применения. Да и, как показывает быстрое изучение вопроса, 1С не содержит ни ООП, ни статической типизации, так что он не очень хорош как ЯП общего назначения. От языка ключевых слов точно ничего не зависит. Любой программист способен выучить ~25 идентификаторов языка, и их семантику всё равно надо учить.
А в научной нотации тоже от латиницы откажемся? Не ощущается это хорошей идеей.
Английский упрощался и переформатировался под международным давлением. Мы же не на языке Шекспира пишем, а используем некий наиболее общий pidgin - примитивный язык: "я ехать в 3 час сегодня сверху трамвай". Да, он сформирован на основе английского, потому что Британия была великой морской торговой империей. Но, может, она и была великой морской торговой империей, потому что всем легко было освоить базовые структуры языка?..
Смогут ли господа/товарищи патриоты вменить русский всем потенциальным своим партнёрам, чтобы расширять свою it-индустрию на них? И не боятся ли они, что великий и могучий таким образом превратится в "твоя моя понимай"? Ведь, необходимо будет резко упростить систему сопряжений и склонений. Иначе прямо сейчас легко разглядеть многокилометровые флеймы о допустимых падежах и формах глаголов в именованиях функций, классов, процедур и т.д. И, ведь, это будет настоящая производственная необходимость, а не просто ВерблюдСтиль против _подчёркивание (споры о которых носят характер религиозных войн). Программистам, всё равно, придётся жить с двумя языками: русским и pidgin-русским. И второй будет проникать в сферу обращения первого.
Оно нам точно надо?
Если так уж не хочется английского, то может быть, лучше взять или разработать простой искусственный язык такой, как toki pona?
ЯП на любом "чистом" национальном языке, отличном от английского, вреден по определению. Пусть он сделан идеально, программировать классно, но поддержка таких творений то ещё приятное занятие. Не говоря уже о том, что отсекается огромная часть комьюнити прогеров.
Ересь, по мне. Если человек дорос до программинга, то выучить десяток слов на английском он уже должен суметь (у нас с 1 класса был, а сейчас некоторые уже в детсадах начинают спикать). Раскладку постоянно дергать, потому как не можешь ввести [], <> или ' - тоже изврат. Ну а имена переменных успешно решаются за счет транслита, и неизменные Zena (вовсе не воительница из сериала) и Rashod (вовсе не некий араб) вымрут, наверно, только вместе с русским языком.
Как-то все упускают один момент из виду, бизнес-логику есть смысл описывать в русских терминах, чтобы туда-сюда это все не переводить, особенно если следовать DDD
Как пример, врачи во всем мире используют латынь. И всех это устраивает
Кстати да, если бы компьютеры были придуманы по заказу врачей, а не военных, очень даже вероятно что программисты спорили бы о недостатках латыни.
Врачи во всем мире используют английский и цифровые обозначения по стандарту (название не помню).
PRINT СКАЖИ
INPUT СПРОСИ
FOR ДЛЯ
TO ДО
STEP ШАГ
END ГОТОВО
STOP ПРЕКРАТИ
GOTO ПЕРЕЙДИ
GOSUB ОТВЛЕКИСЬ
RETURN ВЕРНИСЬ
DELAY/PAUSE ПОДОЖДИ
BEEP ПОСИГНАЛЬ
PLAY СЫГРАЙ
LOAD ЗАГРУЗИ
SAVE ЗАПИШИ
В Terminal-BASIC, кстати, уже что-то подобное сделано, но соответствия отличаются.
Какой-то словарь Эллочки-людоедки
Дерзайте. https://github.com/QB64Official/qb64
END ГОТОВО
STOP ПРЕКРАТИ
EXCEPTION ОЙВСЁ
STOP ПРЕКРАТИ
Ах, семпай, прекрати!
GOSUB ОТВЛЕКИСЬ
Как-то вообще плохо. Это же не "отвлечение", а выполнение блока операций.
Но почему именно бейсик? Он мёртв. Возьмите интерпретатор питона.
Вам не нужен интерпретатор, достаточно при открытии файла в 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
ага
Древнее зло пробудилось! Пришло время!
Первую программу, которую, кроме меня использовал кто то ещё, я вводил с пульта Урал-11 в 8-х кодах. До того как я увидел первую раскраску Си на экране прошла маленькая вечность. Сейчас мне не удобно без раскраски как и многим другим. Убеждён что все языки программирования сведутся к хранению промежуточного дерева. А ключевые слова, операторные скобки [begin/end,{/},TAB] мы будем выбирать как стиль раскраски или цветовую схему. Кто то первый это сделает, как это случилось с раскраской, и мир изменится.
p.s. кстати мне приходилось набирать Си текст на клавиатуре с отсутствующими фигурными скобками и да в стандарте это предусмотрено.
меня просто тошнит от русского языка в коде после знакомства с 1С во время учёбы, ещё экзамен сдавали по нему, ужас
Автор, а как же Йоптаскрипт?
https://yopta.space/
Интерпретатору/компилятору в принципе пофигу на каком национальном языке написаны буковки в листинге программы. Научишь его с русского в бинарник гнать - будет жрать русский. Смысла, разумеется, никакого.
Говорить, что в русском есть какая-то "истинно православная логика", которой нет в других национальных языках без доказательств некорректно. Скорее наоборот, практика показывает, что с лаконичностью у русского большие проблемы.
Тут выше было, что можно использовать рода, падежи и всё такое. Ну, как бы в немецком это тоже всё есть и в итальянском, и чего? Т.е. у русского нет монополии на эти фишки естественного языка.
Ну и отдельный привет тому, кто будет писать компилятор, который будет класть неявность русского языка на всякую булеву логику.
Напомню про ИнтАЛ. Разработка белорусская. Имелись роботы-исполнители: чертёжник, кладоискатель и другие. Аналог КуМир.
Ох, какая жесть... когда я первый раз увидел 1С внутри, решил, что больше никогда :))
Вопрос зачем придумывать супер локальные ЯП?
На английском говорит весь мир (так уж сложилось), все всех понимают и это помогает сообществу развивать продукты, делать для них либы, дорабатывать под себя.
Вот представьте, что индусы начнут массово писать полезные программульки на хинди. Или на каком нибудь языке мертвых?
Какой в этом смысл, если тебя не будут понимать другие люди?
Да и вопрос кому надо было много переключаться в процессе написания кода?
В нормальном продукте, где есть локализация все выводимые значения и формулировки выносятся в отдельный файл. В остальных местах все пишется на латинице.
Комментарии можно писать и на английском. Я сомневаюсь что для кого-то написать мысль из 4-10 слов составит труда (а если и составит - повод для того, чтобы подучить язык)
А можно узнать предполагаемый православный синтаксис для ФП и реактивщины? Map, flatmap, bind, monad, either, yield, debounce, throttle и т.д.
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.
Тем не менее, мы отказались от этой возможности ввиду явных методических сложностей такого подхода.
Мы активно используем эту возможность только для имен, создаваемых в программе, что в ряде случаев хорошо воспринимается школьниками.
переменная А: массив из целое;
Конечно, очень режет глаза отказ от окончаний множественного числа.
Да, согласен. Я вижу, у нас были такие синонимы типов:
тип
цел = integer;
вещ = real;
строка = string;
Поэтому
перем a: массив из цел;
вполне себе ничего.
У нас кстати была идея заложить в язык склонения и множественное число в зависимости от контекста. Это не безумная идея - на уровне компилятора можно сделать - в большинстве случаев будет нормально.
"Println" - "ВыводСтроки". "ln" - сокращение от "line"
А ЯМБ (язык машин бухгалтерских) почему-то забыли. Видел такой на ИСКРЕ 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 кончаем
Самое годное из того что есть на текущий момент, для программирования на руском, это Компонентный Паскаль или какой-нибудь диалект Оберона. Современные компиляторы позволяют писать от микроконтроллеров до прикладного софта, ОС (JAOS например) Мозг ломает конечно конкретно, но писать на русском можно)
Единственное аргумент в пользу программирования на родном, а не заморском языке, можно описать одним мемом: «Не важно, жирный ты или худой. Главное что бы не жирный»
Аааа. Транслитом не пользуетесь если прога для наших внутренних российских реалий?
"float dlina, shirina, vysota;"
почему YoptaScript не на первом месте и вообще не в топе? Как мы докатились до такого?
Русский язык в программировании