The claim is Arc is agile and short... The Arc one has too many ()() all over the place.
The arc one is also less powerful, because it uses different function invocations for different types of events.
It's also likely more people will understand the python+pygame version. More people do currently understand the python version... hardly anyone uses Arc.
You need to understand non-common concepts. You also need to understand how to create functions - rather than just call functions.
Does that Arc one mean when the key down happens, or when a key up happens? Or maybe it means in between the key press and key down. Also, when will that code be called?
It's magic. Will it be called from a separate thread, or some other Magic time... before or after the screen is to be updated? What else is going on at that time in the program? With the Arc version you have no idea... it's not explicit.
Also Arc doesn't have first class events. It could have yes, but it doesn't.
ps. the python code above was mangled by the buggy Arc program running this forum.
Here is the code redone for simplicity without the extra shortness and power expressed in the other version.
.
for e in pygame.event.get():
if e.type == KEYDOWN:
if e.unicode == 'u':
shape.rotate()
elif e.unicode == 'j':
shape.drop()
elif e.unicode == 'h':
shape.move(-1)
elif e.unicode == 'k':
shape.move(1)
Or the declarative python version:
.
dict( u=rotate , j=drop , h=lambda:move(-1) , k=lambda:move(-1))