# Roadmap for a faster time-to-first-plot?

**URL:** <https://discourse.julialang.org/t/roadmap-for-a-faster-time-to-first-plot/22956>\
**Category:** Internals & Design\
**Tags:** ttfp\
**Created:** [April 9, 2019, 1:22pm UTC](https://discourse.julialang.org/t/roadmap-for-a-faster-time-to-first-plot/22956 "2019-04-09T13:22:42Z")\
**Posts on this page:** 1\
**Showing post:** 156

<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:** [August 24, 2019, 1:44pm UTC](https://discourse.julialang.org/t/roadmap-for-a-faster-time-to-first-plot/22956/156 "2019-08-24T13:44:28Z")

</div>

> [@KestutisMa](#):
>
> “Tips and news about compiler latency improvements”.

1. If you can, make your code infer. That makes it compile a lot faster.
2. If it doesn’t infer, don’t put abstract types over things. Handling calculations with “how abstract it should be” is one of the slowest things. Just make inference call it Any.
3. If you can, use things in the system image. `Dict{Symbol,MyType{T}} where T` will require compiling all of the little parts, while `Dict{Any,Any}` is used in Julia so it won’t.
4. Avoid dictionaries if you can. Dictionaries are the devil’s type.
5. Try to avoid putting `Tuple` in a bunch of types. Accidentally putting `::Tuple` into a type adds an abstract type into a struct, which breaks (2), but then every size tuple will need to specialize a ton. If you don’t need type covariance… make it a `Vector{T}`.

That’s what the current state is. I’ll keep talking with the compiler people to see if there’s anything that could be helpful to make it less crucial for users to “follow the rules”. I think making type inference give up easier is probably the real solution here. `@nospecialize` doesn’t seem to do enough: I want a `@compiler_please_give_up_or_the_entire_internet_will_hate_me` macro.

---

_[View the full topic](https://discourse.julialang.org/t/roadmap-for-a-faster-time-to-first-plot/22956)._
