Features
Distributed Design
All components of Anno-J may be sourced remotely. There is nothing to download, nothing to compile and nothing to install. Once you know how, you can get an AJ instance up and running in minutes.
Simple Interface / Feature Creep is Evil
A feature is only added to AJ if needed. Conversely, features are removed if found to be infrequently used. The result is a clean, uncluttered interface that does what you want 95% of the time.
Client Side Presentation Layer
Anno-J avoids awkward, server-side graphics drawn by programmers who aren't artists, using programming languages that aren't made for drawing. In Anno-J, all rendering is client-side and leverages CSS, freeing up server CPU time, allowing non-programmers to tinker with styles, and preventing server-side programmers from having to pollute their code with stylistic aspects.
Server Side Agnosticism
Anno-J divorces iteslf entirely from server-side architecture. Your language can be PHP, Perl, Python, Java, C, Smalltalk, Ruby, C# or whatever you want. Your data can be stored in any format you want and can use any database engine you want (although a SQL server is recommended). Anno-J does not care.
Asynchronous Communications
Anno-J is a web 2.0 application meaning that it can maintain state while communicating with a server. Better than AJAX, it uses JSON to communicate rather than XML.
Data Flexibility
Anno-J is not tied to any specific data stuctures (although all data structures are built using JSON). The Anno-J philosophy is that data providers should not have to modify their data structures to suit the Anno-J front-end, rather that Anno-J plugins should have additional parsers added to suit data.
Remote Data Sources
Anno-J eliminates synchronicity concerns by not storing any data. Just point AJ at remote providers and it's good to go, ensuring that users are always looking at the freshest data and eliminating pointless, soul-destroying work for bioinformaticists with better things to do.
Syndication
Anno-J gives much deserved credit to data providers through data syndication. Users can see the original source of data, and providers can see who is using their data (and control access).
Simple Plugin Development
Anno-J is readily extendable through the development of plugins. These plugins may be hosted remotely and have been made as simple to develop as possible through classical inheritance.
Clean Separation of Responsibilities
A development philosophy of Anno-J is that polluting data logic with presentation and style is a bad thing. Consequently, Anno-J creates very clear divides between layout, style, logic and data, allowing the specialists in each area to focus on their specialty and avoid polluting their work with unmaintainable, inflexible, cross-specialty code.