uhmm, I believe this is a Perl language motto. I am not sure Julia design goes on that direction, where did you find this association? Such motto is also often not seen as that much positive: https://www.quora.com/Whats-the-one-programming-language-you-refuse-to-use-and-why
I am very accustomed using enumeration as array indexes.
This can be done, with a small conversion before:
julia> @enum Fruit apple=1 orange=2 kiwi=3
julia> ['a', 'b', 'c'][Int(orange)]
'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)
have not seen such weird scoping rules yet.
Not being able to define new types inside function is exceedingly common, C does not allow it, for example. The “no const in local scope” is more of a matter of implementation, nobody ever implemented this feature as it is not really useful (I think it may be implemented in the future as a crutch for the programmer). The hard vs. soft scoping rules were discussed to exhaustion through the years (you will find a lot of discussions in this forum). It is just a way to make the life of a beginner in the REPL easier, for anyone coding in a script/package it is irrelevant.