What does HackerNews think of phoenix?

Peace of mind from prototype to production

Language: Elixir

#3 in Elixir
#3 in Laravel
I’m surprised that nobody has posted about Elixir yet. I nominate the excellently written Phoenix library. Not only is the code well organized and easy to find, the documentation is expansive and right next to the code.

https://github.com/phoenixframework/phoenix

Your Phoenix link is broken (includes the semi-colon)

for the lazy: https://github.com/phoenixframework/phoenix

I was able to get real-time collaborative text editing to work on one of my side projects by combining quill.js[1], ot.js[2], and firebase[3]. This was a few years ago when there weren't any fully open-source options. I'm in the process of switching out firebase for an elixir/phoenix backend[4]. I'm really glad for this article because it captures the exact feelings that I have.

[1] https://quilljs.com/ [2] https://github.com/Operational-Transformation/ot.js/ [3] https://firebase.google.com/ [4] https://github.com/phoenixframework/phoenix

Elixir and its ecosystem (plug, ecto and phoenix) has been above and beyond every time I've contributed. Helpful, patient and kind, and also very smart guys.

https://github.com/elixir-lang/elixir

https://github.com/elixir-lang/plug

https://github.com/elixir-lang/ecto

https://github.com/phoenixframework/phoenix

It might be worth looking at how Phoenix[0] does it (or, you know, just consider using Elixir/Phoenix). Phoenix runs on cowboy out of the box and makes setting up a web app a snap:

    $ mix phoenix.new my_app
which then sets up the directory structure for you to just run

    $ mix phoenix.server
and have cowboy serving your webapp. The guides then tell you which files to add new routes, controllers, models, etc (in a way similar to Django or Rails). All that said, it's in Elixir at that point, but maybe you could still infer how the applications and gen servers and whatnot are structured from it.

It may be worth asking josevalim and chrismccord in #elixir-lang for tips on setting it up, since they obviously must know how to set up cowboy pretty well to build a system on top of it.

I think Erlang and things like cowboy and OTP are absolutely amazing for the web, but Elixir has made things 100x easier to get up and running with them.

[0] https://github.com/phoenixframework/phoenix

I've just started messing with elixir. It's a functional language that runs on the Erlang VM but it's syntax is ruby-ish.

I'm a newbie but I've been impressed by the tooling so far. And once you change how you think about everything the learning curve isn't too bad. =)

It has a rails-y framework that I haven't heard much about (and nothing particularly bad):

https://github.com/phoenixframework/phoenix

https://github.com/phoenixframework/phoenix

Another rising technology with a similar name. This phoenix is set to be the Rails for Elixir

We're working on Phoenix, a highly connected web framework that aims to serve as a backend for all devices, whether your web browser, native mobile client, or smart oven.

https://github.com/phoenixframework/phoenix\nhttp://www.confreaks.com/videos/4132-elixirconf2014-rise-of-...

I was primarily a Ruby programmer so before I dove into Elixir I mostly wrote Sinatra and Rails apps, and occasionally some Node.js. When I first came to Elixir I mostly approached it as a fun thing to do in my spare time. The language really has some great features for solving problems in concise ways. But as I've spent more and more time with the language I've started to realize it can replace far more of the projects that I used to use Ruby for than I first though.

I've worked on a couple projects in Elixir already. I do still like Ruby/Rails for rendering HTML (there's years of hard work in making that an easy thing to do in Rails), so a common web app that I create lately will be Rails as a very thing wrapper around the database for rendering HTML and then an Elixir component for background jobs and WebSockets.

That said, a ton of great work is going into Phoenix[0] and I think it's very close to being suitable for both rendering HTML and WebSockets. On my next project I'll probably try and just use Phoenix entirely.

0 - https://github.com/phoenixframework/phoenix

I come from a javascript/python background, you might want to take a look at the Phoenix web framework[1], as it will give you a good introduction into the language, but also introduce some new concepts (OTP-wise) that will help you think more "elixir-y" (or "erlang-y").

One thing I constantly keep in mind when programming in Elixir is that, using it in the same way you would use Python is a waste. For example, when I use Python, I'm not typically thinking of concurrency (outside of, "how many gunicorn workers will I need?"), because of the situation with concurrency in Python. Using Elixir (or Erlang), you really aren't taking full advantage of the language/runtime/VM if you don't take concurrency into account. If all you want to do is a little string munging, you can do it in Elixir, but it is probably not the best tool for the job.

The Mix & OTP guides available on elixir-lang.org are great, but if you want more information on OTP, the OTP chapters in "Learn you some Erlang"[2] are wonderful. You will have to do some translation from Erlang syntax to Elixir, but it is a great way to learn how to think concurrency.

1: https://github.com/phoenixframework/phoenix

2: http://learnyousomeerlang.com/content