# 2-based indexing

**URL:** <https://discourse.julialang.org/t/2-based-indexing/134275>\
**Category:** General Usage\
**Created:** [December 2, 2025, 7:47am UTC](https://discourse.julialang.org/t/2-based-indexing/134275 "2025-12-02T07:47:37Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![healyp](https://avatars.discourse-cdn.com/v4/letter/h/67e7ee/32.png) [@healyp](https://discourse.julialang.org/u/healyp)\
**Post date:** [December 2, 2025, 7:47am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/1 "2025-12-02T07:47:37Z")

</div>

The 1.13 alpha release announcement talks about 2-based indexing. I can find no useful discussion of what this means. Can anybody please explain the value / significance of 2-based indexing of arrays?

---

<div class="post-metadata">

**Author:** ![rfourquet](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rfourquet/32/3610_2.png) [@rfourquet](https://discourse.julialang.org/u/rfourquet)\
**Post date:** [December 2, 2025, 7:53am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/2 "2025-12-02T07:53:19Z")

</div>

That was a lovely joke. Users would expect an alpha-1 release to come up before an alpha-2 relase, which wasn’t the case here. To explain the absence of alpha-1, the hint was that julia will start being a 2-based indexing language, i.e. indices of arrays, and counting in general, would start at 2 (1-based indexing is a somewhat hot topic, some people coming from other 0-based indexing language (C, python ,…) voice their dislike for 1-based indexing). This obviously can’t happen, it’s utterly unpractical, and would be breaking. The real reason why alpha-1 wasn’t released is explained in the post.

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [December 2, 2025, 7:53am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/3 "2025-12-02T07:53:46Z")

</div>

Continuing the discussion from [Julia v1.13.0-alpha2 is now available](https://discourse.julialang.org/t/julia-v1-13-0-alpha2-is-now-available/134267):

> [@Julia v1.13.0-alpha2 is now available](https://discourse.julialang.org/t/julia-v1-13-0-alpha2-is-now-available/134267/1):
>
> In case you’re wondering why the first pre-release for 1.13.0 is alpha2 rather than alpha1, that’s because Julia is moving to [2-based indexing](https://github.com/simonster/TwoBasedIndexing.jl) in 1.13. (Not actually—there is a 1.13.0-alpha1 git tag, we just opted not to make a full pre-release from it.)

The post indicates it’s a joke?

---

<div class="post-metadata">

**Author:** ![healyp](https://avatars.discourse-cdn.com/v4/letter/h/67e7ee/32.png) [@healyp](https://discourse.julialang.org/u/healyp)\
**Post date:** [December 2, 2025, 7:59am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/4 "2025-12-02T07:59:08Z")

</div>

Maybe save japes like that until early April?

---

<div class="post-metadata">

**Author:** ![StevenSiew](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevensiew/32/218393_2.png) [@StevenSiew](https://discourse.julialang.org/u/StevenSiew)\
**Post date:** [December 2, 2025, 8:46am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/5 "2025-12-02T08:46:39Z")

</div>

I am glad now that Array indexes are all even. Odd indexes are well odd and not even even. Makes it hard to form a balanced tree.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [December 2, 2025, 9:00am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/6 "2025-12-02T09:00:52Z")

</div>

Thanks for this thread; I would have missed the great pun!

We should definitely move to 2-indexing in Julia 2.0 (and consistently 3-indexing in Julia 3.0)

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [December 2, 2025, 12:32pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/7 "2025-12-02T12:32:50Z")

</div>

I laughed, but I agree there are better places for it than release announcements. This very topic is proof that the humor of needlessly expanding the 1-based versus 0-based argument is not actually obvious to everyone, and the chuckle is not worth forcing everyone to recognize which parts of an informative text are jokes.

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [December 2, 2025, 2:42pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/9 "2025-12-02T14:42:00Z")

</div>

It is a _joke_ about starting counts from 2 in every way. It’s not actually happening. The reality is that 1.13.0-alpha1 was not released.

---

<div class="post-metadata">

**Author:** ![captainoblivious](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/captainoblivious/32/220570_2.png) [@captainoblivious](https://discourse.julialang.org/u/captainoblivious)\
**Post date:** [December 14, 2025, 9:12pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/10 "2025-12-14T21:12:51Z")

</div>

Is it possible to « take down » that joke anytime soon, as it actually impacts CI of packages ?

The (relatively standard) CI test job « pre-Ubuntu » release is picking up 1.13-alpha2 and an error occurs in a dependency.

I was lucky enough to find this post before having to look deeper into the issue

---

<div class="post-metadata">

**Author:** ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)\
**Post date:** [December 14, 2025, 9:18pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/11 "2025-12-14T21:18:20Z")

</div>

I think there’s some misunderstanding. the joke was just like 10 words in a Discourse post and cannot possibly affect CI, so you are probably being affected by some other issue.

---

<div class="post-metadata">

**Author:** ![captainoblivious](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/captainoblivious/32/220570_2.png) [@captainoblivious](https://discourse.julialang.org/u/captainoblivious)\
**Post date:** [December 14, 2025, 9:37pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/12 "2025-12-14T21:37:47Z")

</div>

Ok this is flying way over my head.

And I guess I will have to put my nose on that issue after all.

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [December 15, 2025, 7:21am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/13 "2025-12-15T07:21:13Z")

</div>

There is no change in functionality regarding indexing.

But if you are lost in trying to figure out why your CI is failing, maybe open a post and explain, where that is the case and where you are stuck?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [December 15, 2025, 8:06am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/14 "2025-12-15T08:06:31Z")

</div>

The v1.13 series of releases started with a release tagged `alpha2` instead of the more usual `alpha1`. So the Discourse post announcing that release made a little joke about that surprising number, but the actual number of the release doesn’t matter for alpha versions.  
Your CI picking up 1.13-alpha2 is perfectly normal and expected, that’s precisely what these early releases are for, to detect bugs way before the actual v1.13.0. The fact that your CI fails is problematic however, and should ideally be reported on the JuliaLang main repo.

---

<div class="post-metadata">

**Author:** ![Sevi](https://avatars.discourse-cdn.com/v4/letter/s/c67d28/32.png) [@Sevi](https://discourse.julialang.org/u/Sevi)\
**Post date:** [December 15, 2025, 2:03pm UTC](https://discourse.julialang.org/t/2-based-indexing/134275/15 "2025-12-15T14:03:51Z")

</div>

This is in no way intended to insult or ridicule anyone: I just can’t help but notice the irony in your username and the circumstance of your post 😅 😇

I’ll see myself out now…

---

<div class="post-metadata">

**Author:** ![ararslan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ararslan/32/3825_2.png) [@ararslan](https://discourse.julialang.org/u/ararslan)\
**Post date:** [December 16, 2025, 12:01am UTC](https://discourse.julialang.org/t/2-based-indexing/134275/16 "2025-12-16T00:01:23Z")

</div>

I apologize for any confusion my joke caused; I thought it was clear that it was a joke, but evidently not!

It seemed worthwhile to note that users shouldn’t have expected to see a 1.13.0-alpha1 release but would see a 1.13.0-alpha1 tag in the repository. The actual reasons why are not particularly interesting or generally relevant (e.g., a bug in code that only gets executed on release builds, among a series of other random things) so it seemed like an opportunity to add a bit of Julia-related humor, which I’ve done [previously](https://discourse.julialang.org/t/julia-v1-12-1-has-been-released/133257) as well.

I do love to make jokes, though I can’t claim to make _good_ ones. 😅 But perhaps I could be a bit more judicious in where I make them.
