Babylscript – многоязычный язык


До сих пор английский был языком программирования, и не говорящим по-английски программистам приходилось мириться с ситуацией, которая далека от идеала.  Проект Babylscript теперь предлагает альтернативу для программистов JavaScript.

На каком языке вы хотели бы программировать?

Нет, это не Ruby v Perl v Java v … аргумент.

Давайте перефразируем вопрос так: “На каком естественном языке вы хотели бы кодировать?”.

Если вы никогда не задумывались над этой проблемой, то легко предсказать, что вы владеете английским языком. Поскольку вычислительная техника в основном начиналась в США и Великобритании (принося извинения всем другим изобретателям компьютера, не говорящим по-английски, например, Конраду Цузе, Сергею Лебедеву и т. Д.), доминирующим языком, используемым в компьютерном программировании, был английский. Носители других языков просто должны приспособиться к использованию таких слов, как “если” и “для”.

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

Теперь вы можете использовать многоязычное программирование на JavaScript. Проект Babylscript взял движок Rhino и добавил возможность кодировать практически на любом языке, для которого вы хотите добавить отображение перевода. На данный момент языковая поддержка ограничена английским, французским и румынским языками, но добавление новых языков – это просто вопрос определения сопоставления ключевых слов. Проект ищет помощь в создании новых сопоставлений.

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

—фр—

fonction fn()

{

алертер(«бонжур!»);

}

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

// Этот объект имеет метод с именем // по умолчанию go()

var obj = новый объект();

obj.go = функция() {…};

// На французском языке вы можете использовать aller()// для вызова метода go()

obj[‘fr’:’aller’] = ‘go’;

—фр—

// В режиме французского языка// aller() будет сопоставлен с

// метод go()

obj.aller();

// В режиме французского языка // вы также можете использовать значение по умолчанию

// name go() для вызова метода

//

obj.go();

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

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

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

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


Добавить комментарий