# Idea Julia Lite or 'Juliette'?

**URL:** <https://discourse.julialang.org/t/idea-julia-lite-or-juliette/34076>\
**Category:** New to Julia\
**Created:** [February 2, 2020, 11:00am UTC](https://discourse.julialang.org/t/idea-julia-lite-or-juliette/34076 "2020-02-02T11:00:31Z")\
**Posts on this page:** 1\
**Showing post:** 55

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [February 2, 2020, 9:58pm UTC](https://discourse.julialang.org/t/idea-julia-lite-or-juliette/34076/55 "2020-02-02T21:58:35Z")

</div>

With Julia, you have to learn _one_ rule about vectorization: if you want elementwise/broadcasting operations, [use a dot](https://julialang.org/blog/2017/01/moredots/). This applies to every function, from `+` to `exp` to less-algebraic functions like `occursin` or `first`.

It’s true that this is different from e.g. Matlab, and new languages take time getting used to. But it’s not a rule that is hard to explain, I think, whereas adding lots of exceptions to a rule makes things harder to learn in the long run.

That’s the main reason why we removed `array + scalar`. It was initially removed on algebraic grounds ([https://github.com/JuliaLang/julia/pull/5810](https://github.com/JuliaLang/julia/pull/5810)), then that change was reverted because it was too inconvenient ([https://github.com/JuliaLang/julia/pull/7226](https://github.com/JuliaLang/julia/pull/7226)) for `+` to be an exception to all the _other_ vectorized operations that we had _at the time_, and then finally it was removed again ([https://github.com/JuliaLang/julia/pull/22932](https://github.com/JuliaLang/julia/pull/22932)) when all of the other implicit vectorization had been removed in favor of “dot calls” and `+` was the last holdout. (Moreover, it turns out that there are strong reasons to encourage people to use “dot calls” uniformly for vectorization, besides mere consistency, because [they enable loop fusion optimization](https://julialang.org/blog/2017/01/moredots/).)

Believe me, your concern about `array + scalar` was considered _very_ seriously over a long period of time as you will find if you read the linked issues. Although the end result is that Julia is indeed different from Matlab or Numpy, this difference is compensated by having a rule that you have to learn only once, for _all_ functions.

---

_[View the full topic](https://discourse.julialang.org/t/idea-julia-lite-or-juliette/34076)._
