Should I Use Phoenix?

Hello, I have an idea similar to this web application skroutz.gr and I dont know what to use… My Programming background is small (C# Small Games on Unity3D) There are so many Programming Languages/Frameworks and it makes it so damn hard to choose the right…(Laravel,Javascript/NodeJS, RoR, Meteor etc)

Thank’s

We need more information - what kind of app is it?

With regards to Elixir & Phoenix and learning it, we are very lucky to have top tech publishers rooting for it - we have some amazing books already :023:

1 Like

The app is something like booking.com logic… i dont want to make a clone…

@Ar1sC

There’s so many things to consider when building an app these days that there’s no easy way to say yes or no to a particular framework/language or methodology.

Many people build great things with technology others would say is out of date or ill suited. The end user will care more about the experience than the tech stack.

If you build in something you have little to no experience in you probably need more time than you think to implement features, and your code will suck for a while as you get into the paradigms and nuance of the language. If it’s a client app, think twice about diving into unknown waters, if it’s a side project then by all means jump in and see how you do.

Can Phoenix handle the requirements? Probably, and I’m guessing PHP, Ruby, Python and many other languages could too.

From my (limited) experience with Phoenix it’s a great framework. I’ve converted apps I’ve built in PHP and Ruby and I’ve managed to make my code simpler and easier to reason about. That’s a win for me.

Let us know what you decide, and whichever way you go, enjoy!

Adam

3 Likes

Personally, I think that the stack of Phoenix/Elixir/Erlang is the perfect tool for the vast majority of web-facing systems which are meant to run in production, and which you plan to maintain and extend over time. I tried to describe some reasons in this talk.

If you’re building a one-off prototype/throwaway then whatever you’re most proficient in is likely your best choice :slight_smile:

5 Likes

Thank you guys I will stick with Phoenix. Where should I Look for tutorials etc.? I found this site learnphoenix.io, what other resources you guys suggest?

1 Like

Getting started guides on the official Elixir & Phoenix sites would be a good starting point IMO.

1 Like

Also see:

1 Like

Hey there @AstonJ - I’m sure you’re way, way past this question at this point, but I saw that you asked it and that it was never answered (you probably have your own answer by now), but I just wanted to tout @sasajuric’s Elixir in Action book as a great resource for learning Elixir. It gets into all of the vital the language mechanics, but also shows very practical applications for leveraging OTP through Elixir, and even gets into some light testing and mocking via Erlang libraries (these testing approaches, at least in the 1st Ed, are likely supplanted by more modern pure-elixir stubbing libraries, but the ideas are still sound).

I’ve stumbled back here because after seeing how many JS dependencies are included by default in a base generated Phoenix 1.4.5 install with Webpack. Maybe these will never get in the way, maybe this is totally acceptable and there’s not much way around this degree of dependency bloat with any major utilities out of the Javascript community, but suddenly I feel like Webpack’s dependency bloat must be its major drawback compared to Brunch, which I don’t recall having nearly this many dependencies by default.

So again, I’ll probably end up charging ahead with Phoenix on my next web project, but as always I find myself doing due diligence prior to launching forward with this effort, and Elixir in Action gives you a solid path forward if you just want to use OTP and Cowboy to setup some simple mechanisms for serving data out of a an non-Phoenix Elixir backend. I haven’t gotten through the 2nd Edition yet, but from skimming it seems that most of this (latter) portion of the book resembles the 1st Ed pretty closely.

mix phx.new ... --no-webpack :wink:

Unless you actually want to commingle your JS assets and your backend development, which I do not.

3 Likes

@sribe you’re my hero. I guess I knew this was possible but I haven’t spun up a Phoenix app since Brunch was the default in 1.3.x. Do you split up your front and back-end tooling entirely, or do you use a different asset management workflow?

Split pretty much entirely. When I want to release the front end, I have a little rsync which moves the assets into the phoenix dir to be served–others serve up the assets by putting nginx in front of phoenix and giving it the files.

Hello fellow learner. I would like to share my experience with you. I started learning Elixir and Phoenix around 2 months ago. For Elixir, I read the excellent book Programming Elixir by Dave Thomas and thoroughly enjoyed it. I have prepared short notes for each chapter and can share if it helps. Right now I am going through Programming Phoenix book and wish you all the best in your journey. Note- I have prior knowledge of Rails.

I won’t recommend that book, because it targets Phoenix 1.2 while Phoenix 1.4 (the current version) have the directory structure and other differences than 1.2.
I’ll instead recommend Programming Phoenix 1.4 (book), after you learn Elixir. There are also Phoenix in Action and Phoenix inside out (deep and through explanation of test driven development, targeting Phoenix version 1.3).

For learning Elixir there are many resources, including Programming Elixir 1.6 (book), Elixir for Programmers (video course), Pragmatic Studio’s Developing With Elixir/OTP (video course. I highly recommend this one), Introducing Elixir 2nd Edition (book), Elixir in Action 2nd edition.

There is also a course at Pragmatic Studio called Full-Stack GraphQL with Absinthe, Phoenix, and React, which develops something like Booking.com (a simpler version). If you already know React and Graphql (or are willing to learn those), that’s a good option.

ElixirSchool is a nice free resource, which describes Elixir and OTP in great detail, and also some of the libraries like Ecto, ETS, Mnesia etc.

Of course the official docs of both Elixir and Phoenix are really nice.

…deleted…