yordisprieto
Curated HEX packages
Everything that I shared is based on my experience, please don’t be offensive.
npm, ruby gems and now hex. I always have to deal with the same problem: find the best package for my project.
I notice that engineers in general like to just go and reimplement everything from scratch when something doesn’t work as them spec, or even sometimes because they don’t understand the current one.
That’s why you go and search in those websites for some dependencies you find out a huge amount of packages that basically try to resolve exactly the same issue.
I never understand why we (programmers in general) don’t work together as a team, because will always be better to work together and think more than one person in the same situation.
Yes, I understand that sometimes we got so deep in one implementation that we can’t use some packages or the trade off is huge compared with recreate your own.
I also understand that sometimes I will find some project driven by dictatorships, or even people don’t want to change something because somebody else will break.
I am not saying that having a LEADER in projects is bad, also I am not saying that we shouldn’t help “legacy” people
but,
we can’t hold some implementation, or even don’t change something that TECHNICALLY is better because somebody else will break, that’s why we have versioning and is their responsibility to upgrade or not.
All of those and many more problems can be resolve and I would like to find the solution
Anyway
I would like to see a little badge in HEX packages, that means that those packages are well supported and maintained.
Also I will group the packages in categories and I will only give the badge to the one that is the common and mainly use .This way we help people like me and the community.
I don’t believe in having a lot of packages that literally fix the same problem. I prefer to work together.
I would like to continue writing but I think you get the main idea.
And please share your opinion because this is really important for the Elixir community, now that we are smaller enough for curated HEX.
Let’s think together and work together
Most Liked
ericmj
I think it’s better to let Hex focus on serving packages. It would be too much work for me to go through 2800 packages and evaluate if they are good or bad and then decide which ones are the “best” in each category. The other alternative would be to have the “community” vote, but it’s not clear from your post how that should actually work. I don’t think it should be part of Hex either since Hex should focus on its core features, which is publishing and serving packages. There’s a lot of work running and maintaining a package manager and the core team has a long list of more important enhancements and features to work on before we can focus on curation or community voting.
It’s not a bad idea to have a place where you can find recommended packages. There is GitHub - h4cc/awesome-elixir: A curated list of amazingly awesome Elixir and Erlang libraries, resources and shiny things. Updates: · GitHub and http://toolbox.elixir.pm/ already that does similar things. Maybe you can help out on those efforts? Both those projects use the HTTP API from the specifications and you should be able to build a service with the API that would be just as good as if the service was part of Hex.
josevalim
This is the takeaway here. Asking for some sort of committee that will rank packages is like requesting someone else to do your job. How will this committee even be able to judge all packages that go into Hex about Phoenix, GraphQL, Databases, Elastic Search, Nerves, C extensions, etc? Each of those require specific domain knowledge.
Instead we need to discuss how to assess the health and quality of a project. README, documentation, usage, number of committers depending on the project size and if the team is responsive on new issues. Then there is a whole series of aspects related to your current domain: are the APIs well designed? Is the code tested? Does it use meta-programming only when absolutely necessary?
FWIW, I strongly dislike any measure that includes commit activity. What if the package is just… done?
sotojuan
The problem is that there’s no solution.
Hex’s only job is to server and store packages. No one in the Hex team wants to review packages, especially as Elixir gains traction and we get hundreds+ a week. They also don’t want a high barrier of entry for people to publish stuff either. Remember, Hex is an open source project done for fun, not anyone’s day job (correct me if I’m wrong).
The community is made up of tons of people. People are impossible to get together to agree on many things, especially tools and software. It happens very rarely and only for very big things like Phoenix or Express in Node (even then, many want Koa or Hapi).
Maintainers come and go and projects die after a few years. It’s an extra burden to keep track of which projects go unmaintained. Some projects don’t need maintenance at all after 1.0.0 because they’re simple.
Also, it’s not that bad. I get stuff done in Node all the time and rarely have a problem finding good libraries. I use npms which I linked above—their algorithm takes into account stuff you’ve mentioned and returns great results. Someone could build the same for Hex. After a few projects you just know which packages and people are good.
Phoenix, HTTPoison, Poison, Plug, Poolboy, Ecto (just naming a few) are all set in stone for years to come and the community has already decided on them, but I can go and publish 20 mediocre JSON parsers on Hex right now if I want. But you’ll never find them or use them with a good search system because you’ll get Poison instead. That’s my only solution: Have a good search algorithm and keep up with the community. Or have your own site that lists curated packages based on some algorithm you come up with.
You can’t stop people from publishing trash unless you hire someone to review packages 24/7, and then you’ll be known as the language that’s not friendly to beginners/people experimenting with packages and new ways to do stuff. I’ve even seen people accidentally publishing their Phoenix web app on Hex! Some programmers hate using dependencies, some like reinventing the wheel. People will always be silly ![]()
Anyway, that’s my rantish answer. Let me just say I do agree with you and I’d love to have a perfect package repository with only the best stuff on it, but it’s just not going to happen.
Last Post!
josevalim
I agree with your reply. Communication is important and we should seek for collaboration. Elixir tries to lead by example here up to some extent when it comes to Erlang integration. Pushing developers to not simply wrap Erlang abstractions and contributing improvements, reporting bugs and more upstream whenever possible.
Btw, I didn’t want to imply you were not doing work. Although reading back I can clearly see how it can be read exactly as that. Sorry.
Popular in Discussions
Other popular topics
Chat & Discussions>Discussions
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #hex
- #security









