Do you seriously believe that this data is “the most relevant thing possible” to assert the claims “Elixir is past its peak” and “is all down hill from here”?
I am not refuting the data, I am refuting the flawed conclusions you are drawing from it. You are taking the decline in usage of one service as an overall indicator of the community. I provided a possible explanation. I mentioned the GitHub ranks as counter evidence. But way to go on the ad-hominem.
I don't see how this is any better. Most traffic on SO comes from search engines and if the questions and answers are elsewhere, such as in the Elixir Forum, then search engines will lead devs away from SO.
You say the language is in decline and none of this is solid evidence that's the case. It just says Elixir devs are not really active in Stack Overflow, which anyone in the community would be able to quickly point out.
That’s very little data to make such broad claims.
Up until 2017 or so, you could see the Elixir community active on StackOverflow with answers from José, Chris and most maintainers. Then the community collectively moved to Elixir Forum. Wouldn’t you prefer to ask questions where the maintainers can also answer? Per the Elixir Forum stats, the number of active users keep growing.
I won’t comment on TIOBE because you can find plenty of critique elsewhere. For example, in the Redmonk rank, Elixir does fairly well on the GitHub axis, and is ahead of contemporaries like Clojure and Julia, and ahead of other functional languages like Haskell, Ocaml, Erlang, and even F#.
I strongly believe Elixir is before its peak. Elixir is most likely still growing, just not at the same pace as languages like Rust or Kotlin.
I would really appreciate any data that backs this up. Or is this a personal observation written as if it was a consensus? Because if we are going by personal experiences, the community definitely feels bigger and more active than before to me.
It has many files because it brings in Erlang and its executables. Then Elixir and its executables. And then it adds some scripts to invoke those. It may make more sense if you think of releases more of a bundle, that includes all tools that you have and may need in prod.
Theoretically speaking you shouldn’t need to worry about any scripts except the ones you have in bin/.
I am well aware you know this but Elixir is a different paradigm than Ruby and Python. Approaching it like you could do everything as in Ruby or Python means you are unwilling to learn the functional aspects of the language.
IO lists have useful properties that are not readily available in Ruby and Python, so they come with benefits, and Phoenix uses them to great extent for fast templates.
Binary constructors aren’t optimizations either but the way to construct binaries and strings in Elixir. They’re as fundamental as pattern matching.
The lack of libraries is something I can identify with but please understand it is frustrating to hear over and over again something is hard in Elixir while refusing to learn the language basic concepts because you would rather do it as in Python or in Ruby.
The issue is that there is a gap and if you won’t learn the language nor use it, the gap won’t ever be closed.
For example, you said elsewhere a solution was complicated because it used io lists and a binary constructor but both concepts are explained in Elixir’s official getting started guide. So sometimes it feels you are saying things are complex while you don’t seem to be actively learning the language and some will definitely find that frustrating.
It would be the same if I went to Rust forums, a language I haven’t yet studied in any depth but read a lot about, and constantly said the ownership mechanism is complicated.
Apologies if this comes up as rude. You do seem to be a person open to feedback, so I thought I would drop my $.02.
Fun fact: dialyzer does not use your @spec’s to run checks. If you do provide a @spec, it will check that it matches, but it doesn’t affect dialyzer itself.
It really depends on what you mean by general purpose.
At work we use Elixir for web and data ingestion, and I could have used Ruby for web but Ruby is considerably behind for data stuff.
Elixir is fine for one-off scripts, Ruby and Python may be a bit more convenient, but overall they are all too heavy to distribute compared to languages like Go and Rust.
Elixir is also used for high-end embedded and there is the whole distributed programming bits, which is quite specific to its platform, and more complicated to setup in almost all other places.
So overall it does provide some nice coverage across a couple areas although it lacks on other ones (GUIs, ML, etc).
I am not refuting the data, I am refuting the flawed conclusions you are drawing from it. You are taking the decline in usage of one service as an overall indicator of the community. I provided a possible explanation. I mentioned the GitHub ranks as counter evidence. But way to go on the ad-hominem.