Makes a lot of sense! Thanks for the explanation :) On Wed, 16 Sep 2020 at 20:56, Romain Manni-Bucau <rmannibu...@gmail.com> wrote:
> Hi Maxim, > > IMHO, each dependency must be justified by a significant gain in terms of > coding and algorithm. > It is to compare to: > 1. the cost to check the dep against last one (mitigate the later upgrade) > 2. the cost to scan and test the dep against vulnerability (secure > software/lib) > 3. the cost to integrate the stack in all supported environments (flat > classpath, standalone, webapps, OSGi at least for us - and here any dep can > break an integration, in particular OSGi part which is not that greatly > tested yet) > 4. the bytes cost (not everybody care but I do care to have 10M to have an > entity manager when 4 or even less are enough, don't forget it ends in > docker layers or archives and this means network transfer costs + scanning > time in some env at the end). To give you an idea, if you take geronimo > microprofile stack (a subpart but the same in the comparison to be fair) > you will end up around 25M whereas the same done at smallrye in a "open bar > dependency" mode ends up at around 65M. I'd like us to be clean to enable > users to have clean stacks and not hesitate to import us. JPA by itself > requires already several code so better to not add a ton for nothing > ([collections4] is around 750k, with the import we get ~200k so we gain > 1/2M with less conflicts, and work/management to do). > 5. the conflict resolution (with some other libs developed like us, you > must resolve the version manually to enforce one compatible with both in > flat classpath env - ie not OSGi). > 6. the cost to do it ourselves, here java 8 (guess 6) > superseded [collections4] in our usage for a lot and the remaning parts are > very thin so bringing [collections] is only a drawback today IMHO > > Add to that our codebase is pretty stable and I dont see us using > collections4 anymore in the future, it means it is safe to cut it today > IMHO. > > Current import can look a lot but compared to collections4 it is not and if > you drop most of the abstraction without any real logic (abstractX, > decorators, interfaces, emptyX) it is almost nothing so IMO we gain way > more dropping it than keeping it hanging at the risk to keep depending on > it. > > Hope it makes sense. > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://rmannibucau.metawerx.net/> | Old Blog > <http://rmannibucau.wordpress.com> | Github < > https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > < > https://www.packtpub.com/application-development/java-ee-8-high-performance > > > > > Le mer. 16 sept. 2020 à 12:59, Maxim Solodovnik <solomax...@gmail.com> a > écrit : > > > Hello Romain, > > > > why is it so important not to have dependencies? > > > > On Wed, 16 Sep 2020 at 17:20, Romain Manni-Bucau <rmannibu...@gmail.com> > > wrote: > > > > > HI everyone, > > > > > > we talked of it a lot but i only took some time to work on it this > > morning: > > > https://issues.apache.org/jira/browse/OPENJPA-2831 > > > > > > Dropped commons-collections4 from our stack (for now just copying the > few > > > classes we use but it enables more easily drop code and abstractions we > > > don't use). > > > > > > I suspect the next dependencies we can drop are serp and > commons-logging, > > > then we would be "pure" (ie only depend on jpa spec and asm - not sure > > this > > > one can be dropped). Serp is "frozen" and should be replaced by direct > > asm > > > code but it requires some investment. Commons logging is easier to drop > > but > > > is a breaking change (in terms of config) we can desire to avoid so > maybe > > > for next round ;). > > > > > > Hope it makes sense. > > > > > > Romain Manni-Bucau > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > <https://rmannibucau.metawerx.net/> | Old Blog > > > <http://rmannibucau.wordpress.com> | Github < > > > https://github.com/rmannibucau> | > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > > > < > > > > > > https://www.packtpub.com/application-development/java-ee-8-high-performance > > > > > > > > > > > > > -- > > Best regards, > > Maxim > > > -- Best regards, Maxim