Смягчить боль русско-английского программирования

1. user930656 29.06.20 22:16 Сейчас в теме
Давно занимаюсь темой программирования на русском языке, хотя к 1С почти никакого отношения не имею.

Что наблюдаем? При программировании на смешанном русско-английском языке, таком, как 1С, есть ряд проблем:

1. Нужно часто переключать раскладку.
2. Некоторые буквы (с и c, А и A, Е и Е) легко перепутать.
3. Не везде можно использовать кириллицу вообще (например, нельзя в адресах E-mail)

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

по проблеме 1. Задействовать клавишу-модификатор, чтобы её удерживать, как Shift, и при этом ракладка клавиатуры временно переключалась. Такая клавиша-модификатор вообще-то уже есть, это правая клавиша Alt, и она в такой роли применена в известной раскладке Чистов, но я предлагаю использовать в качестве такой клавиши пробел. Использование пробела позволяет печатать 10 пальцами без ущерба для удобства. Я сделал вариант раскладки с пробелом (назвал её "Яроклава") под AutoHotKeys и для Linux. Помимо возможности вбивать латиницу, она позволяет вбивать также все нужные виды скобок и кавычек без переключения - любому 1С-нику это должно быть приятно.

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

по проблеме 3. Нужно сделать обратимый транслит, т.е. такой, что русское слово по нему однозначно воспроизводится из транслита. Такой транслит существовал в СССР (правда, в нём не было твёрдого и мягкого знака), а я разработал версию транслита "Яролит", в которой любой текст может однозначно декодироваться, pri ehtom tekst ostajotsja vpolne chitabelqnym.

Ссылки на свой сайт я не размещаю, я здесь очень редкий гость, мало ли что... Но в теме достаточно ключевых слов для поиска.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. oleg-x 22 30.06.20 10:49 Сейчас в теме
А зачем писать сразу на двух языках?
В 1С за исключением обращения к внешним ресурсам, все можно писать на русском и не требуется переключение раскладки. Спец символы можно либо сделать отдельную клавиатуру, где запрограммировать клавиши, либо запомнить сочетания клавиш аль + 38 и прочее.

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

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

Определения совпадения переменных можно просто сделать выделением и если одна переменная будет с затисавшимся партизаном, то по выделению можно будет определить, если остальные подсветились, то проблема в другом, если не подсветились, то значит имя переменной отличается от остальных.
Также можно просто закинуть текст в стороннюю программу и определить язык раскладки, если очень надо.
8. user930656 11.07.20 10:58 Сейчас в теме
(2)
Писать по русски, но латиницей, это на мой взгляд извращение.

это то, что мы вынуждены делать из-за того, что в "международных стандартах" кириллица не в почёте. Данный форум называется не ИНФОСТАРТ.РУ, а infostart.ru, и Вы здесь называетесь oleg, хотя зовут Вас, наверное, Олегом. Т.е. вы уже использовали транслит, когда называли себя. Раз нам это приходится делать, то нужно сделать так, чтобы это порождало как можно меньше проблем. В большинстве транслитов есть неоднозначности, например, Паша может быть неотличим от Пасхи и т.п. Я всего лишь предлагаю придерживаться единого стандарта, и я придумал один из вариантов, в котором неоднозначностей нет. Паша = Pasha, Пасха = Paskha
3. user930656 10.07.20 19:54 Сейчас в теме
Я не понял, что Вы хотите сказать. Вы сначала говорите, что писать на двух языках не нужно, но потом сами приводите примеры, когда это нужно. Я об этих примерах и говорю. Я сам не 1С-ник, но когда я имел отношение к 1С, почему-то именно они мне и попались, т.к. нужно было обмениваться данными с моей системой, где всё было на латинице. Уверен, что таких случаев достаточно много.

Вот Вы опять же упоминаете про клавиатуру, а при этом не упомянули даже про раскладку Чистова, которая специально сделана для решения проблемы со скобочками и которая, в общем-то её решает для знаков <> {} [] и т.п. Пустились в какое-то изобретение клавиатур. Это значит, что скорее всего, Вы вводите каждый знак "<" с помощью двухкратного переключения раскладки. Т.е. проблема есть, и Вы заработаете насколько-то меньше денег, пока будете каждый раз переключаться, собъётесь с мысли, когда опечатаетесь и начнёте писать не в той раскладке, вставите не ту букву "с" куда-нибудь в строковое имя внешнего ресурса, которое компилятор не проверяет и потом будете долго искать, почему программа не работает. Желания работать над повышением производительности труда почему-то нет. Странно, но дело Ваше.

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

Но самое удивительное то, что больше вообще никто не ответил. Значит, действительно, ни для кого такая проблема ощутимой болью не является. Ну и ладно :)
9. oleg-x 22 13.07.20 10:12 Сейчас в теме
(3) Я не пользуюсь специальными клавиатурами или раскладками, так как у меня нет строго одного рабочего места, а настраивать все не очень удобно. Я пользуюсь АЛЬТ+, решает все проблемы со спец символами и не надо настраивать ноутбук с которого зашел что то поправить или помер компьютер и настраивать все заного.

Кириллица не в почете, как и остальные не латиницы. Так как нельзя придумывать кучу стандартов, что бы потом это учитывать при разработке продукта (хороший пример этому различные зарядные устройства в свое время для мобильных телефонов).
Поэтому надо придерживаться стандартов. Если продукт разрабатывается для внутреннего рынка, то можно использовать Русские слова, написанные латиницей, но если продукт предполагается распространение и за пределами РФ, то лучше такого не делать изначально, что бы потом не было мучительно больно тем, кто будет развивать продукт дальше.

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

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

P.S. Если бы кто нить придумал язык разработки полностью на русском языке, я бы изучил такой язык, но к сожалению если рассматривать сообщество в целом, то язык должен развиваться, а если сообществу это не интересно, то и развивать его не кому. Поэтому до сих пор нет полноценного языка разработки на русском языке, не практично и не удобно.
10. user930656 13.07.20 16:09 Сейчас в теме
(9) Тут можно втянуться в долгую дискуссию с уходом в политики и геополитку. Мне казалось, что в мире 1С как раз кириллица в почёте, т.к. на ней написана стандартная конфигурация 1С-предприятия. Но, возможно, Вы в какой-то другой нише находитесь. По поводу драйвера клавиатуры - раз так, то поддержка сочетаний клавиш должна быть сделана на уровне приложений. Подсветка одинаковых слов - это хорошо, но это всё же не совсем то. Потому что замена с на c может произойти в единственном слове, которому нет одинакового нигде в тексте, или это одинаковое будет слишком далеко. И автозаполнение тоже не про то. Всё это частные решения и решения не совсем той же проблемы. Визуальная отличимость кириллицы от латиницы - это общее решение.

НАсчёт стандартов - если коротко и без политики, то нет никаких международных стандартов, предписывающих использование английского и латиницы. Есть просто, так скажем, популярные практики. Если Вы пишете программу для международного рынка на английском, а не на русском, то в каком-то смысле Вы отбираете хлеб у русских разработчиков и отдаёте его индусам, китайцам и прочим. Прежде всего, Вы отбираете хлеб у себя же в будущем, поскольку Вас становится легче заменить на среднего индуса. Другое дело, что скорее всего заменить русского на индуса нельзя, т.к. русские стоят дёшево и работают за те же или меньшие деньги лучше индусов. В общем, расширять за счёт английского список людей, которые могут поддерживать Вашу программу - может это и благородно по отношению к заказчику, но большого экономического смысла для Вас лично в этом нет.
11. oleg-x 22 14.07.20 08:06 Сейчас в теме
(10)
Вы в какой-то другой нише находитесь. По поводу драйвера клавиатуры - раз так, то поддержка сочетаний клавиш должна быть сделана на уровне приложений.

