Ich habe SproutCore in der Vergangenheit benutzt. Mir wurde ein Projekt zur Entwicklung automatisierter Web-Testskripte mit dem Tool Selenium RC übertragen. Selenium RC wurde entwickelt, um auf reguläre HTML-IDs und Klassen abzuzielen, aber SproutCore kompiliert die Element-IDs so, dass die Element-IDs pseudozufällig sind. Daher musste ich die API für SproutCore herausfinden, damit ich die Element-IDs aus dem Ansichtsbaum herausfinden konnte.
SproutCore hat eine enge Analogie zu Compilern. Wenn Sie zu viele Elemente importieren, die für Ihre Webseite erstellt werden, besteht die Möglichkeit, dass die IDs im Namespace kollidieren, wenn Sie Ihre Anwendung mit jQuery erstellen. Wenn Sie Ihre Webseite mit jQuery erstellen, sind alle IDs von HTML-Elementen global. Es gibt keinen lokalen Geltungsbereich wie in einer kompilierten oder interpretierten Sprache.
SproutCore verwaltet den HTML-Inhalt für Sie. Die Ansichten werden mit Javascript aufgebaut und dann kompiliert. Wenn Sie das SproutCore-Lernprogramm durcharbeiten (und ich bin mir sicher, dass es in SproutCore keine Dokumentation gibt, sollten Sie versuchen, dies für eine Geschäftsanwendung zu vermeiden), werden Sie feststellen, dass Ihr fertiges Projekt ID-Elemente von "sc - ###" enthält. Namespace-Kollisionen werden auf der Website behoben, sodass Sie schneller arbeiten können.
Es gibt jedoch große Bedenken. Die Dokumentation ist nicht gut genug, um zu erklären, warum die Leute sie verwenden sollten. Das Projekt ist OpenSource, aber wenn Sie sich ein Bild davon machen, wie die Ansichten aufgebaut sind, wird es schwierig, das niedrigere Javascript zu verstehen. Javascript ist eine funktionale Sprache, aber ich finde etwas falsch mit dynamischen funktionalen Sprachen. Es gibt einfach zu viel Flexibilität. Ich stecke Scala ein.
Die letzte Ausgabe. SproutCore kann langsam sein. Aber es ist ein Preis zu zahlen