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

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

Весь исходный примерный код доступен на github.com/matthagy/chem_prog_exp. Прошу прощения за отсутствие документации.

В основном я использую Scala.js, фреймворк для написания кода Scala, который компилируется в JavaScript, чтобы мы могли писать Scala, работающий в браузере. Мне нравится, как это позволяет нам использовать всю мощь Scala для разработки сложных симуляций с использованием ясного и краткого языка с функциональной (то есть математической) формализацией.

Хотя я не знаю достаточно JavaScript (и ничего не знаю о TypeScript), чтобы полностью прокомментировать плюсы и минусы Scala.js, я обнаружил, что Scala.js является отличным языком / фреймворком для написания симуляций, визуализаций и анализа. которые запускаются в браузере. Вы можете узнать больше о моих общих мыслях о Scala в моем сообщении Первые впечатления от Scala от разработчика данных Java и Python.

Помимо Scala.js, я также изучил несколько библиотек JavaScript, связанных с разработкой моделирования. Three.js оказался отличной библиотекой для 3D-рендеринга, и он упростил мне разработку визуализаций моделирования. Plotly.js упрощает разработку динамических и интерактивных сюжетов; Я буквально потратил меньше 15 минут на изучение этой библиотеки. Наконец, я обнаружил, что редактор Ace является надежным браузером, который позволяет мне представлять конфигурацию моделирования в редактируемом пользователем JavaScript.

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

Я даже начинаю думать о том, как некоторые из этих ресурсов могут быть полезны практикующим; т.е. академические и промышленные исследователи и инженеры. Для этого нам понадобится код для работы вне браузера, и я думаю, что это должно быть просто, если все написано на Scala, поскольку Scala в основном работает на JVM. Было бы здорово предоставить простой интерфейс на основе браузера для моделирования, которое выполняется в облаке. Если я сделаю это, то это будет в рамках некоммерческой организации, поскольку я не думаю, что есть большой потенциал для получения прибыли.

Сообщите мне, что вы думаете об этой предварительной работе и какие у вас есть идеи относительно того, как эта работа могла бы развиваться. Я также, безусловно, открыт для сотрудничества. Вы можете связаться со мной по адресу [email protected].