Независимый разработчик, Бил Джинжер, представил Odin 0.10.0 — бета-версию языка программирования, которым он занимается с 2016 года. Новый язык сочетает элементы Pascal, C, Go, Oberon и напоминает гибрид Go c Rust. Исходный код, FAQ и документацию Odin можно найти на GitHub и сайте проекта.
package main
import "core:fmt"
main :: proc() {
program := "+ + * - /";
accumulator := 0;
for token in program {
switch token {
case '+': accumulator += 1;
case '-': accumulator -= 1;
case '*': accumulator *= 2;
case '/': accumulator /= 2;
case '': accumulator *= accumulator;
case: // Ignore everything else
}
}
fmt.printf("The program "%s" calculates the value %dn",
program, accumulator);
}
Пример программы на Odin
У Odin нет отдельной killer feature, так как при его разработке основной целью было создание быстрого, простого и очевидного языка, который мог бы заменить С. Из-за этого в Odin, например, отсутствуют исключения, нет методов и отдельного оператора перегрузки.
Функции и методы объединены в процедуры, которым соответствует оператор proc. Также, как и во всех языках на основе С, в Odin используется наследование, при котором процедура получает копию исходного значения также, как при отдельном операторе присваивания.
Из интересных особенностей у Odin есть:
- встроенные типы: строки, срезы, массивы, динамические и ассоциативные массивы, 128-битные целые числа и целые числа с прямым и обратным порядком байтов.
- множественные возвращаемые значения;
- параметрический полиморфизм;
- compile-time вычисления;
- указатели и аллокаторы памяти;
- однострочные //, многострочные /* и Hash-bang #! комментарии;
- явная перегрузка процедур;
- Rune — базовый тип для отдельных символов Unicode.
Odin доступен на Windows, Linux и MacOS с лицензией BSD 2-Clause license. Чтобы попробовать его на Windows, нужно скачать исходники Odin, скомпилировать код в Visual Studio, затем добавить файлы в архив с LLVM и переместить его в каталог Odin. После этого можно запустить командную строку Visual Studio и выполнить build.bat в каталоге Odin. Для запуска на MacOS и Linux нужно установить llvm и clang и использовать команду make или ./build.sh, чтобы получить свежий компилятор Odin.
На GitHub примеров использования Odin ещё нет, но автор уже задействовал его в своём проекте Digital Audio Workspace, также есть несколько 3D-игр с его применением.
Автор: Mimizavr