Есть ли люди, использующие язык программирования Схемы?

Я только начал изучать компьютерные науки в своем университете, где они учат нас программировать на Схеме.

Поскольку я изучил С++ в течение последних 6 лет, Scheme кажется мне немного странным. Мои инструкторы говорят, что вы можете написать любую программу, которую вы можете написать на C или Java с ней.

Кто-нибудь действительно использует этот язык?

Ответ 1

Не многие люди используют это, что я знаю, но это определенно стоит заглянуть (если даже просто попробовать программировать в другой парадигме, чтобы вы научились думать по-другому). Вам повезло, что вы можете взять класс, который использует Scheme, поскольку большинство университетов в наши дни обучают Java. Здесь хорошая ссылка, если вы хотите увидеть несколько лекций из MIT или работать над образцовыми проблемами и т.д.

MIT Open Courseware - Структура и интерпретация компьютерных программ

Там также доступна бесплатная версия Clojure. Возможно, это станет новым языком выбора для внедрения информатики (мы все можем надеяться!).

Ответ 2

Квадрат США использовал его, чтобы сделать фильм Final Fantasy.

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

Из этой статьи:

На SIGGRAPH 2000 и 2001 мы, команда Square USA R & D, показали рендеринг сцен в реальном времени из полного компьютерного фильма "Final Fantasy: The Spirits Within".

[...]

Мы обнаружили огромную помощь в использовании встроенного интерпретатора Scheme в режиме рендеринга в режиме реального времени.

Ответ 3

Схема заставит вас думать о программировании по-разному. Просто попробуй быть открытым!

Ответ 4

"Кто-нибудь действительно использует это язык?"

Пол Грэм, классно.

Ответ 5

JavaScript очень похож на схему во многих отношениях (хотя в ней отсутствуют продолжения и усовершенствованная численная система Схемы).

От " Обзор языка ECMAScript" (PDF). 2007-10-23. pp. 4. Retrieved 2009-05-03.

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

Ответ 7

Я использовал его в колледже, но с тех пор я его не использовал.

Если вы вообще не уверены в рекурсии, я настоятельно рекомендую изучить схему или Lisp. Вы научитесь рекурсивно думать обо всех вещах. Рекурсия всегда верный путь? Конечно нет. Но это полезный инструмент для использования в панели инструментов.

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

Ответ 8

В настоящее время я работаю над лекциями SICP которые Абельсон и Суссман дали в Hewlett-Packard в 1986 году и Подкасты Cal-Berkeley CS61A, данные Брайаном Харви (преподаются из той же книга) и следуют в Scheme, и опыт открывает для меня совершенно новые способы мышления. Для тех, кто, как и я, не имеет никакого формального высшего образования в CS, я настоятельно рекомендую его...

Ответ 9

Помимо личного опыта, самое близкое, что вы доберете до объективной догадки, - это TIOBE index, который в настоящее время занимает LISP/Scheme 21-е место с долей рынка 0,470%. TIOBE использует результаты поиска для создания списка. Очевидно, вы захотите взять список (и любое другое предположение на использование Схемы) с солью.

Бесстыдная акция: посмотрите Схема PLT. Они создали приятное сообщество, предлагают свои IDE для многих платформ и дают вам отличную библиотеку из коробки.

Здесь статья, описывающая PLT-схему в коммерческом приложении: http://www.untyped.com/downloads/icfp068-welsh.pdf.

Ответ 10

Clojure является языком Scheme/Lisp, который работает в JVM и действительно хорош для параллельной обработки (предположительно), Самое замечательное в использовании Clojure заключается в том, что вы получаете доступ ко всему API Java и к любым другим библиотекам Java.

Clojure становится довольно популярным среди языковых выродков, а также Scala.

Ответ 11

Здесь в России мы разрабатываем программное обеспечение с использованием PLT-схемы. И он хорошо продается;)

Ответ 12

Все языки могут быть использованы для записи всего, с достаточным усилием:)

Тем не менее, схема довольно крутая - знающая схема имеет тенденцию влиять на ваше программирование на других языках, по моему опыту.

Макросы схемы очень мощные, а функция call-with-current-continue - функция mindwarping.

Классический тест - это структура и интерпретация компьютерных программ ( "SICP" ). Стоит прочитать.

Ответ 13

Существует довольно много реализаций схем для платформы Java, они используются для создания сценариев и прототипирования Java-приложений. Существует основанная на продолжении веб-инфраструктура для J2EE в схеме, называемая SISCWeb.

Схема Guile используется как язык сценариев в некоторых приложениях GNU - GnuCash, например, в основном написана на Схеме.

Также TinyScheme используется как язык сценариев для GIMP, а некоторые его варианты используются во встроенных системах.

Ответ 14

Jazz Scheme - это среда с открытым исходным кодом, построенная на Gambit Scheme и, по-видимому, агрессивно продвигает промышленные применения, проверьте ее:

Джаз-схема

Они сообщают о новых применениях в своих новостях:

Новости джазовой схемы

В соответствии с эта страница, схема используется (или была) при использовании: DEC, TI, Tektronix, HP и Sun.

Этот парень Отчеты LinkedIn CV с использованием Chez Scheme в Disney.

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

Ответ 15

Совершенно верно. Схема хороша для ряда различных классов проблем. Джим Блэнди работает над версией Scheme называемой "Малой" , которая намного ближе интегрируется с собственными системами и предназначена для выполнения.

Я понимаю, что LilyPond использует Guile для расширяемости, хотя я не знаю, что я бы использовал LilyPond в качестве идеального блестящего примера программного обеспечения, поскольку он серьезно ранил мою установку OS X...

Ответ 16

Да! Схема довольно интересная. Я узнал об этом в первый год работы в Университете Ватерлоо. Сначала это немного отличается, особенно если вы пришли из ООП/императивного фона.

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

Это также очень полезно, например, я просто сделал компилятор для упрощенной версии C, и я не мог представить, как это сделать без функционального языка (:

Ответ 17

Недавно я услышал в подкасте stackoverflow, что Reddit изначально был записан в LISP!

Ответ 18

В наши дни я играю с IronScheme, но не знаю никого, кто использует Scheme для реальной работы.

Ответ 19

Схема используется в основном для целей обучения. Это одна из причин не не были стандартной модульной системы до (спорно) RSR6 один:. При написании небольших программ, для выполнения домашних заданий, что необычно нужно много больших библиотек

Схема запускалась в качестве эксперимента для добавления ООП в Smalltalk-like к Lisp. В конце концов он изменил макросистему, добавил call/ccdynamic-wind, dynamic-unwind) и немного вырос.

Помимо проектов GNU с использованием Guile в качестве языка сценариев, я не знаю каких-либо производственных систем, использующих Scheme. Я знаю о нескольких производственных системах, использующих Lisp, хотя (Orbitz имеет код Lisp в своей системе резервирования).

Ответ 20

Я изучил схему уже более 2 лет, и она значительно помогла мне в качестве программиста. Это научило меня мыслить по-другому и понять более глубокие понятия и связи между языками программирования. На самом деле верно, что вы можете писать любую программу на Схеме, как в Java и C, однако это довольно сложно. Существуют серии программных преобразований, которые должны выполняться до того, как их можно будет интерпретировать как код Java или C. Это стоит изучать основы, по крайней мере, хотя.

Ответ 21

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