# Discussion on "Why I no longer recommend Julia" by Yuri Vishnevsky

**URL:** <https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151>\
**Category:** Community\
**Tags:** discussion\
**Created:** [May 16, 2022, 2:33pm UTC](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151 "2022-05-16T14:33:38Z")\
**Posts on this page:** 1\
**Showing post:** 314

<div class="post-metadata">

**Author:** ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)\
**Post date:** [July 5, 2022, 11:02am UTC](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151/314 "2022-07-05T11:02:13Z")

</div>

> For example, take the addition of matrix A and matrix B, yielding a matrix C. Let’s say A is 0-based and B is 1-based. This isn’t one of those offset indices applications where aligning A[1,1] and B[1,1] makes any sense, so we basically do `A.parent + B.parent`. But what should C’s indices be? 0-based, 1-based?

That’s an extremely dangerous way to think about the problem. Why does aligning indices not make sense? I expect `(A + B)[i,j] = A[i,j] + B[i,j]` (“location matters”). Indexing needs to be guided by a few axioms, the other key one being that `a[indxs][j] = a[indxs[j]]` implies that “the indices of the indices become the indices of the subset” (i.e., the indices of `indxs` become the indices of `a[indxs]`). We have good support for such axioms, except of course when people don’t implement them “properly.” Of course you can write a method `sum_without_worrying_about_indices` yourself, but that’s not what `+` should do.

The right answer to your question is, throw an error. And we do:

```julia
julia> A + B
ERROR: DimensionMismatch: dimensions must match: a has dims (Base.OneTo(3), Base.OneTo(4)), b has dims (OffsetArrays.IdOffsetRange(values=0:2, indices=0:2), OffsetArrays.IdOffsetRange(values=2:5, indices=2:5)), mismatch at 1
Stacktrace:

```

---

_[View the full topic](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151)._
