As other posters noted, the spark (s :) namespace refers to the new components introduced with Flex 4, while the halo / mx (mx :) namespace refers to the older components.
They can be used together, which is necessary, since for all mx components there are no equivalent equivalents (noticeable omissions are DataGrid, Tree, DividedBox, etc.). Some of the motives for the new spark components include: Separation of form from function, which means that the spark components are very skin-friendly. Lighter weight for better performance (you can use s: Group to build your components, rather than mx: Canvas, which is much more efficient since s: Group has no visual characteristics such as padding or border).
: , , /, . , , - ( DropDownLists , mx?) halo/mx , , .