Interesting. We’re seeing vastly different things I’m personally not interested in containerization, and I’m bemused at all the people using Elixir with Docker and Kubernetes, but hey, if it works for them, I’m not trying to squelch their voices.
There’s also something to be said of fewer (more dominant) libraries or tools: a unified community.
Not sure if anyone remembers but the Ruby community almost split into two web frameworks - Rails and Merb, but the Rails team very astutely managed to ‘merge’ Merb into Rails (all they did really was make Rails more modular iirc).
At the time I was just coming into Ruby and I found the prospect of the split very worrying - I didn’t want two not-quite-so-large competing frameworks, I wanted a single big framework that the majority of the community was behind because I felt that would be better all round. So there are definitely plus points to this, even if from the perspective of adoption/user-preferences etc. If we look at Rails, we can certainly surmise that this gamble paid off because it went on to become the defacto web framework.
At the end of the day it is swings and roundabouts, and ultimately people who are making these tools/languages get to decide. If that isn’t you, then, as mentioned earlier, you need to polish up your skills of persuasion or, the other option is to become that person, to go out there and do it and get others onboard. We have plenty of that too - whether it’s PragDave’s way of building Elixir apps or the Raxx framework.
I guess my point is nothing is impossible - you really can make a difference The tricky part is getting enough of the equation right to get others onboard. JMHO
Yea, see this way to much. And it isn’t just an issue because of organization goals or process that require them. I often see them conflated, like k8s and erlang are solving similar problems (they aren’t). Not to mention the hyping of distributed Erlang and release upgrades.
At least these issues should improve with time as more production usage exists. Same issue existed in Erlang like 10 years ago. Lots of presentations and blog posts, not just from random people but like Github, about using Erlang, then internally the attempts fail and are replaced, but the posts and presentations live on and more people go down the wrong path, rinse and repeat.
But saying that theres nothing to be gained by exploring other ideas is exactly the kind of mentality that I personally find very frustrating.
I’m not exactly sure where this comes from. I dont find much evidence of this personally. I think the Elixir community is generally a bunch of really practical people. If a particular tool doesnt fit your needs, I dont think you will find anyone telling you not to explore alternatives. In fact - if it performs a task better than any current tooling - you will most likely find further adoption.
Cool to see someone else from Croatia Have we met IRL?
I agree that it’s difficult to find Elixir job here, and it’s always hard to introduce a new language to the company with an established tech stack. I guess that’s a problem everywhere, but we’re a pretty small community, which makes it especially hard. That’s why a few years ago I started working remotely for foreign clients. It was clear to me that I want to professionally focus on Erlang/Elixir, and that I just can’t do it with local companies.
Things seem to be improving slowly. I know of two local companies which work with Elixir. My understanding is that they’re expanding (or might expand in the near future), so if you’re interested in doing Elixir work professionally, send me a DM and I can connect you with them. Also, a regular Elixir meetup might take off soon-ish in Zagreb, so stay tuned for more news about that
I know that this reply that I am writing can be seen as another example of frustrating, but regarding configurations, we have had many discussions here in this forum about ways to improve configuration as well as official proposals. We have written library guidelines to reduce the abuse. We have deprecated system tuples in the major libraries (ecto, phoenix, etc). We are discussing alternatives with OTP and so on.
And even if what distillery provides is not enough, it is progress. I believe this is not a trivial problem to solve, otherwise we would already have seen a satisfactory solution. And as far as I know it is not a problem solved in Erlang either (not that it matters, but just to add that it is not trivial).
So seeing the config debate being used as an example is actually a bit frustrating to me because a good amount of work has been put into this and we are trying to push folks to the correct direction (unless you mean that folks have been stubborn despite all of the work described above and then I’d also agree: it is definitely frustrating - but also understandable as we pushed folks towards those wrong solutions for a good chunk of time).
Which is funny because in my experience k8s makes it easier to setup distributed Elixir as it automates the node discovery/connections.
From the point of view of a beginner, I think that few libraries but very mature is better than many unstable libraries. Since the community is still very young, scattering does not seem like a good idea. Everything will come with time and it is better to focus on what does not exist yet. I think for example that we would have much to gain from having complete library corresponding to each one that is common in other frameworks. I’m thinking for example about authentication, administration system, why not translation of documentations into other languages and maybe more internationalization. I think all this will come by the community growing.
Personnaly I’m having fun doing elixir and I would like to contibute when I will feel more confident with it. ^^
As someone who has deployed 4 apps through edeliver over 2 years, I have no idea what you are talking about, and I consider that a good thing. I had to update elixir and the deploy file slightly, but it was a lot smoother than expected!
Updating rails usually turns out to be a major issue, Phoenix was a breez, taking less than 5 hours to figure it out.
Would I choose Phoenix over rails again? Depends on the Developer, but I feel a lot more confortable and productive in Phoenix now.
This is a great point!
As a community, I feel we could definitely improve in being less critical of the alternative libraries. It’s clear that a new lib is not as mature as the established ones, but it still might be interesting because of the ideas brought to the table. We should focus on those ideas.
To aid in this process, I think that the authors of new libraries entering the charted space should clearly explain the new ideas and approaches they’re trying to introduce. To me, that’s even more important than having full-blown docs and getting-started guides. My advice to lib authors is to include a rationale doc in their project, and link to it at the top of the main readme, and the official announcement. As an example, see the second sentence, of my Parent readme.
In keeping with “attempting at empathizing with the other point of view”.
The way I see it, part of that mentality is fuelled by what has happened to the npm ecosystem.
Some people simply don’t want the Elixir ecosystem to go down that road. It’s one thing to put whitebox (but not necessarily generalized) solutions on GitHub/GitLab that everyone can learn from (i.e. exploring other ideas). It’s another to potentially flood Hex with packages for the sake of someone wanting to have a package on Hex.
I actually see the problem in the reverse. Once you accept the prevalence of k8s (and/or Docker) it seems to undercut the perceived runtime value proposition that the BEAM can bring, for example in terms of fault tolerance.
How do your sell the BEAM to an established k8s/Docker shop? Seems to me they treat everything inside a deployment unit as an implementation detail where they just rather stick to established, “good enough”, mainstream technologies.
I have moved away from Elixir partly. My company has elixir as main software for the administration tools we develop. I do join in coding from time to time but its getting more rare as I move away from web services .
I am and always will be a c and c++ guy at my core because unlearning 22 years of bad habits is hard. that said elixir is really fun to work with.
hey @gausby – could you please open another thread that might be named (proposal):
“Why have you moved away from X and landed on the BEAM?”
If you read closely you’ll see that I asked a question and didn’t make a statement – I never said that there is nothing to be gained by exploring other ideas. I am still genuinely interested in the answer of my question which was “what is to be gained exactly?”.
I will again ask where do you see hostility?
We can’t have a dialog if you guys immediately feel frustrated and make sweeping generalizations. That’s not how a constructive discussion happens.
I asked a few questions in my earlier post and I didn’t get a single answer yet. I only get categorized as hostile. I find that quite puzzling.
As far as I am concerned, assuming intentions without a real dialog is the problem between these two supposed camps of people. Not any perceived hostility – which I am yet to see anywhere on this forum.
I was excited to see your Gleam project on Github. How is that progressing? Are you using it in production at all?
It’s going well. I’ve made a topic to talk about it so we don’t derail this one
My experience was incredibly similar, started learning Elixir a handful of years ago, then got into some funemployment (with freelancing sidework) after moving to Asia for romantic reasons and took the opportunity to get really serious about Elixir. I also joined a startup over here that did not fare well, then joined a budding organization, made a small non-essential web app with Elixir on Phoenix, and now I lead a team building a more complex web system with Elixir / Phoenix.
Was easy to make the argument for doing a project in Elixir because the other teams here are primarily PHP (lotta PHP in this city…), and Elixir/Phoenix have really matured in the past couple of years IMO
Haven’t moved away from Elixir and likely won’t anytime soon, it is an amazing ecosystem for building resilient, flexible, fast APIs. I don’t miss Node/Ruby/PHP et al. at all
During the last days I was playing around with HTTP/2 and SSE. Implementing this with Raxx is very easy and due to its streaming-oriented nature. I also implemented this with Phoenix/Plug but it really felt kinda hackish. Phoenix does an excellent job as a tool for building MVC based web-sites thanks to its batteries included. Raxx, on the other hand, is a nice solution when it comes to server streaming or micro services.
Just wanted to add my thoughts to this topic, too. First, I would like to state the I really, really enjoy Elixir as a language. Doing software development for more than two decades (god, I feel old) Elixir gave me several new ideads on how to tackle things - especially on the functional programming part. Also I find it quite amazing what you can do with OTP and distributed Elixir/Erlang. If only I had known earlier …
But as an employee I believe it will be very hard to sell Elixir/Erlang to our customers or even our manager. Here in Germany Java/C# is very popular for traditional enterprises. Startups on the other hand seem to stick to node.js or more lately Golang.
And with the ever increasing popularity of the cloud, especially Kubernetes, Golang seems to become even more popular. Some even say that Golang will the become the lingua franca for cloud computing. Low memory footprint, easy-to-learn, high concurrency and, well, Google.
Maybe it is a bit of a marketing issue, too. Arguments like OTP and fault tolerance doesn help when the CTO states that this is handled by Kubernetes already. So no need for OTP. And while personally I do like the Phoenix package it’s hard to sell it in the ever increasing world of micro services. Every software architect I spoke to told me that without micro services you cannot scale your app. “That’s common knowledge”.
Yeah, the software industry in Germany is really frustrating and so much behind other countries.