Currently, there are 3 text primitives in Spark: SimpleText, RichText, and RichEditableText. Please see http://opensource.adobe.com/wiki/display/flexsdk/Spark%20Text%20Primitives for more information on this.
As part of the customer usability feedback, we are going to add a Spark Label. This Label control will essentially be a SimpleText built on top of a UIComponent. There are two reasons for this: 1) a customer (new or migrating from Flex 3) expects a Label control 2) Label will work in both Halo and Spark containers.
Based on performance numbers we have already done (see Note 1), we have decided that there is not a big enough performance gain between SimpleText and Label to keep SimpleText around. There are too many concerns with customer usability to adding yet another text primitive. Performance for Label is worse than SimpleText, but in the big picture of a Flex application, this difference turns out to be minimal. Ideally, we would like to take any performance gain we can or else we may wind up getting "nickled and dimed" to death, but because of usability concerns, this nickel turns out to be one we are willing to accept. This also does not back us in to a corner of having to support a component that is only marginally better in terms of performance. In the future, through other text performance gains, we may be able to justify this addition to a confusing set of text primitives, but this will not happen in the Flex 4 time frame.
Performance numbers have also shown that there is little delta between RichText and RichEditableText. We've determined it may be possible to combine RichText and RichEditableText from a performance stand-point, but it is out of scope currently as there are still some issues that need to be worked out, like RichEditableText supporting truncation. Instead, RichText will be made a UIComponent. The performance degredation for making RichText a UIComponent were similar to SimpleText vs Label (around 50 ms lost on 240 RichTexts). We've also determined that we need atleast 2 different text components because there was also a large performance delta between RichText/RichEditableText and SimpleText/Label.
To summarize the decisions we've made:
These decisions are not easy, and performance is a big concern, but it has to be weighed against customer usability.
If you have any other thoughts or concerns on the matter, please comment on this wiki page. The contributors and approvers will be monitoring it.
Note 1: The summary of the performance numbers: