Originally Field Collection was built to replace the limitation of Field Group, where site builders needed a way of having repeating collections of fields. Field Collection combines a custom field type that points to a custom entity type, rather than trying to kludge together a solution to add groups of repeatable fields onto a base entity. This ultimately ended up with modules that provided different portions of the use case:
- Custom entity types, e.g. ECK, Fieldable Panels Panes, Bean, etc,
- Custom reference fields to connect the new entity types to other types, eg. References, EntityReference, etc,
- Improve the reference field UX, e.g. Inline Entity Form, References Dialog, Media, etc.
- Combinations of the above, e.g.Field Collections, Paragraphs, Field Entity, etc.
At this point some of these have fallen into disarray with limited or no maintenance, while others are continuing to work along steadily.
Two problems that all of the solutions end up having to deal with are revision tracking and translations. Most of the solutions were built without consideration for either, but they almost all end up being used on sites that need them, hence the ongoing efforts to add this functionality to all of the modules.
Field Collections has outstanding issues related to revision handling because it wasn't built with them in mind, while EntityReference has a long-standing debate about how to handle it (the maintainers are basically saying "we don't want to"). OTOH, Paragraphs on D7 contains a reference field that tracks revisions and the maintainers had the presence of mind to split it off into a separate module (Entity Reference Revisions) for D8, solving this problem.
As for language handling, while each entity system is translatable (or has available patches to add this), there's outstanding problems with the reference fields.
At this point, with Field Collections undergoing its second rewrite but still only having an alpha release available, while competing solutions like Paragraphs have solid 1.0 releases, I'd like to make the following proposal:
- Stop duplicating functionality already provided by other modules.
- Deprecate Field Collections on D8.
- Work on migration scripts to convert Field Collection fields to Entity Reference Revisions and Paragraphs.
- Work with the maintainers of Entity Reference Revisions and Paragraphs to make them better.
To the maintainers: Please believe that I do not intend any disrespect to your efforts or intentions, I'm very grateful you've stepped up to put time into improving it. I just feel that we don't need yet another entity reference architecture when one has already taken over the hearts, souls and codebases of our D8 sites, namely Entity Reference Revisions and Paragraphs. With the finite time that we, the Drupal community, have to maintain our tools, I believe we should be more focused with our efforts and sparing with our time.