Julia:Python::RISC:CISC imo. The first example that comes to mind is that in Python, you'd write:
`A = [ x for x in range(10) if not isprime(x) ]`
In Julia, you'd instead write:
`A = [ x for x in 0:10 if !isprime(x) ]`
It feels like as if having an infix operator for not is redundant - why add a separate & distinct symbol when it means the exact same thing?
There's also the experience of writing iterables/generators, where in Julia you have to subtype the very specific Base.iterate function, but in Python you can just append the magical `yield` to your function.
Overall in Julia I feel like there is less 'magic', but with the added benefit of having a very clear picture of what's happening.
`A = [ x for x in range(10) if not isprime(x) ]`
In Julia, you'd instead write:
`A = [ x for x in 0:10 if !isprime(x) ]`
It feels like as if having an infix operator for not is redundant - why add a separate & distinct symbol when it means the exact same thing?
There's also the experience of writing iterables/generators, where in Julia you have to subtype the very specific Base.iterate function, but in Python you can just append the magical `yield` to your function.
Overall in Julia I feel like there is less 'magic', but with the added benefit of having a very clear picture of what's happening.