You dont' need to write loops to construct sets of objects. For example
you want to distribute N points on circle, in Python this looks like
points = []
for n in range(N):
points.append(ConstructPoint(sin((2Pi/N) * n), cos((2Pi/N) * n), 0))
in Julia
points = ConstructPoint.(sin(0:2pi/n:2pi), cos(0:2pi/n:2pi), 0)
For big sets of complex objects this makes difference, bacause, if
you want to place circles centers to generated points, in Python
you should write another loop like
circles = []
for pt in points:
circles.append(CreateCircle(pt, radius))
in Julia
circles = CreateCircle.(points, radius)
of course in Python you can use generators like
circles = (CreateCircle(pt, radius) for pt in points)
but you cant' use generators in other constructors say
Extrude(circles)
in julia you can
Extrude.(circles)
Julia language has many more features look at.
https://julialang.org/
more examples on library page.