Ur / Web nowy czysto funkcjonalny język do programowania w sieci? [Zamknięte]

17

Natknąłem się na projekt Ur / Web podczas wyszukiwania frameworków dla języków podobnych do Haskell. Wygląda na bardzo interesujący projekt wykonany przez jedną osobę.

Zasadniczo jest to specyficzny dla domeny czysto funkcjonalny język do programowania sieciowego, wykorzystujący to, co najlepsze w ML i Haskell. Składnia to ML, ale istnieją klasy typów i monada z Haskell i jest ściśle oceniana. Po stronie serwera jest kompilowany do kodu macierzystego, klient do Javascript. Zobacz inne slajdy i strony z najczęściej zadawanymi reklamami.

Patrząc na dema i ich kod źródłowy , myślę, że projekt jest bardzo obiecujący. Najnowsza wersja to coś 20110123, więc wydaje się, że jest obecnie w fazie rozwoju.

Czy ktoś tutaj miał z tym jakieś dalsze doświadczenia? Czy występują problemy / irytacje w porównaniu z Haskellem, poza nieco bardziej szczegółową składnią ML?

Phil
źródło
Nitpick: Ur / Web nie jest językiem programowania do programowania w Internecie. Ur jest językiem programowania ogólnego przeznaczenia, Ur / Web to framework internetowy napisany w Ur, który wykorzystuje system typów Ur w celu zapewnienia statycznych gwarancji bezpieczeństwa i funkcjonalności aplikacji internetowej. (Szczerze mówiąc: Ur został specjalnie zaprojektowany do obsługi Ur / Web.)
Jörg W Mittag

Odpowiedzi:

24

Jestem autorem Ur / Web. Właśnie utworzyłem to konto, więc nie mam wystarczającej ilości Mojo, aby odpowiedzieć na inne wcześniejsze odpowiedzi.

Ur / Web pozwala wtyczkom na implementację różnych protokołów sieciowych, więc jeśli chcesz zobaczyć inny protokół oprócz CGI, FastCGI lub HTTP, możesz być w stanie go zaimplementować lub poprosić mnie o jego wdrożenie. :) Naprawdę nie zdawałem sobie sprawy z tego, że ludzie szukali alternatywnych treści.

Co to znaczy, że programowanie SQL ma poczucie „skupienia”?

Re: skargi na wygląd „Web 1.0”, myślę o tym jako o funkcji mającej zaoszczędzić czas dla osób, które tak naprawdę nie chcą używać tego języka. ;) Nie brakuje mi funkcji, o których wiem, które uniemożliwiają pisanie aplikacji, które wyglądają tak, jak lubisz, i uważam, że jest to oczywiste, gdy zapoznasz się z podstawową konfiguracją języka i bibliotek.

Na koniec, ScantRoger, chciałbym usłyszeć o twoich doświadczeniach ze stosowaniem Ur / Web z klientem! Nie wiem, czy podanie moich danych kontaktowych byłoby złe, ale link do mojej osobistej strony internetowej znajduje się na dole pierwszej strony Ur.

Adam Chlipala
źródło
11

Użyliśmy go dla klienta dbającego o bezpieczeństwo i zauważyliśmy, co następuje:

  • Jako język praca z przyjemnością. Nie uważaliśmy, że składnia oparta na ML jest szczególnie gadatliwa w porównaniu do Haskella.
  • Istnieje bardzo niewiele poradników poza pokazami i dokumentacją podaną na stronie http://www.impredicative.com/ur/ .
  • Rozpieszczono nas, że wiele innych języków ma teraz szybsze interfejsy do serwera WWW. Korzystanie z FastCGI wydawało się krokiem wstecz.
  • Programowanie SQL wydawało się trochę skomplikowane.
  • Odśwież swoją matematykę, aby w pełni zrozumieć, co robi dla Ciebie język / środowisko.

Wszelkie negatywy można przypisać temu, że jest zupełnie nowy. Daj trochę miłości. Zasługuje na to. Być może możesz zostać wokalistą i sprawić, że znalezienie zasobów Ur / Web będzie mniej uciążliwe.

Scant Roger
źródło
Może mógłbyś skomentować odpowiedź Adama i wyjaśnić, co oznacza „pęczek”? Z góry dziękuję.
Janus Troelsen
Ponadto, jakie byłyby „szybsze interfejsy do serwera WWW”? O ile mi wiadomo, FastCGI jest jednym z najszybszych (bardziej zoptymalizowanych) protokołów do wymiany danych żądania / odpowiedzi HTTP. Wsparcie Nginx dla FastCGI jest gorsze od żadnego, a w rzeczywistości większość nowoczesnych konfiguracji PHP (na przykład) to Nginx + PHP-FPM w stosunku do FastCGI. (A może ta odpowiedź miała znaczenie jeszcze w „11…”)
Tobia,
3

Jedyne, o co martwię się, to to, że wciąż jest całkiem nowy. Haskell i Erlang są tu od dawna. Oznacza to, że wiele łatwych błędów w obu językach już dawno zostało opracowanych. Byłbym bardzo sceptycznie nastawiony do tego, że ich kod jest tak szybki i bezpieczny, jak to możliwe w haskell z tego powodu.

Również wersje demo wyglądały bardzo web 1.0.

Zachary K.
źródło
Tak, zgadzam się, że wersje demo wyglądają nieco prymitywnie. Ale jeśli ma ten sam poziom mocy co Haskell, wierzę, że wkrótce będzie więcej funkcji. Byłem także sceptycznie nastawiony do części „bardziej wydajnej niż typowa C”. Ale ta praca jest imponująca, jeśli wszystko zostało naprawdę zrobione tylko przez 1 osobę: D
Phil
Przyglądę się kiedyś, do diabła, mam nadzieję, że dobrze sobie radzą! Więcej frameworków i ludzie próbujący nowych rzeczy są zawsze dobre
Zachary K