Я знаю у нас тут есть ценители разнообразия в мире языков программирования, так что не мог удержаться
Flix, не то что бы новый язык,
коммиты в репозитории с 2015 года, но упоминание его я впервые увидел сегодня. Выглядит как Scala здорового человека, с вкраплениями Python, Go, Haskell... уже странно, да?
Из положительных моментов:
а) на JVM
б) есть зеленые потоки и CSP
в) ООП порезали к херам
г) есть хвостовая рекурсия, таки хоть кто-то победил JVM
д) развивает не хрен с горы, а Орхусский университет (впервые слышу про них, но то что университет — это хорошо)
Запуск зеленого потока и чтение/запись в канал:
/// A function that sends every element of a list
def send(c: Channel[Int32], l: List[Int32]): Unit & Impure =
match l {
case Nil => ()
case x :: xs => c <- x; send(c, xs)
}
/// A function that receives n elements
/// and collects them into a list.
def recv(c: Channel[Int32], n: Int32): List[Int32] & Impure =
match n {
case 0 => Nil
case _ => (<- c) :: recv(c, n - 1)
}
/// Spawn a process for send and wait, and print the result.
def main(_args: Array[String]): Int32 & Impure = {
let l = 1 :: 2 :: 3 :: Nil;
let c = chan Int 100;
spawn send(c, l);
spawn recv(c, List.length(l));
0 // exit code
}
Налитай пока горячее