5 ms·
It's been getting a massive amount of attention lately, really. Well deserved too. Phoenix is the sanest out-of-box web framework I've experienced.
by bpicolo 11y ago
It's been getting a massive amount of attention lately, really. Well deserved too. Phoenix is the sanest out-of-box web framework I've experienced.
- melling 11y agoHow's the editor support? I'm open to any editor or IDE.
- gamache 11y agoI use MacVim + the Janus extensions[1] and it's great. I hear good things from people using Atom and Sublime too. [1] https://github.com/carlhuda/janus https://github.com/carlhuda/janus
- andy_ppp 11y agoIt's rubbish, but the IntelliJ plugin is improving at a rate of knots: https://github.com/KronicDeth/intellij-elixir https://github.com/KronicDeth/intellij-elixir
- schpaencoder 11y agoYou really want to try Spacemacs (emacs with layers) with Alchemist
- bpicolo 11y agoDepends on what you're used to. Certainly you get the normal bits that editors all support: text coloring, autocomplete + basic code complete stuff + whatever linter people have created. Not resharper or heavyweight sorts of IDE things yet. I never had any issues here with sublime
- ane 11y agoAlchemist for Emacs is truly wonderful.
- vdaniuk 11y agoAtom has recently gained a significantly better support with the atom-elixir package. Adding language-elixir and linter-elixir packages creates a moderately enjoyable experience.
- tmichael0 11y agoI'm currently using Atom with this package: https://github.com/msaraiva/atom-elixir https://github.com/msaraiva/atom-elixir
- supernintendo 11y agoI use Emacs with Alchemist [1] and I love it. The integration of common tasks like module reloading, testing and inline evaluation have all increased my productivity when writing Elixir. Code completion, Phoenix support and the ability to quickly jump to function definitions within a project are all nice features as well. [1] https://github.com/tonini/alchemist.el https://github.com/tonini/alchemist.el
- davidw 11y agoWhat in particular do you like about it? I've used Erlang plenty, but haven't had much occasion to use Elixir and Phoenix.
- alexgaribay 11y agoI haven't used Erlang but I've been using Elixir daily for the past 5 months. Coming from Scala, it has been wonderful with pattern matching everywhere the syntax is very easy to get used to. The Elixir docs are very amazing as well as many of the core/common libraries. Phoenix is not excluded either. The performance of the framework is amazing as well as how simple and productive the framework is. The Elixir community as a whole is great.
- jfaucett 11y ago"What in particular do you like about it?" As someone who has also used Erlang in the past I can tell you what's nice about Elixir: super modern developer friendly ecosystem. Mix - the pkg manager - is dead simple and does the job well, the docs are amazing with tons of examples and direct links to source code everywhere. The language itself also has some nice syntactic sugar over standard Erlang, and integrating with Erlang was a breeze. Overall the whole system is just smooth and works. I was impressed.
- davidw 11y agoYeah, Elixir is nice in a lot of ways, and is a much needed shot in the arm for Erlang. I should have been more specific: what about Phoenix do you like?
- vvanders 11y agoMost of other comments are on the mark about Mix. The other bit for me is Elixir's macro support. This lets you do really clean route matching in Phoenix. See http://www.phoenixframework.org/docs/routing http://www.phoenixframework.org/docs/routing for some examples.
- davidw 11y ago
- colbyh 11y agoI love it too but I'll push a little on "sanest out-of-box" web framework. template/view rendering is a bit more complex than it needs to be. totally understand that it's a side effect of pattern matching but I'd appreciate a little less "magic" when it comes to matching views to render statements. and not to throw yet another buzzword at this post but Phoenix is the best framework I've found yet for smaller networked services. so enjoyable to build with.
- bpicolo 11y agoI mean, I have a bone to pick with most web frameworks in that they leave a lot out of what I'd consider ready-to-go for an app. Phoenix does a number things better than most, like sane JS env, consideration of production vs dev configs, and some other stuff. Most out-of-box apps are too simple, and most web framework app skeletons are insanely overdesigned and, frankly, miserable. Certainly there are a number of big frameworks (django, rails) that can give you most things out of the box, but I'm not a fan of heavyweight frameworks in general. I think Phoenix strikes a great balance
- chrismccord 11y agoI'm genuinely curious what you feel is too magical with how we handle rendering? Templates are compiled as `render/2` function clauses on the view module, so there's no magic going on. As you said, we do lean on pattern matching, but that's a product of the language and how you structure a large amount of your own code, not anything tricky we're doing. For example, if I have an `user/index.html.eex` template for a `UserView` module, I can render it with: View.render(UserView, "index.html", name: "colbyh") At compile time, we simply precompiled the index.html.eex template as a `def render("index.html", assigns) ...` function clause. Now imagine I want a `bio.html` template. Instead of making a template file, I can literally do this in my view: def render("bio.html", assigns) do "Bio: name: #{name assigns.name}" end ... View.render(UserView, "bio.html", name: "colbyh") => "Bio: name: colbyh" And it Just Works exactly because there's no magic going on. Templates are just function calls, whether they are precompiled from a template engine or defined by the user manually.
- 11y ago
- dimgl 11y agoYou can make an Elixir HTTP server without Phoenix and it's just as easy and intuitive. Pretty happy with it so far.