LINUX.ORG.RU

ЯП со статической типизацией для web'а

 , , , ,


1

4
  • Hack aka PHP с типами (Facebook)
    <?hh
    class MyClass {
      const int MyConst = 0;
      private string $x = '';
      public function increment(int $x): int {
        $y = $x + 1;
        return $y;
      }
    }
    
    // Generics
    class Box<T> {
      protected T $data;
    
      public function __construct(T $data) {
        $this->data = $data;
      }
    
      public function getData(): T {
        return $this->data;
      }
    }
    
    Фреймворков нет, нужно ставить HHVM.
  • Golang (изначально - side project нескольких сотрудников Google)
    package name
    
    import (
    	"fmt"
    )
    
    func Hello(name string) string {
    	return fmt.Sprintf("Hello, %s", name)
    }
    
    Фреймворков нет. Зато в стандартной библиотеке есть полезные вещи. Хотя, для полноценной разработки их недостаточно.
  • Rust (Mozilla)
    fn main() {
        let program = "+ + * - /";
        let mut accumulator = 0i;
    
        for token in program.chars() {
            match token {
                '+' => accumulator += 1,
                '-' => accumulator -= 1,
                '*' => accumulator *= 2,
                '/' => accumulator /= 2,
                _ => { /* ignore everything else */ }
            }
        }
    
        println!("The program \"{}\" calculates the value {}",
                  program, accumulator);
    }
    
    Едва ли это подходит для веба. Тем более, что фреймворков нет.
  • Java (Oracle)
    // Мы все с вами знаем, как выглядит Java код.
    
    Получше с готовыми компонентами. Но, Java же для посредственностей (см. авторитетное мнение ЛОРовца Paul Graham'а, который не использовал, но осуждает, потому что «хорошую книгу можно узнать по обложке»). Ну и вы сами всё знаете.
  • Scala
  • Haskell

За чем светлое будущее, товарищи?

hack ... Фреймворков нет

Любой hhvm-совместимый PHP-фреймворк и в нём свой hack-код. Hack позволяет делать require для .php

golang ... Фреймворков нет

Ну, Семён Семёныч! Ну, Revel же! Рулит и педалит.

Rust

Тут надо ещё долго ждать.

Java
Scala

Можно прекрасно совместить в Play! Framework.

Haskell

Это если хочется экзотики. Светлое будущее не наступит.

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

Да и вообще, зачем для ширпотребного говновеба статическая типизация?

Потому что кроме шрипотребного говновеба бывают обширные качественные проекты с длительной поддержкой.

Похапешникам она будет только мешать.

Мне, вот, лет 10 уже, как нужна.

KRoN73 ★★★★★
()
Ответ на: комментарий от abc

веб весь динамичен по данным

Только при кривом проектировании.

KRoN73 ★★★★★
()

Мля, опять некротема. Хоть бы запоминание позиции на ЛОРе сделали, несложно же совсем...

KRoN73 ★★★★★
()

Scala во все поля. Там еще Scala.js пилят, и вот как-то так получается, что за пару лет несколько программистов в свободное время довели Scala.js до лучшего и более зрелого состояния, чем то, в котором находится Dart, над которым работала четыре года большая команда в гугле.

trycatch ★★★
()

Как то писал для веба на сях.
Доставляет.

Cactus64k
()
Ответ на: комментарий от trycatch

Автор Scala.js Sébastien Doeraene всю дорогу работал над ним фул-тайм, если я не ошибаюсь. Да и чего ему ещё делать, он же аспирант в EPFL.

migesok
()

За чем светлое будущее, товарищи?

Rebol, а так же советую обратить внимание на перспективные для веба ABCL/c+ и особенно Visual Prolog.

anonymous
()
Ответ на: комментарий от O02eg

«Ждать» — я не о Rust-фреймворках писал. А о Rust вообще :) Там ещё, во-первых, много ломать будут. Во-вторых, чтобы убедиться, что завтра он тупо не загнётся.

Вообще:
https://twitter.com/balancer73/status/589359958820577280

Как видно, Rust'у ещё пахать и пахать, чтобы хотя бы с Haskell сравниться. Java и PHP не добавлял, чтобы остальные совсем у нулевой отметки не оказались :)

Кстати, Golang уже «обречён» на долгую жизнь, хотя бы нишевую. Сейчас повсеместно (и уже, похоже, необратимо) переходят на Docker. А Docker-инфраструктура очень повязана на Go.

https://twitter.com/balancer73/status/589361897595654145

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.