title: Flash versus Flex
body: <p>I've tried looking everywhere for a concise list of the advantages and disadvantages of using Flex vs. Flash. </p>
  
  <p>Coming from a programming background, I absolutely love Flex. It's easy to pick up, and since it can use flash classes, why would I want to use Flash without flex?</p>
  
  <p><strong>Flex:</strong></p>
  
  <p>Pros:</p>
  
  <ul>
  <li>good for RIA development</li>
  <li>provides many user-input options out of the box</li>
  <li>Build in lay-outing system</li>
  <li>the MXML is easier for non-programmers</li>
  <li>You can quickly combine components to create small applications</li>
  <li>components can provide an advantage in large-scale projects because of their modular 
  nature.</li>
  <li>can be developed using linux</li>
  <li>has a nice component lifecycle for validation, etc.</li>
  </ul>
  
  <p>Cons:</p>
  
  <ul>
  <li>increases the size of your .swf</li>
  <li>Customizing the look of components can take a lot longer than anticipated, depending on the visual style you're looking for</li>
  <li>when you find out you need a custom component that doesn't exist, you might need to go back to Flash to do the real programming work and packaging of the component</li>
  <li>The "flexibility" of Flex means you will be reading a lot of documentation</li>
  <li>Bugs in the Flex framework</li>
  <li>You eventually will need to compromise with the architecture of the Flex framework</li>
  </ul>
  
  <p><strong>Flash</strong></p>
  
  <p>Pros:</p>
  
  <ul>
  <li>good for making movies/animations</li>
  <li>Timeline can be easier for designers/animators to conceptualize</li>
  <li>when working from scratch, provides a great deal of control.</li>
  <li>easier for someone with a programming background</li>
  <li>You can program whatever you like; no compromises with existing frameworks</li>
  </ul>
  
  <p>Cons:</p>
  
  <ul>
  <li>only provides basic user input (text box) out of the box.</li>
  <li>timeline can be daunting for programmers (although you can quite safely ignore it)</li>
  <li>Development of certain types of applications will be slower than with Flex</li>
  <li>can't be developed using linux</li>
  <li>user input validation must all be handled in the code. No built-in validation.</li>
  <li>need to implement your own lay-outing system</li>
  </ul>
  
  <p>Please correct me if I missed anything said so far.</p>