Comments 32
>веб-сервер
>Erlang
как говорится, «ололошеньки ололо»
>Erlang
как говорится, «ололошеньки ололо»
-26
а что означает эта рыбина?
0
хм… а yaws что никому не нравиться или как?
0
просвятите кто нибудь: где это можно применить?
+1
Например, для создания нагруженных REST сервисов.
Благодаря особенностям синтаксиса Эрланга, определение УРЛа получается очень красивым:
% handle a GET on /
handle('GET', [], Req) ->
Req:ok(«Main home page.»);
% handle a GET on /users
handle('GET', [«users»], Req) ->
Req:ok(«Main users root.»);
% handle a GET on /users/{username}
handle('GET', [«users», UserName], Req) ->
Req:ok(«This is ~s's page.», [UserName]);
% handle a GET on /users/{username}/messages
handle('GET', [«users», UserName, «messages»], Req) ->
Req:ok(«This is ~s's messages page.», [UserName]);
% handle the 404 page not found
handle(_, _, Req) ->
Req:ok(«Page not found.»).
Благодаря особенностям синтаксиса Эрланга, определение УРЛа получается очень красивым:
% handle a GET on /
handle('GET', [], Req) ->
Req:ok(«Main home page.»);
% handle a GET on /users
handle('GET', [«users»], Req) ->
Req:ok(«Main users root.»);
% handle a GET on /users/{username}
handle('GET', [«users», UserName], Req) ->
Req:ok(«This is ~s's page.», [UserName]);
% handle a GET on /users/{username}/messages
handle('GET', [«users», UserName, «messages»], Req) ->
Req:ok(«This is ~s's messages page.», [UserName]);
% handle the 404 page not found
handle(_, _, Req) ->
Req:ok(«Page not found.»).
0
Не особенностям синтаксиса Эрланга, а паттерн матчингу. В Scheme примерно так же.
0
(define-values (users-dispatch users-url) (dispatch-rules [("") (λ (req) "Main home page.")] [("users") (λ (req) "Main users root.")] [("users" UserName) (λ (req UserName) (string-append "This is " UserName "'s page"))] [("users" UserName "messages") (λ (req UserName) (string-append "This is " UserName "'s messages page"))] [else (λ (req) "Page not found.")]))
0
> В этом плане проект напоминает mochiweb
по-моему он вообще напоминает mochiweb :)
по-моему он вообще напоминает mochiweb :)
0
Лучше ngnix пока не встречал. Даже одноклассники снимает шляпу перед Cысоева
-3
Весь нагруженный рунет работает на nginx :) И даже запад приобщается :)
Но это разные проекты: nginx — в первую очередь статика и прокся, misultin — для днамическоего конента, напр REST сервисов.
Но это разные проекты: nginx — в первую очередь статика и прокся, misultin — для днамическоего конента, напр REST сервисов.
+2
Использование nginx совершенно не исключает использование другого ПО. Я бы даже сказал, что бэкэндовые апстримы только приветствуются.
0
смущает, немного неуклюжая, работа со строками и не полная поддержка юникода.
Все самые высокопроизводительные «места» выполнены на с++. Все классы http это подтверждают. Система паралельных процесоов и супервизора — весьма кошерна. Но работа со строками сильно огорчает. чОрт :)
Но, это функциональны язык. И как функциональный язык — он хорош.
Все самые высокопроизводительные «места» выполнены на с++. Все классы http это подтверждают. Система паралельных процесоов и супервизора — весьма кошерна. Но работа со строками сильно огорчает. чОрт :)
Но, это функциональны язык. И как функциональный язык — он хорош.
0
Да, строки сделаные довольно странно. Меня самого это удивляет и приходится с этим бороться.
В сетевом сервисе большее внимание придется уделить скорости и надежности, чем удобству работы со строками. Чаще всего их нужно будет просто копировать с одного места в другое, может шаблоны какие-то обрабатывать.
В сетевом сервисе большее внимание придется уделить скорости и надежности, чем удобству работы со строками. Чаще всего их нужно будет просто копировать с одного места в другое, может шаблоны какие-то обрабатывать.
0
Меня смутило то, что на один символ в строке, erlang тратит 8 байт. И если, допустим, просто вывод строки в UTF происходит без проблем, то операции изменения регистра и еже с ней сложные преобразования нужно писать самому.
Для мне окончательным аргуементом стало использование памяти при работе со строками. Если бы не это — писать мне распределенные много-нодовые вэб морды :) и бэк-энды к ним.
Для реализации серьезных функциональных алгоритмов — думаю решение идеальное. Многопоточность и контроль процессов реализованы как нигде.
Для мне окончательным аргуементом стало использование памяти при работе со строками. Если бы не это — писать мне распределенные много-нодовые вэб морды :) и бэк-энды к ним.
Для реализации серьезных функциональных алгоритмов — думаю решение идеальное. Многопоточность и контроль процессов реализованы как нигде.
0
Sign up to leave a comment.
misultin — легкий встраиваемый веб-сервер на Erlang