10 ms·
Show HN: Erlang REST framework
- Exuma 9y agoHows this compare to something like Elixir + Phoenix?
- shinemonad 9y agoI think you cannot. The Phoenix is a solid and stable framework. rooster still just a simple implementation of a basic REST framework.
- noncoml 9y agoErlang is amazing language in its simplicity. And it was the perfect language for the web. I keep wondering why it never really took off.
- qaq 9y agoPeople are creatures of habit the syntax looks "weird" to many.
- pjmlp 9y agoTo the point of rewriting syntax just because of it, e.g. ReasonML vs OCaml...
- notamy 9y agoSyntax as well as just that it's a really weird way of thinking about things compared to languages like Java, Python, etc. Elixir seems to be helping some with this, so I guess we'll see.
- noncoml 9y agoYeah, syntax is a bit different than the mainstream, but it only takes a week or so to get used to it.
- digitalzombie 9y agoIt's Prolog inspired. It's weird because it never took off like C/C++ like languages. The language syntax is small enough that I believe it'll take a short time to learn and get use to the syntax versus other languages.
- kornish 9y ago> The language syntax is small enough that I believe it'll take a short time to learn and get use to the syntax versus other languages. I'm not sure size of syntax has all that much to do with adoption. Case in point: Lisp.
- noncoml 9y agoIt’s funny because I would take Erlang’s syntax over Elixir’s anyday.
- im_down_w_otp 9y agoLikewise. I wish I could have Erlang the language w/ Elixir's community and growth.
- skrebbel 9y agoCan't you? I mean, aren't they interoperable?
- saurik 9y agoThe canonical argument order in Elixir is backwards from Erlang (and I will argue just "wrong" with respect to the functional programming paradigm: it is essentially object-oriented corruption... the subject pretty much needs to be the final argument for various forms of functional composition to work; the place where this really becomes clear is when trying to call "reduce", which continues to have the "correct" argument ordering even while almost nothing else does <- though watch me be misremembering the exact place where this clicks as it hasn't been years since I spent a lot of time trying to be happy programming with Elixir :/), so there is a massive impedance mismatch tying to reuse functions and primitives codes in one language from the other (and it almost seems like many Elixir wrappers exist only to reverse the argument order). So, sure: they are "interoperable"... but so are C and Python ;P.
- filmor 9y agoErlang does not support currying, so having the subject in the last arg does not help much. Also, the actual ordering is not `func(Args..., Subject)` but instead `func(Args..., Subject, OptionalArgs...)` which bit me more than once. I like Elixir's consistent use of the first arg for the subject along with the pipe operator, which gives you essentially currying-like behaviour in the first argument.
- deleted 9y ago
- tazjin 9y ago> it's a really weird way of thinking about things compared to languages like Java, Python This depends on your background. I have a very hard time thinking about procedural behaviour and state mutations, Erlang's (and other functional language's) model is much easier to keep in my head.
- issaria 9y agoFor network applications, yes. Web? no. It actually shares a lot of the usecase with golang, I would say, if the program can be distributed as binary, there would probably no golang.
- noncoml 9y ago> For network applications, yes. Web? no. Meaning?
- hlieberman 9y agoI'm not sure why you would use this over cowboy's REST handler. Cowboy is the thing that powers Phoenix -- you really can't beat it for concurrent performance. (Loïc of NineNines is an absolutely incredible guy that does a ton of really important work, and you all should consider supporting him at https://salt.bountysource.com/teams/ninenines https://salt.bountysource.com/teams/ninenines)
- shinemonad 9y agoyou are comparing apples and oranges :) I would go in that way: -> compare cowboy with mochiweb and leptus with rooster.
- hlieberman 9y agoPerhaps in part, yes. But cowboy does have a very powerful REST handler built into it that does a lot of the same things: https://ninenines.eu/docs/en/cowboy/2.1/guide/rest_flowcharts/ https://ninenines.eu/docs/en/cowboy/2.1/guide/rest_flowchart...
- andreineculau 9y agonothing "REST" about it. 100% HTTP PS: if anyone is interested in a language-agnostic artifact like cowboy's or webmachine's, see https://github.com/for-GET/http-decision-diagram https://github.com/for-GET/http-decision-diagram
- asd1o2487c 9y ago> you really can't beat it for concurrent performance You can. Cowboy is not the most performant web server in Erlang.
- bfrog 9y agoI wasn't aware anyone was still maintaining mochiweb, thats actually somewhat comforting to know!
- jwatte 9y agoWhy no comparison to webmachine? Webmachine has a really robust mapping to the HTTP standard, and sits on top of mochiweb.
- texuf 9y agoAnything out there that accepts GraphQL queries?
- ams6110 9y agoI have used webmachine for web services in erlang, which I liked a lot. Not sure it's much maintained anymore. https://github.com/basho/webmachine/wiki https://github.com/basho/webmachine/wiki Edit: apparently it's still at least somewhat alive... http://lists.therestfulway.com/pipermail/webmachine_lists.therestfulway.com/2017-October/000838.html http://lists.therestfulway.com/pipermail/webmachine_lists.th...