Hi David,
On Tue, Oct 10, 2017 at 12:21:05PM +0000,
da...@ddeboer.nl wrote:
>
> >
> > I have converted larger Erlang codebases to Elixir incrementally
>
> Jake, can you explain the rationale behind this? Why did you want to run
> your apps in Elixir instead of Erlang?
I have been using Erlang since 2007. I switched my company over to
Elixir two years ago, and am very happy.
Elixir has all of the power of Erlang, with the rough edges of the
syntax cleaned off. Then it adds on powerful abstractions like macros
and protocols, as well as libraries like Ecto. And the community is
focused on having great usability and out of box experience.
> > The most interesting thing is probably an example combining Zotonic with
> > Phoenix.
>
> This is something I’ve been thinking about for a while now. Going one step
> further: what about porting Zotonic to Elixir? There are a many reasons why
> Zotonic and Phoenix (= Photonic ;) are a great match:
That would be great, and I would be glad to help.
> 1. As of yet, there’s no fully-fledged CMS available for Phoenix/Elixir.
> Having *a stable CMS for Phoenix* will enable developers to be more
> productive in Elixir and attract more of them to start doing Elixir in the
> first place. There’s definitely a demand for a Phoenix CMS: as Allen and
> others write in this thread and again others have told me.
>
> 2. This is also a great chance for Zotonic. As most web developers on the
> Beam VM are doing Elixir, it will be much easier for them to submit
> improvements to an Elixir CMS than an Erlang one. So by porting Zotonic to
> Elixir we will hopefully find *more contributors*.
>
> 3. The number of Zotonic contributors is rather small for such a large
> product. One way to solve this problem is by *reducing the scope of Zotonic*.
> Currently it has custom logic for HTTP (Cowmachine), templates (template
> compiler), routes (dispatch compiler) and so on. All these belong to *web
> applications in general, not a CMS specifically*. Let’s use Phoenix to take
> care of these. Phoenix has a (much) larger community, so it can do these
> fundamentals better and more efficiently than we can. Worst case, we would
> have to build something on top of what Phoenix ships with out of the box,
> such as adding adding dynamic routing
> <
https://gist.github.com/chrismccord/1c6b6fb086d5432d4e08>. Let’s stick to *what
> makes Zotonic unique*: its flexible datamodel, performant depcache,
> (possibly) ErlyDTL template language.
> (As a side-note, let’s not forget Zotonic is much older than Phoenix, and
> Zotonic has been doing things such as real-time client/server communication
> before Phoenix existed, let alone added Channels.)
>
> 4. Phoenix is well-designed and properly *decoupled* (Plug for HTTP, Ecto
> for databases and Contexts for domain logic). The same cannot not always be
> said of Zotonic. So switching over to Phoenix will result in smaller
> Zotonic components written in higher-quality code.
>
> 5. Most web development on the Beam VM is happening in Elixir: if you need
> authentication, JSON-LD parsing etc., there are much more likely to be
> up-to-date, well-maintained and documented Elixir *packages available* on
> Hex.pm than a single Erlang one. It therefore makes sense to integrate with
> the Elixir ecosystem.
Agreed. My company normally builds custom products for customers. I like
to say that Elixir/Phoenix has the ability to build all parts of the
application on one platform: public website, admin CRUD, mobile API,
real-time messaging, 3rd party API integration. In reality, a part
that's of that story that is rough is making it easy for non-technical
customers to update the public facing pages. We can build custom CMS
functionality, but it is better to to call on a component like Zotonic.
> Cheers,
> David
Cheers,
Jake
> Op dinsdag 3 oktober 2017 04:23:11 UTC+2 schreef Jake Morrison:
> >
> > On Mon, Oct 02, 2017 at 10:39:04AM +0000, Marc Worrell wrote:
> > >
> > > > On 2 Oct 2017, at 02:19, Jake Morrison <
ja...@cogini.com <javascript:>>