На каких языках нет Global Vars? - PullRequest
4 голосов
/ 09 апреля 2010

Из-за волны критики использовать Global Vars в моем сообщении Java , я хочу использовать язык без глобальных переменных. Спасибо за одно предложение, спасибо.

Ответы [ 6 ]

3 голосов
/ 09 апреля 2010

Если вы хотите избежать побочных эффектов, вы можете использовать один из чисто функциональных языков программирования, таких как haskell (или erlang или ...), которые имеют только константы. Но будьте готовы к совершенно другому виду программирования по сравнению с императивным стилем программирования.

3 голосов
/ 09 апреля 2010

Я не уверен, что вы буквально имеете в виду отсутствие глобальных переменных (значения, которые меняются) или если вы также хотите исключить глобальные константы (значения, которые не меняются ). Haskell - один из таких языков, который не имеет глобальных переменных, хотя у него есть глобальные константы (по сути, в форме функций без параметров). В Haskell, если вы хотите эмулировать глобальное состояние, вы должны передавать свои «глобальные» переменные в каждую функцию, которую вы вызываете. Лучшее описание доступно в HaskellWiki .

3 голосов
/ 09 апреля 2010

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

1 голос
/ 09 апреля 2010

Java (и подобные ООП-языки) не имеют действительно глобальных переменных, все переменные привязаны к экземпляру или классу. Но я думаю, что вы также хотите превзойти «симулированные» глобальные переменные (открытые поля с единственной причиной, к которой нужно обращаться извне). Я не думаю, что какой-либо из популярных языков не позволяет этого, но более необычные языковые концепции могут иметь способы избежать таких вещей.

0 голосов
/ 09 апреля 2010

Я считаю, Эйфелева не использует глобальные переменные, но это не является серьезным критерием
о том, использовать ли язык или нет.

0 голосов
/ 09 апреля 2010

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

...