textProperty

TextArea does NOT store the document as a String, it is stored as a list of strings where each item in the list does NOT contain a new line character.

Therefore, getting/setting text is O(n) where n is the number of lines.

IMHO, the trade-off, with everything else being much faster is well worth it! e.g. JavaFX's TextArea is painfully slow inserting a single character (for a moderate length document), because it needs to recreate a String containing the entire document.

If you bind this property, you should also set readOnly to true, as Themes may style a read-only TextArea differently. If this is bound, then the TextArea cannot be altered by the user regardless of readOnly.