Шось про айтішку – Telegram
Шось про айтішку
1.47K subscribers
450 photos
163 videos
2 files
602 links
Фронтенд, ШІ, 3D друк, FPV, історії з життя та роботи
Download Telegram
Java Script?
Понедельник начинается с вебпака
Сделал компилятор из JS в ClojureScript. Должно быть полезно для новичков, чтобы посмотреть как разные конструкции в JS могут выглядеть в кложуре. Прям весь синтаксис может не скомпилит, но в целом достаточно хорошо получилось https://roman01la.github.io/javanoscript-to-clojurenoscript/
Транспайлить в Lisp на удивление несложно, синтаксиса в языке практически нету 🤷‍♀️ Базовые синтаксические конструкции и все остальное списки символов.
Если хочется узнать больше о структурах данных в функциональном программировании, но не хочется вникать в книгу Окасаки (книга стоящая кстати) https://cs.uwaterloo.ca/~plragde/flaneries/FDS/
Набираю группу на изучение кложескрипта с реактом. Бесплатно, коротко, в скайпе. Пишите в личку здесь @roman01la
Пока что набор приостанавливаем, уже много желающих 😛
React — это язык программирования. Как тебе такое, Илон Маск?

- В реакте программируют в DSL похожем на XML, который компилируется в JS
- В реакте есть свой try..catch через componentDidCatch
- В реакте есть глобальные переменные через Context API
- В реакте можно биндить глобальные переменные (Context) как в Clojure через binding
This media is not supported in your browser
VIEW IN TELEGRAM
Я не шутил по поводу языка :D
Под Rust сделали персистентные структуры из Clojure https://docs.rs/im/11.0.0/im/ 👏
Есть предположение, что полноценный AOT к JS можно применить используя более строгие суперсеты языка или даже языки компилирующиеся в JS. Например Elm, PureScript и т.д., где побочные эффекты вынесены за пределы программы. По крайней мере на небольших примерах с Elm Prepack выдает работающую программу, в отличии от того, что обычно получается на выходе после применения AOT к обычной приложеньке на чистом JS, где побочные эффекты никак не контролируються.

Если подумать то AOT как раз больше имеет смысла применять к таким языкам, чтобы упрощать/развертывать их абстракции (например структуры данных) в максимально простой js код на этапе сборки проекта, вместо того, чтобы все это выполнять в рантайме.