/ it Новости / 5 свежих языков программирования

5 свежих языков программирования

5 свежих языков программирования

1 738 · 16 июня 2017 в 19:38 ·
В этой статье мы рассмотрим 5 совершенно новых языков программирования, которые еще не добились популярности, но точно заслуживают внимания.
Языков программирования существует весьма много и сложно сказать, что в них существует сегодня недостаток. Всё же есть энтузиасты, которые толи от скуки, толи из технических соображений стараются дополнить список языков программирования. Весьма немногие могут похвастаться удобством, эффективностью, минимальным временем обработки команд, но они существуют.

Сегодня уже добились известности Go и Rust, которые смогли пересмотреть принцип отдельного языка, а создать целую экосистему, с достаточно удобной организацией рабочего места. Их рейтинги оправдано высокие, преимуществ действительно много.

Совершенно новые, но при этом интересные языки мы рассмотрим далее. Пусть у них ещё нет такой твердой платформы из целого штата сотрудников или большой финансовой поддержки, но есть перспектива, свежий взгляд в будущее.

#1 – Stanza

L. B. Stanza — это язык программирования, который разрабатывается на протяжении пары лет в Беркли. Сегодня выпущена версия 0.11.8, перед релизом ещё придется потрудиться.

Удобство обосновано тем, что синтаксис подобен уже привычным Java или Python. При этом язык компилируется, что приводит к преображению сразу в машинный код, из-за чего программы отличаются производительностью. Использован параллелизм, а также динамическая типизация. Архитектура настраивается достаточно гибко, возможны мультметоды, повторный перезапуск функций, содержит и некоторые другие внушительные параметры.

Кусочек кода:
// Цикл While
var x = 1
while x < 1000 :
   println("x is %_" % [x])
   x = x * 2

// Условный оператор
val worries? = true
if worries? :
   println("Chill out!")
else :
   println("Hakuna Matata!")

// Функция
defn subtract-forty-two (x:Int) -> 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 low, try again"
  elif 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 < 0 then error end
  if x == 0 then
    1
  else
    x * factorial(x - 1)
  end

Больше интересных новостей