title: Where am I wrong about my project and these Javascript Frameworks?
body: <p>First off, the barest bones of the project I wish to create is a wiki engine implemented as a single page web app. I plan on having a set of features available from the  get-go with plenty of feature additions down the road.</p>
  
  <p><strong>Basic Features</strong></p>
  
  <ul>
  <li>page creation (creates both wiki article and discussion forum for that article)</li>
  <li>markup and WYSIWYG ala <a href="http://markitup.jaysalvat.com/examples/markdown/">markitup</a></li>
  <li>on-the-fly conversion between markup / html / WYSIWYG</li>
  <li>a side bar to quick navigate</li>
  <li>a top toolbar for choosing edit/view</li>
  </ul>
  
  <p><strong>Advanced Features</strong></p>
  
  <ul>
  <li>configurable side bar to navigate via different method</li>
  <li>configurable toolbar (possibly add markup language of choice)</li>
  <li>tags</li>
  <li>editable todo's</li>
  <li>drag and drop file uploads and image attachments</li>
  </ul>
  
  <p>The engine would originally consist of the most basic page creation, markup and WYSIWYG editing, and saving. I would eventually like to extend this basic engine with drag and drop image support, file uploads, live data graphs, and a sidebar for customizing views.</p>
  
  <p>I have done a fairly extensive search for a decent project from which to base my project off, but other than TiddlyWiki there does not seem to be any good javascript based wiki engines. I also considered applying Jquery on top of existing wiki engines but I believe I would end up rewriting it eventually anyway (Plus its just more exciting to add the features I want as I go). Either way I have arrived at implementing this beast with a javascript library + framework. </p>
  
  <p>I know that one cannot really compare some of these frameworks against each other as they are very much not apples to apples. I have tried to frame any comparison comments/questions against comparable pieces of the respective frameworks but I am open to being corrected.</p>
  
  <p>So here we go:</p>
  
  <p>Based on my own research and opinions I have narrowed the list down to the items below. I intentionally left out things such as SproutCore, corMVC, YUI, and others as I, in my limited capacity, thought the below items would be a better fit.</p>
  
  <p><strong>My Options</strong></p>
  
  <ul>
  <li><a href="http://jquery.com/">jquery</a> + <a href="http://jqueryui.com/">jqueryUI</a> + <a href="http://documentcloud.github.com/backbone/">backbonejs</a></li>
  <li><a href="http://knockoutjs.com/">knockoutjs</a></li>
  <li><a href="http://www.javascriptmvc.com/">javascriptMVC</a></li>
  <li><a href="http://dojotoolkit.org/">Dojo</a></li>
  <li><a href="http://www.sencha.com/">ExtJS</a></li>
  <li><a href="http://cappuccino.org/">Cappuccino</a></li>
  </ul>
  
  <hr>
  
  <h2>jquery/UI + backbonejs</h2>
  
  <p><em>Overall</em></p>
  
  <blockquote>
    <p>From what I've read this combination is used and beloved by many and is very flexible and extensible. My major concern is that this combination is simply not the best jumping off point for developing the more desktop oriented UI interface. </p>
  </blockquote>
  
  <p><em>UI</em></p>
  
  <blockquote>
    <p>While jQueryUI or jqueryTools might be competitive they certainly do not seem to be on-par with the UI capabilities of other frameworks. Specifically they seem to be heavy on the effects but lacking on decent layout slicing support.</p>
  </blockquote>
  
  <h2>javascriptMVC</h2>
  
  <p><em>Overall</em></p>
  
  <blockquote>
    <p>JavascriptMVC to me looks like it is essentially jquery + MVC(jqueryMX) extensions, along with a few other apps for documenting(documentJS), functional tests(funcUnit), and code and dependency management(stealJS). Beyond the benefits of the additional module, I think the functional debate really comes down to backbonejs vs. jqueryMX Am I correct on this and has anyone worked with or compared both?</p>
    
    <blockquote>
      <ul>
      <li>Features: jupiter's (maker of jMVC) overview of their <a href="http://jupiterit.com/news/javascriptmvc-features">features</a></li>
      <li>Link to <a href="https://github.com/jupiterjs/jquerymx">jqueryMX</a></li>
      </ul>
    </blockquote>
  </blockquote>
  
  <p><em>UI</em></p>
  
  <blockquote>
    <p>JavascriptMVC adds the <a href="https://github.com/jupiterjs/mxui">MXUI</a> items on top of whatever is available for Jquery so I think at the very least it is a slight win in that category. </p>
  </blockquote>
  
  <h2>knockoutjs</h2>
  
  <p><em>Overall</em></p>
  
  <blockquote>
    <p>My thoughts and concerns on this on this are very similar to the jquery + backbone comments. They both seem to offer similar features but just from a different perspective. An oft cited downside is that knockoutjs couples business logic and presentation too tightly with the data-bind's and that this binding method can break down for complex UI interaction but I would love to hear why that is a non-issue.</p>
    
    <blockquote>
      <ul>
      <li><a href="http://news.ycombinator.com/item?id=1810665">Discussion</a> of backbone vs knockoutJS concepts</li>
      <li><a href="http://blog.stevensanderson.com/2010/07/05/introducing-knockout-a-ui-library-for-javascript/">Features</a> of knockoutjs</li>
      </ul>
    </blockquote>
  </blockquote>
  
  <p><em>UI</em></p>
  
  <p>Blank at the moment</p>
  
  <h2>Dojo &amp; ExtJS</h2>
  
  <p><em>Overall</em></p>
  
  <blockquote>
    <p>I am going to combine the discussion Dojo and ExtJS because I know the least about them and they seem to play in nearly the same space. Most of the information on stackoverflow about these two seems to be out-of-date. From what I have seen is that they are both large frameworks that are good for desktop caliber app implementation. Dojo had been chided for poor documentation but that seems to be no longer the case. ExtJS of course has the commercial license, but it is really reasonable for what you get and I wouldn't hold that against it too much. The widgets in ExtJS seem to be somewhat more professionally done than Dojo, but I could certainly be corrected there. I would be interested to hear from anyone who has experience in both.</p>
  </blockquote>
  
  <p><em>UI</em></p>
  
  <blockquote>
    <p>Dojo has the <a href="http://dojotoolkit.org/reference-guide/dijit/index.html">dijit</a> UI library 
    ExtJS has UI features but they are not in Ext core. Here's the <a href="http://dev.sencha.com/deploy/dev/docs/">documentation</a> and here are their <a href="http://www.sencha.com/products/extjs/examples/">demos</a></p>
  </blockquote>
  
  <h2>Cappuccino</h2>
  
  <p><em>Overall</em></p>
  
  <blockquote>
    <p>And then there is Cappuccino. No CSS, no html, but also it could be tough to use existing javascript libraries. Objective-J doesn't seem to scary, especially considering that they tout being able to write plain javascript as well. The demos are impressive and seem to closely approach the UI needs for the wiki engine. The cocoa based API is a lot to take in for someone not familiar with it, but maybe it is worth it. I have heard the layout engine is not always easy to work with but a young and possibly disruptive tech like this will certainly have some shortcomings.</p>
  </blockquote>
  
  <p><em>UI</em></p>
  
  <blockquote>
    <p>Blank at the moment</p>
  </blockquote>
  
  <p>I apologize for writing so much but hey, at least its not a x vs y vs z question hoping for tons of cheap answers. So what do you think? What should be the basis for my desktop like wiki engine, that will hopefully become more feature rich (read complex) over time?</p>