Hacker News new | past | comments | ask | show | jobs | submit login

Sure. I'm 4 months in of fulltime work on a Sproutcore-based app that is the basis of our startup - we haven't yet launched so I can't point you to it yet unfortunately but I can give you my experiences. In a nutshell:

pros: friendly and helpful community, a number of things that 'just work' and a vocally espoused observers paradigm for wiring up your app that, when it works, is very nice and tidy. Very readable and well documented code base (I've read well over 50% of the codebase now, keep it open in a window all day). Can look very impressive in demos. Deals pretty well with most browsers and platforms (particularly iOS friendly).

cons: Compared to Rails, jQuery, etc... a relatively small community and not a lot of examples to learn from. The wiki is really hit-or-miss and the codebase is pretty much the only reliable source of documentation. Some of the features feel half-baked and like 'some person's pet project'. Some things don't 'just work' and can require a lot of hacking (not in the good way). The build tools are a little slow, which adds 15 seconds or so to every reload (which I do many many times every day, it adds up). Refactoring is a real pain (especially compared to our backend, written in java using eclipse), there just aren't that many tools. That's true of most javascript, but the sproutcore build tools add some 'macros' to javascript (like sc_require();) that really confuse the javascript refactoring tools that do exist.




So refactoring is difficult due to the way in which you interact with Sproutcore's API, or because of a lack of refactoring tooling? The two are completely different. Refactoring != Tooling.


That's true, I shouldn't mix up the two - the real complaint is about the tooling, but it's in refactoring tasks that I really feel it. For example, say I want to rename a class: If I'm in java/eclipse I can command-option-R, type the name, and press enter. Total time about 2 seconds. If I'm in sproutcore I have to search/replace the whole project searching for references which takes minutes and is tedious.

The reason it is difficult is because you can't use any of js tools that leverage a js interpreter - your code isn't valid until it's run through the sproutcore build system (which, as previously mentioned, is pretty slow).


That is pretty much standard in dynamic languages, including Ruby and Python. It's what I miss most about strongly typed languages, like Java and Scala.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: