LINUX.ORG.RU

Русские имена переменных и функций в Руби


0

0

Экспериментируя с ключиками кодировок для Руби я обнаружил, что в версии 1.8.7 ежели использовать ключ -Ku (кодировка UTF-8) при запуске Руби с коммандной строки, то можно не только работать с русскими строками, но и ИСПОЛЬЗОВАТЬ РУССКИЕ ИМЕНА ПЕРЕМЕННЫХ И ФУНКЦИЙ !

Вопрос - кто-нибудь такое пользовал ? Всплывают ли какие-нибудь глюки при этом ?


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

// wbr

klalafuda ★☆☆
()

За такое яйца нужно отрывать по самые локти!!! И как высказались вышестоящие товарищи, пусть твой начальник тебе это и сделает!

CyberK
()

На русском будет неудобно. Много всяких символов (например больше-меньше) в русской раскладке не наберешь - приходиться переключаться. Я еще со времен 1С на это внимание обратил.

VladimirMalyk ★★★★★
()

> ИСПОЛЬЗОВАТЬ РУССКИЕ ИМЕНА ПЕРЕМЕННЫХ И ФУНКЦИЙ !

да! национальные идентификаторы в каждый дом!

def 初期化する 値
    if 初期化した
        再初期化する 値
    else
        初期化した = true
    end
    # 初期化
    # …
end

няшно, правда? а теперь представьте, что вам придётся поддерживать подобный код…

arsi ★★★★★
()
Ответ на: комментарий от isden

> если еще и def/if/else/end/true заменить, вообще будет няшно^2 ))

ага, вот только alias на кейворды не распространяется ;_;

arsi ★★★★★
()

А что плохого в восточных иероглифах в программах? Был латинский язык - не стало латинского языка. Так и программы. Были английские - станут русские или китайские.

anonumus
()
Ответ на: комментарий от anonumus

> Были английские - станут русские или китайские.

для этого мы должны победить ;) или китайцы %)

кстати о юникоде в коде %) гораздо полезней было бы введение синонимов для математических операций, типа «!=» — «≠», «<=»/«>=» — «≤»/«≥» («⩽»/«⩾») итп. в перл6 вроде что-то подобное планировали… и понятно всем, и, главное, это же синонимы, а не замена. а код, ИМХО, читался бы легче.

arsi ★★★★★
()
Ответ на: комментарий от arsi

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

svu ★★★★★
()

«Глюки» в том, что имена классов и модулей русскими полностью сделать не получится. Хотя бы 1ая буква должна быть заглавной латинской. И да, чинить это никто не будет :}

Deleted
()
Ответ на: комментарий от svu

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

а вертикальный японский? ;) если не ошибаюсь, после rtl-mark справа налево пишутся только фрагменты символов, поддерживающих такое написание. ну и сами фрагменты располагаются справа налево. т.е. «def» в «fed» не превратится %)

arsi ★★★★★
()
Ответ на: комментарий от svu

def test‮test‬

‮end‬

офигеть о_О, я только о U+200E знал… жаль, ttb/btt в юникод не включили %)

arsi ★★★★★
()

>Экспериментируя с ключиками кодировок для Руби я обнаружил, что в версии 1.8.7 ежели использовать ключ -Ku (кодировка UTF-8) при запуске Руби с коммандной строки, то можно не только работать с русскими строками, но и ИСПОЛЬЗОВАТЬ РУССКИЕ ИМЕНА ПЕРЕМЕННЫХ И ФУНКЦИЙ !

Какой прогресс.

> (define (показать что-то)

(display что-то)
(newline))
> (показать 100)

100

>Вопрос - кто-нибудь такое пользовал ? Всплывают ли какие-нибудь глюки при этом ?


Не надо так делать

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за ответы-советы :) Как я понял - явных глюков не должно быть.

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

Для Embedded Ruby такой глобальный режим UTF включается функцией rb_set_kcode("u").

AlexLorovitch
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.