Geçmişte SproutCore kullanmıştım. Selenium RC adlı aracı kullanarak otomatik web testi komut dosyaları geliştirmek için bir projeye atandım. Selenyum RC, normal HTML kimliklerini ve sınıflarını hedeflemek için oluşturulmuştur, ancak SproutCore, öğe kimliklerini sahte rasgele olacak şekilde öğe kimliklerini derler, bu yüzden görünüm ağacından öğe kimliklerini balık tutabilmek için SproutCore için API'yi bulmak zorunda kaldım.
SproutCore, derleyicilere yakın bir benzetmeye sahiptir. Web sayfanız için oluştururken içe aktardığınız çok fazla öğeniz varsa, uygulamanızı jQuery ile oluşturacaksanız kimliklerde ad alanı çarpışması olasılığı vardır. Web sayfanızı jQuery ile oluştururken, HTML öğelerinin tüm kimlikleri geneldir. Derlenmiş veya yorumlanmış bir dilde olduğu gibi yerel kapsam diye bir şey yoktur.
SproutCore, HTML içeriğini sizin için yönetir. Görünümler javascript kullanılarak oluşturulur ve daha sonra derlenir. SproutCore öğreticisinden geçerseniz (ve SproutCore'un bir iş başvurusu için kaçınmaya çalışmanız için belgelerde eksik olduğunu kabul ediyorsanız), bitmiş projenizin "sc - ###" kimlik öğelerine sahip olduğunu göreceksiniz. Ad alanı çarpışmaları, daha hızlı çalışma potansiyeli vererek web sitesinde çözülür.
Ancak, büyük endişeler var. Belgeler, insanların neden kullanması gerektiğini açıklayan yeterince iyi bir iş yapmıyor. Proje açık kaynaklıdır, ancak görünümlerin nasıl oluşturulduğuna ilişkin alt düzey javascript'i anlamak için yolunuzu kazmak acı verici hale gelir. Javascript işlevsel bir dildir, ancak dinamik işlevsel dillerde yanlış bir şey buluyorum. Çok fazla esneklik var. Scala'yı takıyorum.
Son sayı. SproutCore yavaş olabilir. Ama bu bir bedel