# Why not always use Revise?

**URL:** <https://discourse.julialang.org/t/why-not-always-use-revise/64589>\
**Category:** New to Julia\
**Created:** [July 13, 2021, 4:11pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589 "2021-07-13T16:11:08Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![orome](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/orome/32/26965_2.png) [@orome](https://discourse.julialang.org/u/orome)\
**Post date:** [July 13, 2021, 4:11pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/1 "2021-07-13T16:11:08Z")

</div>

Is there any reason not to always be `use`-ing Revise? If so, what are the risks or drawbacks?

---

<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:** [July 14, 2021, 9:38am UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/2 "2021-07-14T09:38:56Z")

</div>

I do. I don’t see any reason not to.

---

<div class="post-metadata">

**Author:** ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)\
**Post date:** [July 14, 2021, 11:37am UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/3 "2021-07-14T11:37:12Z")

</div>

I was about to give up on Julia until I found Revise. Without it, development in Julia is really painful.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [July 14, 2021, 11:44am UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/4 "2021-07-14T11:44:44Z")

</div>

You can put it in your startup script and then you will always use it.

---

<div class="post-metadata">

**Author:** ![fbanning](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fbanning/32/14972_2.png) [@fbanning](https://discourse.julialang.org/u/fbanning)\
**Post date:** [July 14, 2021, 12:06pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/5 "2021-07-14T12:06:24Z")

</div>

> [@StefanKarpinski](#):
>
> You can put it in your startup script and then you will always use it.

My startup script automatically activates the environment of the cwd. This may be a silly question but is there a way to use the Revise installation of another environment (say my base 1.6 environment) without having to add Revise to my current working env? Afaik this is fundamentally impossible, correct?

I’m wondering about this because while I personally may like to use Revise, other people working on the same project might not want to use it (and I don’t want to shove it down their throat by including it in all the scripts). Should I just add Revise to the project env, then add a line to the startup script to look for “Revise” in Project.toml and use it if it exists? Thanks for any advice in advance. 🙂

---

<div class="post-metadata">

**Author:** ![tsela](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tsela/32/52174_2.png) [@tsela](https://discourse.julialang.org/u/tsela)\
**Post date:** [July 14, 2021, 12:19pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/6 "2021-07-14T12:19:01Z")

</div>

Julia environments are stacked. That means that even when you activate another environment, everything that’s in your 1.6 environment is also available! So if you have `Revise` in your base environment you can simply do `using Revise`, even if you have another environment activated, and it will just work.

This has been the way Julia works for ages, so I don’t get why you’d think it’s impossible.

---

<div class="post-metadata">

**Author:** ![fbanning](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fbanning/32/14972_2.png) [@fbanning](https://discourse.julialang.org/u/fbanning)\
**Post date:** [July 14, 2021, 12:35pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/7 "2021-07-14T12:35:32Z")

</div>

> [@tsela](#):
>
> Julia environments are stacked.

Thanks, that’s what I was hoping for. ([Relevant docs section](https://docs.julialang.org/en/v1/manual/code-loading/#Environment-stacks) for reference.)

> [@tsela](#):
>
> so I don’t get why you’d think it’s impossible

I simply did not know. Never thought of that possibility but it’s as smart as can be. Learn something new every day. 🙂

---

<div class="post-metadata">

**Author:** ![fph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fph/32/17159_2.png) [@fph](https://discourse.julialang.org/u/fph)\
**Post date:** [July 14, 2021, 12:41pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/8 "2021-07-14T12:41:42Z")

</div>

Are there future plans to integrate Revise.jl into the base Julia environment, so that it is always active? If it’s always a net positive, there should be no reason not to, right?

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 14, 2021, 12:44pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/9 "2021-07-14T12:44:51Z")

</div>

I’m also in favor to make it part of Julia, but [Should Julia recommend Revise? · Issue #564 · timholy/Revise.jl · GitHub](https://github.com/timholy/Revise.jl/issues/564)

---

<div class="post-metadata">

**Author:** ![orome](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/orome/32/26965_2.png) [@orome](https://discourse.julialang.org/u/orome)\
**Post date:** [July 14, 2021, 12:55pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/10 "2021-07-14T12:55:09Z")

</div>

That’s what I do, but as a noob I was wondering if it was Kosher. It sounds like it’s [more than that](https://github.com/timholy/Revise.jl/issues/564#issuecomment-787056770) even.

---

<div class="post-metadata">

**Author:** ![orome](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/orome/32/26965_2.png) [@orome](https://discourse.julialang.org/u/orome)\
**Post date:** [July 14, 2021, 1:48pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/11 "2021-07-14T13:48:58Z")

</div>

> Julia environments are stacked.

That inspires [another question](https://discourse.julialang.org/t/how-does-environment-stacking-work/64635).

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [July 14, 2021, 2:31pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/12 "2021-07-14T14:31:53Z")

</div>

Seeing your comment I just suggested/agreed Revise be included in Julia (1.7), to be done with it (not just in VS Code), at the linked Revise issue on here. Does it need to be a Julia issue to be noticed? Would core devs reject in in Julia (1.7)?

---

<div class="post-metadata">

**Author:** ![tsela](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tsela/32/52174_2.png) [@tsela](https://discourse.julialang.org/u/tsela)\
**Post date:** [July 14, 2021, 3:31pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/13 "2021-07-14T15:31:27Z")

</div>

You can add Revise to your base environment yourself, and add `using Revise` in your `startup.jl`, to get exactly what you wanted.

As for adding Revise to the standard lib, the core Julia and Revise developers have spoken against it many times. Adding something to the standard lib means slowing down development, as releases can only happen together with Julia releases (that includes solving bugs), and breaking changes can only be made when a major Julia release is made (i.e. at the moment not before Julia 2.0). Since Revise is still being updated often, this is just not a good prospect.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 14, 2021, 5:24pm UTC](https://discourse.julialang.org/t/why-not-always-use-revise/64589/14 "2021-07-14T17:24:46Z")

</div>

> [@tsela](#):
>
> Adding something to the standard lib means slowing down development

There must be a time limit to that principle
