News for hackers. Stuff that matters.
Re:Phoenix 1.3.0 Released by dopeboy on Friday July 28, 2017 @04:11PM (#14877145)
Thanks for the link. One thing I hated about Rails when I tried it was the level of magic involved. Does Phoenix suffer from that at all?
Re:Phoenix 1.3.0 Released by aaron-lebo on Friday July 28, 2017 @04:16PM (#14877193)
Phoenix works within existing Elixir constructs like macros and modules, so it keeps a lot of the nice interfaces of Rails without the magic, how things work is pretty straightforward.

It is worth stating that the way Erlang/Elixir manage processes is completely different than most other languages and that has to be grokked at some point. Thankfully the framework abstracts a lot of that.

The Elixir and Phoenix docs are also pretty good. They're not Django-level (what is), but they're good.

Re:Phoenix 1.3.0 Released by jpinnix on Friday July 28, 2017 @04:17PM (#14877202)
Phoenix 1.3.0 really helps you understand that you are just making an Elixir app with some additional features. I don't think there is as much "magic" as Rails.
Re:Phoenix 1.3.0 Released by jolux on Friday July 28, 2017 @04:42PM (#14877420)
There's almost no magic in Phoenix, it's modular from the start and is really just a collection of libraries held together by some mix tasks to help you structure stuff.
Re:Phoenix 1.3.0 Released by asdf1234 on Friday July 28, 2017 @05:21PM (#14877672)
Phoenix is much more straightforward and explicit but macros are used a lot in both Phoenix and the Elixir standard library. I think most of the macros are fine but opinions vary widely on that.
Re:Phoenix 1.3.0 Released by aantix on Friday July 28, 2017 @04:18PM (#14877204)
Something isn't magical if you understand the underlying concept/convention.
Re:Phoenix 1.3.0 Released by chriswarbo on Friday July 28, 2017 @07:05PM (#14878284)
I tend to think of "magic" as meaning fragile, indirect coupling; for example "magic numbers" at the start of files, which are only meaningful if the consuming application has a corresponding pattern in its database.

Or sets of things which only work if given in a particular order. Or unrelated functionalities which interfere with each other due to implementation details. And so on.

In other words, leaky abstractions where thinking in terms of the concept has so many edge cases that it's easier to think in terms of the implementation instead. Or conventions which can only be used via memorisation, trial and error, stack overflow and reading the source (often this is due to shoehorning things into language models which aren't amenable; e.g. all of the things aspect oriented programming tries to do)

Re:Phoenix 1.3.0 Released by goatlover on Friday July 28, 2017 @04:33PM (#14877341)
Everything above the machine level is magic (the computer is doing stuff behind the scenes for you, abstracting away from all the unnecessary detail).