Новости Как jank объединяет миры Clojure, C++ и Rust в одном языке

NewsMaker

I'm just a script
Премиум
19,455
40
8 Ноя 2022
Язык сочетает REPL-интерактивность с JIT и строгим контролем памяти.


d382ubnnp5r31g0fzvnq3l7n7vpdrilo.jpg


Разработчик Джей Уилкерсон ушел с должности инженера в Electronic Arts, чтобы полностью посвятить себя созданию нового языка программирования jank. Этот язык — нативный диалект Clojure на основе LLVM, который сочетает в себе элементы C++, Clojure и Rust.

Проект Для просмотра ссылки Войди или Зарегистрируйся начался еще в 2015 году, когда Уилкерсон изучал дизайн языков программирования, работая над игровыми движками. Он стремился объединить интерактивность и ценностно-ориентированную природу Clojure с возможностями нативной компиляции и минимальными рантайм-накладными расходами. В отличие от традиционного Clojure, который работает на JVM, jank использует C++ и LLVM для JIT -компиляции.

<h3>Развитие и интерес сообщества</h3> По словам Уилкерсона, jank уже стал самым популярным среди неопубликованных проектов на Clojure, уступая лишь HumbleUI. За годы работы он общался с основателями и техническими лидерами различных компаний, заинтересованных в использовании jank для решения проблем производительности, эффективности и совместимости Clojure.

Аналитики отмечают, что появление jank продолжает традицию функционального программирования, закладывая современные принципы в основу идей Lisp. В языке сочетаются JIT-компиляция, сборка мусора, динамическая типизация и интерактивная среда разработки (REPL), что делает его мощным инструментом для разработчиков.

<h3>Дорожная карта на 2025 год</h3> По словам Уилкерсона, впереди еще много работы. В 2025 году основное внимание будет уделено следующим направлениям:

  • Улучшенная система обработки ошибок;
  • Бесшовная интеграция с C++;
  • Полная AOT-компиляция проекта;
  • Достижение паритета с основными библиотеками Clojure;
  • Поддержка сервера nREPL;
  • Интеграция с Leiningen и deps.edn;
  • Распространение jank в основных дистрибутивах Linux и macOS;
  • Улучшенная документация;
  • Тестирование на стабильность и надежность;
  • Развитие сообщества и поддержка пользователей.
Хотя завершить все эти задачи в 2025 году не удастся, Уилкерсон планирует довести проект до первого полноценного релиза.

<h3>Возможные сценарии использования</h3> Первоначально jank задумывался для игровой индустрии, но его применение выходит далеко за пределы геймдева. Язык может использоваться в Unreal Engine, Unity и Godot как JIT-компилируемый диалект Lisp с поддержкой AOT-компиляции.

Другие возможные применения включают:

  • Разработку GUI с интеграцией Qt, GTK+, wxWidgets и ImGui;
  • Использование в научных вычислениях, включая работу с данными в CERN;
  • Разработку веб-сервисов;
  • Создание высокопроизводительных систем с нативной интеграцией библиотек.
<h3>Философия jank и его название</h3> Уилкерсон признается, что создавал jank для себя — ему важно иметь возможность управлять степенью динамичности кода. Части программы могут оставаться динамически типизированными и управляемыми сборщиком мусора, тогда как другие могут использовать статическую типизацию и явное управление памятью.

Название jank возникло как шутливое самоуничижение, по аналогии с тем, как Линус Торвальдс назвал свою систему контроля версий git. Уилкерсон надеется, что со временем язык станет настолько надежным, что его название приобретет ироничный смысл.

<h3>Будущее jank</h3> Несмотря на долгий путь разработки, jank только начинает свой путь. В ближайшие годы ожидается появление новых игровых движков, написанных на jank, его интеграция в существующие движки, активное развитие в области GUI, веб-сервисов и WASM-компиляции.

Как отмечает сам Уилкерсон: «Через три года мы увидим jank везде — в играх, веб-приложениях, инструментах разработчиков и даже в научных вычислениях. Это только начало».
 
Источник новости
www.securitylab.ru

Похожие темы