# New scope solution

**URL:** <https://discourse.julialang.org/t/new-scope-solution/16707>\
**Category:** Internals & Design\
**Tags:** proposal\
**Created:** [October 23, 2018, 8:58pm UTC](https://discourse.julialang.org/t/new-scope-solution/16707 "2018-10-23T20:58:16Z")\
**Posts on this page:** 1\
**Showing post:** 227

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [January 30, 2019, 8:27am UTC](https://discourse.julialang.org/t/new-scope-solution/16707/227 "2019-01-30T08:27:30Z")

</div>

> [@stevengj](#):
>
> Was there any case in which the 0.6 semantics were honestly a real obstacle for you? Or is it just philosophically distasteful?

I ran into the soft/hard distinctions quite a bit. Not all the time, in fact rarely enough that I usually would not suspect them as the source of the problem so it would take some time to track down the resulting bugs. Which is why I was very relieved with the new scoping rules, I find them elegant and I also like the fact that _I get errors instead of the language trying to figure out what I meant._

> [@stevengj](#):
>
> The global scope semantics are mostly irrelevant to complex packages

I would argue with this, eg

> [@Another possible solution to the global scope debacle](https://discourse.julialang.org/t/another-possible-solution-to-the-global-scope-debacle/15894/152):
>
> Late to the party here. making everything outside of a function global, unless it is explicitly declared with local or let Would variables inside the body of a let block be global? (Presumably, yes, see [here](https://discourse.julialang.org/t/another-possible-solution-to-the-global-scope-debacle/15894/106).) If so, then IIUC this would nix being able to reliably copy/paste the body of a function into a let block (a common debugging strategy, whether performed manually or via Rebugger). For example, if I did this for a function which had a line first = true (defining a local variable named f…

Changing scoping can have a lot of unforeseen consequences (especially in corner cases) in a complex language. So in a sense, my objection to introducing _ad hoc_ rules is indeed philosophical: I am concerned that issues will surface later on, and for me the benefits just do not justify the risk of this (but of course, I am recognizing that other people have different preferences; I am just stating my own).

---

_[View the full topic](https://discourse.julialang.org/t/new-scope-solution/16707)._
