Раніше я використовував SproutCore. Мені було призначено проект з розробки автоматизованих сценаріїв веб-тестування за допомогою інструменту під назвою Selenium RC. Selenium RC був побудований для націлювання звичайних HTML-кодів і ідентифікаторів і класів, але SproutCore збирає ідентифікатори елементів так, що ідентифікатори елементів є псевдо випадковими, тому мені довелося розібратися в API для SproutCore, щоб я міг витягнути ідентифікатори елементів з дерева перегляду.
SproutCore має близьку аналогію з компіляторами. Якщо у вас занадто багато елементів, які ви імпортуєте, створюючи для своєї веб-сторінки, є ймовірність зіткнення простору імен з ідентифікаторами, якби ви збирали свою програму з jQuery. Коли ви будуєте свою веб-сторінку за допомогою jQuery, всі ідентифікатори елементів HTML - глобальні. Не існує такого поняття, як місцевий обсяг, як у складеній чи інтерпретованій мові.
SproutCore закінчує керування вмістом HTML для вас. Перегляди створюються за допомогою JavaScript і потім компілюються. Якщо ви пройдете підручник SproutCore (і я погоджуюся, що SproutCore не вистачає в документації, тому ви повинні спробувати уникнути його для ділового додатку), ви побачите, що ваш готовий проект містить елементи ID "sc - ###". Зіткнення простору імен вирішуються на веб-сайті, що дає вам можливість працювати швидше.
Однак є основні проблеми. Вони в документації не працюють досить добре, пояснюючи, чому люди повинні її використовувати. Проект є відкритим кодом, але перекопуючи свій шлях вниз, щоб зрозуміти JavaScript нижчого рівня для того, як побудовані погляди стають болючими. Javascript - це функціональна мова, але я просто знаходжу щось не так з динамічними функціональними мовами. Просто занадто велика гнучкість. Я підключаю Скалу.
Останній випуск. SproutCore може бути повільним. Але це ціна, яку потрібно платити