First: I want to start with the smallest core I can.
Second: I want to be able to build all extensions using the tools themselves.
Third: I want to have the tools mange the process of extension building. That is, I want to be able to describe a unit of work (which may involve changes to various parts of the code base) in one place; that one place will include relevant documentation, as well as code. It will also include tests and other metadata as I figure it out.
After surveying the field I've made the following design decisions:
- The UI will be browser-based
- The development framework will be built on Brunch, which includes
- NodeJS
- Which includes NPM
- Coffeescript
- Backbone, which includes
- Express
- Underscore
- LESS/SASS/Stylus
- Jade/eco/Handlebars/mustache
- JQuery and JQueryUI
Why this combination? As we'll see, it provides a framework that support some important ideas that I have about programming. I want:
- A simple client/server architecture with an easy way to change both sides. NodeJS gives me that
- An expressive notation for my code that makes it easy for me to create Domain Specific Languages for my tasks. Coffee does that
- Simple, expressive notation for markup with jade or Source HTML clutters my screen (and my mind) with unnecessary characters and constructs. Jade/eco/Handlebars/mustache handle that.
- Simple, expressive notation for presentation style. CSS is great but it clutters my screen. LESS/SASS/Stylus get around that
- A sensible predetermined directory structure for my application. Brunch does that
No comments:
Post a Comment