Local vs global scope again

Just to clarify (in case the :wink: wasn’t enough): I was joking. We don’t need to chastise anyone.

I think that a lot of confusion happens because people think about Julia as a “new” language, imagining that it may be immature, with a lot of low-hanging fruits for improvement. So if some part of the language is surprising, it must be because its designers didn’t know better, and this is a great opportunity to enlighten them. This happens with scope, why-dont-we-have-OOP, surface syntax, etc.

This is somewhat understandable — after all, 1.0 is not that old, and Julia may be a newcomer in certain fields. But at the same time Julia is very mature: it has been around for almost a decade now, and builds on half a century of experience in programming language design. Various ideas have been tried, tested, and refined, and incorporated into the language.

It follows that changes to core features of the language need very compelling arguments at this stage. IMO this is the key point that should be communicated in these discussions: it’s not that the Julia community is hostile to any fundamental change a priori, just that the burden of demonstrating the advantages and, most importantly, how the proposal integrates with Julia is on the person making it.

16 Likes