Не в другой, просто таких проблем нет.
Сочетание клавиш ничего не требует, просто наберите альт + 38 и получите символ без переключения раскладки.
13. user930656 14.07.20 14:15 Сейчас в теме
(11) Про нишу - я имел в виду, что там, где находился я, русский язык был выбором по умолчанию, т.к. была самописная конфигурация на базе стандартной, для русскоязычных пользователей. Т.е. никаких резонов вводить в тему английский язык не было. Alt+38 - странно, сейчас работает. Так было не всегда, или так не все символы можно вводить. Тут можно, конечно, придраться, что это менее удобно при печати 10 пальцами, но в целом это тоже решение проблемы значков, если нельзя поставить раскладку.
14. oleg-x 22 14.07.20 14:31 Сейчас в теме
(13) Конечно это решение не идеально, но когда приходится работать на разных компьютерах или тем кто работает на сервере заказчика и там нельзя поставить что то специальное, то это самый оптимальный вариант ввода спец символов. Сначала не удобно, а потом быстрее чем переключить раскладку.
15. user930656 14.07.20 16:05 Сейчас в теме
(14) Но можно было бы встроить соответствующий функционал в среду 1С и тогда было бы гораздо удобнее. Хотя бы тупо клавиша-модификатор, после нажатия которой на одно нажатие включается другая раскладка. Или как сделано в яроклаве - ввод другой раскладки при удержании пробела. Это вполне можно реализовать на прикладном уровне. Тогда при распространении этой среды 1С (постепенно) станет удобнее. Это, конечно, произойдёт не так уж быстро, как хотелось бы. И тут всё зависит от доброй воли 1С и от желания пользователей донести свои пожелания до 1С. Сам по себе функционал очень простой.

Проблема тут в том, что никто не подумал о том, что эта проблема со значками и различимостью букв воздействует на очень большое количество пользователей компьютера, и не попытался решить эту проблему в общем виде. Все привыкли к тому, как сложилось, и смирились с постоянными неудобствами. Эти неудобства терпимые, но если посчитать сколько по всей стране теряется рабочего времени из-за них, то суммы будут миллиардные. Решения сами по себе простые, самое сложное - их внедрить. Точнее, даже и внедрить их не сложно, сложнее всего убедить тех, от кого это зависит, что это нужно сделать. Из таких организаций 1С - на первом месте. На втором месте, возможно, верстальщики русскоязычных сайтов. Артемий Лебедев изобретал для этого различные вещи, такие как "яргт" - HTML теги транслитом в кириллице, выпускал свои клавиатуры.
4. Xershi 1556 10.07.20 22:30 Сейчас в теме
Мало разработчиков, у которых 80 % времени занимает переключение языка.
Насколько знаю есть спец клавы для решения подобного рода.
Я использую альт+шифт дальше пишу на латинице. В чем тут особая боль не понятно.
У меня 80% времени уходит на анализ алгоритма и отладку, которые не требуют переключения клавиатуры.
По поводу путаницы языков, так не мешайте их это плохой тон программирования.
Возможно по не знанию так делаете?
Такую проблему лишь не заметит новичек или при беглом анализе г.-кода от прошлых разработчиков, когда его нужно исправить, но стоит скопировать, а не набирать на клавиатуре и вопрос решен.
Я бы мог посоветовать не шрифты выдумывать, а просто раскрасить текст в подходящий цвет. Русский черный, латиницу серой, красно или любым другим цветом.
user930656; +1 Ответить
6. user930656 11.07.20 10:54 Сейчас в теме
> Я бы мог посоветовать не шрифты выдумывать, а просто раскрасить текст в подходящий цвет. Русский черный, латиницу серой, красно или любым другим цветом.

Так это не мне надо советовать, а просить разработчиков платформы 1С, чтобы они это сделали. Я не занимаюсь 1С-ом.

