Ly / ><>,
20 19 bytes
Try it with ><>!
Try it with Ly!
These languages are very similar, as Ly is based off ><>. However, Ly does not have 2D execution and interprets
& differently, which I took advantage of here.
Both languages will start by pushing
abc to the stack.
For ><>, the
& instruction moves values to and fro the register. Two in a row will push a value to the register and then take it straight back, essentially a NOP.
& is a modifier that makes an instruction perform its function on the entire stack.
o means the same thing for both languages, but since it is modified by
& in Ly, it will print the whole stack, outputting
abc. In ><>, it will only output
c (as it is printed from the top down)
v is a NOP in Ly, which skips it and goes straight to
;, ending execution. ><> will instead treat it as a pointer, sending the IP downwards.
It then hits another arrow, sending the IP left. Here, it meets two
o signs, outputting
EDIT: Saved a byte (and fixed ><> crashing)