До сих пор английский был языком программирования, и не говорящим по-английски программистам приходилось мириться с ситуацией, которая далека от идеала. Проект 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, что также делает их многоязычными.
Языки программирования в постоянно растущем мире не могут надеяться просто работать на английском языке, но мало кто задумывался о создании многоязычных стандартов для языков. Вы вполне можете прийти к выводу, что английский-совершенно хороший абстрактный язык и вполне достаточный.
Однако подумайте, как бы вы себя чувствовали, если бы следующий большой язык был изобретен в Китае без перевода на английский. Это один из способов для развивающегося мира исключить нас из своих планов расширения.
Возможно, нам действительно нужно рассмотреть способы размещения в языках программирования не только английского языка.