Языков программирования существует весьма много и сложно сказать, что в них существует сегодня недостаток. Всё же есть энтузиасты, которые толи от скуки, толи из технических соображений стараются дополнить список языков программирования. Весьма немногие могут похвастаться удобством, эффективностью, минимальным временем обработки команд, но они существуют.
Сегодня уже добились известности Go и Rust, которые смогли пересмотреть принцип отдельного языка, а создать целую экосистему, с достаточно удобной организацией рабочего места. Их рейтинги оправдано высокие, преимуществ действительно много.
Совершенно новые, но при этом интересные языки мы рассмотрим далее. Пусть у них ещё нет такой твердой платформы из целого штата сотрудников или большой финансовой поддержки, но есть перспектива, свежий взгляд в будущее.
#1 – Stanza
L. B. Stanza — это язык программирования, который разрабатывается на протяжении пары лет в Беркли. Сегодня выпущена версия 0.11.8, перед релизом ещё придется потрудиться.
Удобство обосновано тем, что синтаксис подобен уже привычным Java или Python. При этом язык компилируется, что приводит к преображению сразу в машинный код, из-за чего программы отличаются производительностью. Использован параллелизм, а также динамическая типизация. Архитектура настраивается достаточно гибко, возможны мультметоды, повторный перезапуск функций, содержит и некоторые другие внушительные параметры.
Кусочек кода:
// Цикл While
var x = 1
while x Int :
println("Subtracting 42 from %_." % [x])
"Timon"
#2 – Nim
Ранее Nim имел название Nimrod, который зародился ещё в 2004 году, версия с компилятором представлена в 2008 году. До сих пор ещё не выпущена официальная версия. Самым новым дополнением считается 0,16, которое вышло в 2017 году в январе.
Преимущества во многом сходятся с Python: синтаксис простой, ясный и чистый, а от этого и удобный. Также включает статистическую типизацию, используется шредер, для обрезки мусора, открывает большие возможности регулирования памяти. Помимо прочего, возможно самостоятельное назначение операторов, использование макросов. Дополнительно присутствует возможность сборки двоичных файлов без жесткой привязки.
Кусочек кода:
import strutils, random
randomize()
let answer = random(10) + 1
while true:
echo "I have a number from 1 to 10, what is it? "
let guess = parseInt(stdin.readLine)
if guess answer:
echo "Too high, try again"
else:
echo "Correct!"
break
block busyloops:
while true:
while true:
break busyloops
#3 - Crystal
Язык Crystal весьма похож на Ruby и вполне сможет увлечь много опытных программистов, так как длительного привыкания вовсе не потребуется. Наиболее активное развитие происходит на протяжении 3-х лет, сегодня выпущено обновление 0.11.
Полезно то, что присутствует статистическая типизация, которая не требует жесткого указания типа аргументов или переменных. Си-код может связываться при помощи биндингов. Актуальной информацией можно выделить время компиляции, а также генерации скрипта. Компиляция происходит без промежуточных этапов, сразу в машинный код. При этом разработана русифицированная версия сайта.
Кусочек кода:
class Object
def has_instance_var?(name) : Bool
{{ @type.instance_vars.map &.name.stringify }}.includes? name
end
end
person = Person.new "John", 30
person.has_instance_var?("name") #=> true
person.has_instance_var?("birthday") #=> false
#4 – Nit
Снова последователь общеизвестного Python, его цель – обеспечить максимальное удобство при связывании различных языков, таких как С, С++, Java и Objective. Сегодня представлена версия 0.8.
Интересно то, что используется максимально облегченный алгоритм работы, чтобы было легко вникнуть в него. Также применяется статистическая типизация и внедрена адаптация под мобильные устройства. Таким образом можно собрать код из разных языков и скомпилировать его, в том числе для Android.
Кусочек кода:
# Синтаксис
var j = 5
print "j={j}; j+1={j+1}" # outputs "j=5; j+1=6"
# Создание класса
class Product
var id: String
var description: String
var price: Float
end
var p = new Product("ABC", "Bla bla", 15.95)
assert p.id == "ABC"
#5 – Pony
Новый язык с задатками лидера – Pony. Используется для максимально быстрого построения кода, не заморачиваясь низкоуровневым программированием. Актуальная версия – 0.14.
Полезным является типобезопасность, которая приводит к легкой манипуляции памятью. В работе отсутствуют дедлоки, так как блокирование операций не предусматривается. Возможные исключения проходят обработку семантическим ядром, от этого безопасность и устойчивость атакам возрастает. Используется AOT-компилятор. Возможна работа сразу с Си-кодом.
Кусочек кода:
// Синтаксис
actor Main
new create(env: Env) =>
env.out.print("Hello, world!")
// Факториал
fun factorial(x: I32): I32 ? =>
if x