# Package size and scope?

**URL:** <https://discourse.julialang.org/t/package-size-and-scope/7309>\
**Category:** Internals & Design\
**Created:** [November 25, 2017, 7:38pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309 "2017-11-25T19:38:20Z")\
**Posts on this page:** 6\
**Page:** 2

<div class="post-metadata">

**Author:** ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)\
**Post date:** [November 28, 2017, 1:52pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/21 "2017-11-28T13:52:12Z")

</div>

I do not understand the problem associated with a 0.9 s loading time that the user do once per session. (?). Am I missing something? I usually do a regular package loading and then work for the whole day on other functions or when finished, my programs can run for days/months and 0.9 s on top of this timescale seems more than reasonable.

---

<div class="post-metadata">

**Author:** ![shorty66](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shorty66/32/3254_2.png) [@shorty66](https://discourse.julialang.org/u/shorty66)\
**Post date:** [November 28, 2017, 2:37pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/22 "2017-11-28T14:37:45Z")

</div>

As packages are organized as github repos, i think a major point to think about is contributors and maintainers:  
If packages are too small in terms of functionality, they may not attract a critical mass of contributors and users to write issues or PRs.  
This may have a negative impact on the willingness of the maintainer to actively work on the package.

I think it may be a good idea to split up packages if the original maintainer cannot cope with the size of the package and other contributors are willing to maintain their part of the package.

I think we should rather err on the large side of packages in order to guarantee a critical mass of users.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [November 28, 2017, 2:43pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/23 "2017-11-28T14:43:00Z")

</div>

> [@shorty66](#):
>
> I think it may be a good idea to split up packages if the original maintainer cannot cope with the size of the package and other contributors are willing to maintain their part of the package.
> 
> I think we should rather err on the large side of packages in order to guarantee a critical mass of users.

Well, organizations also help with this if they are good about building teams to maintain the full set of packages.

---

<div class="post-metadata">

**Author:** ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Post date:** [December 1, 2017, 6:07pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/24 "2017-12-01T18:07:17Z")

</div>

> [@Tamas\_Papp](#):
>
> Do you wipe your package directory on a regular basis?

Yea, all the time. Worst is when I’m on a flight or slow internet. // or in front of an audience/boss

Then I’m like, why did someone include all of StatsBase just so they could pick a random element

* * *

also, I got these numbers for running a fresh `using`:

```julia
julia> @time using Pluck
INFO: Recompiling stale cache file /Users/dan/.julia/lib/v0.6/Pluck.ji for module Pluck.
  2.074299 seconds (1.79 M allocations: 90.924 MiB, 2.02% gc time)

julia> @time using StatsBase
INFO: Recompiling stale cache file /Users/dan/.julia/lib/v0.6/StatsBase.ji for module StatsBase.
  5.130169 seconds (160.26 k allocations: 9.352 MiB)

```

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [December 1, 2017, 6:28pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/25 "2017-12-01T18:28:26Z")

</div>

I think it would be neat if some of these huge packages could be split into sub- packages that could be used by themselves. As you say: bringing in a huge package with multiple package dependencies just so that I can use a single function out of it does not seem an optimal use of anyone’s time.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 1, 2017, 7:53pm UTC](https://discourse.julialang.org/t/package-size-and-scope/7309/26 "2017-12-01T19:53:55Z")

</div>

The current package managers is very slow, comparing numbers from it is pointless. As an example, here is a speed comparison between the new one and the old one:

[![](https://global.discourse-cdn.com/julialang/original/3X/9/4/9442a8b2f67eb00c4a24dbc30f3d236b843a4dc8.jpeg "Pkg3 vs Pkg2") ](https://www.youtube.com/watch?v=s8iRe_pSVYE)

[Previous page](https://discourse.julialang.org/t/package-size-and-scope/7309.md?page=1)