> Я использую альт+шифт дальше пишу на латинице. В чем тут особая боль не понятно.
Поставьте раскладку Чистова. Ссылку, видимо, так просто разместить нельзя. Это не клавиатура (не железка), а файл раскладки для Windows, который скачивается и за несколько кликов устанавливается. Как минимум &насервере будете писать быстрее.
5. user930656 11.07.20 10:50 Сейчас в теме
> Мало разработчиков, у которых 80 % времени занимает переключение языка.
Ну даже если это 5%, то ведь оно всё равно мешает. Просто большинство привыкает и не замечает, как можно привыкнуть к избыточному весу. Но производительность труда падает от этого. Те, кто программирует на английском, чётко ощущают эту разницу, потому что у них ещё не сформировалась привычка к этой неприятности.

> Насколько знаю есть спец клавы для решения подобного рода.
Есть. Вы пользуетесь? Первая - это раскладка Чистова, https://1c.chistov.pro/2012/11/1.html, но там нет латиницы, а только значки. Это не клавиатура (не железка), а раскладка (компонент Windows), к-рую можно поставить в Windows с помощью нескольких простых действий. Но, как минимум, &насервере будет вводить удобнее и какие-нибудь квадратные скобки. Я сделал яро-раскладку, там есть вся латиница и вместо AltGr нужно удерживать пробел. При удержании пробела можно спокойно печатать слепым 10-пальцевым методом, а с AltGr это неудобно. Она идеально подходит для случая, когда в тексте 80-90% кириллицы, встречаются значки и 10-20% латиницы. Можно попробовать тут в браузере: http://программирование-по-русски.рф/яроклава-js.яргт/

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

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

Так это не мне надо советовать, а разработчикам среды 1С. Сделать кнопку или пункт меню, которая включает/выключает этот режим. В своём проекте, не имеющем отношения к 1С, я так сделал, см рис.
Если среда 1С основана на Eclipse, то наверняка можно написать плагин.
Прикрепленные файлы:
7. user930656 11.07.20 10:55 Сейчас в теме
> По поводу путаницы языков, так не мешайте их это плохой тон программирования.
Уже написал два раза и третий не поленюсь написать, что есть внешние ресурсы, внешние форматы данных, которые в латинице. Значит, хотя бы иногда переключать раскладку придётся, и все проблемы с раскладкой в любом случае будут.
12. yurikmellon 6 14.07.20 08:18 Сейчас в теме
не очень понял, что хотел сказать ТС. Сделал - молодец, может это действительно кому то понадобится. Судя по всему, цель - скрыто прорекламировать свой ресурс.
16. user930656 19.07.20 21:27 Сейчас в теме
Я хотел сказать, что есть ряд проблем с русским языком в ИТ, что 1с-ники страдают от них в наибольшей степени, и изложил те решения, которые практически опробованы.

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

Основная мысль проста: нужно осознать, что проблемы с РЯ в ИТ комплексны, и решать из комплексно. То, что в 1С не внедрены те простые решения, которые я предложил, говорит о том, что никто по сей день этим в достаточной мере не озаботился.

В целом по ИТ это приводит к тому, что русский язык используется меньше, чем мог бы. От этого он и в жизни начинает использоваться меньше, чем нужно. Это угрожает России, т.к. создаёт ещё одно слабое место, в которое можно ударить, чтобы Россию разрушить.

1С - это своего рода оплот русского языка в ИТ, но и это никто не понимает, потому что никто из программистов не задумывается о том, что человеческий язык в программировании очень важен. Кажется, выучил английский и работай. А на самом деле, если все выучат английский, то внезапно может разрушиться Россия и каждому жителю придётся очень туго. Это сложный процесс, я его тут даю без всяких деталей - скорее это вам направления для собственных размышлений.
17. oleg-x 22 19.07.20 21:34 Сейчас в теме
(16) В 1С нет проблем с русским языком, так как все пишут на русском. Все остальное это как "плохому танцору яйца мешают". Проблем хватает, а переключить раскладку, что бы написать пару строк на английском, проблем не вызывает.
18. user930656 19.07.20 21:53 Сейчас в теме
Ну и договорились. Спасибо за внимания, до свидания.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот