Having written code which renders Arabic text, I found “joining” up the letters to be quite simple. It's just a few rules to choose which glyph to display for each character depending on context. The tricky bits, I found, is in integrating a right-to-left script with systems which were made with only left-to-right in mind.