Web Application Frameworks
Django
Django is an elegant Model/View/Controller framework useful for many web applications. It is object oriented, concise, regular
and utilizes an ORM (object-relationship model) that integrates with common relational database management systems.
Ruby on Rails
Ruby on Rails is well-designed Model/View/Controller framework ideal for many web applications. It is more widely used
and is supported by a larger team of developers than Django, but is very similar in most respects. There are slight differences
in the ORM interpretations, and Ruby is a little more mature, with broader application. (For example, Django does not support
multiple databases out of the box yet.
Google AppEngine
The Google AppEngine project is interesting, but not mature enough to host serious applications at this point. After
experimenting with it we have found that the limitations on data types and queries are too restrictive for most web
applications. For example, a very large text field data type may be used, but it cannot be searched using the data
model search methods.
Javascript Frameworks
jQuery
jQuery is the rising star of Javascript frameworks. It is the library of choice for web site applications with
a need for flashy display and quick loading pages. While not as consistently designed as ExtJS, and not oriented
toward data collection, it is extremely light weight and sufficient for use on many applications. It can also
augment sites based on ExtJS.
ExtJS
One of the most well-designed and complete frameworks for client side programming, ExtJS is perfect for applications
with a great deal of data entry. Its large size, however, makes it less ideal for web sites geared mostly for
fast display.
Programming Languages
PHP
Virtually all of our developers are experienced with PHP. While it is not the ideal choice for many applications, since
higher level language frameworks are available, it is excellent for rapid development.
Python
Python is a high-level, object oriented scripting language. While a quality programming language in its own right, we
tend to use it mostly in conjunction with the Django framework. For purely scripted apps, such as command line utilities,
we tend to prefer PHP.
Java
While all of our developers have experience programming in Java, we do not recommend it for many web applications
because it is a relatively low-level language. At a rough approximation, Java requires about ten lines of code for
every line in PHP or Python. Because of its strong typing and explicit nature it is often seen as the best option
mission critical applications, like those in banking. It is not a good choice for rapid prototyping.
C++ is useful for coding low-level applications that require high levels of performance. All our senior level
staff have significant experience developing C++ applications, and in writing modules for use by other applications
such as Postgres or Apache.
Perl
Perl is a scripting language that has been around a long time. It is known for its string processing capabilities.
Due to its cryptic syntax, it is not our lanaguage of choice for development, but most of our developers have some
experience with the language.
Cold Fusion
ColdFusion is a proprietary scripting language, similar to PHP and Microsoft's ASP. Some of our developers are
fluent in ColdFusion, but it is not one of our languages of choice.
Relational Database Systems
Postgres
Postgres is the most powerful open source RDBMS. Due to its long-supported 4GL programmability and text
search capabilities, it is our database system of choice for large-scale efforts.
MySQL
MySQL is an excellent RDBMS for many web enabled database applications. Distributed by default on most
Linux servers, it requires little or no installation.
Oracle is the 800 pound gorilla of the RDBMS world. It works well, but anyone who has dealt wth the
installation, backup and licensing issues can appreciate the massive maintenance costs of relying on
Oracle based systems. While our engineers have worked extensively with Oracle, it is often in helping
organizations transition to something dramatically more cost effective and more easily maintained.
Content Management
With the advent of the 1.5 version, Joomla has entered the ranks as one of the best CMS's available today.
Unlike a number of its PHP based competitors, it embraces the object oriented capabilities of PHP5. The
design allows for easy development of extensions and templates, making it one of the most flexible systems
around.
Pinax is a brand new system built on a Django/Python foundation. It supports virtually all social networking
components found in today's web site applications. The suite of applications is an excellent "wrapper" for
other functionality, making sites more interactive and collaborative, gathering and managing user generated
content.
WordPress
Wordpress is one of the most widely used blogging/content management systems on the internet today. Although
severely restricted in the features it provides out-of-the-box, it suffices for many web sites. Its claim
of a five minute installation process is justified.
SilverStripe
Silverstripe is a relative new comer to the CMS world, and a good fit for clients who are seeking independence in publishing a
web site. Unlike WordPress and Drupal, developers are needed to set up customer templates. Once established, however,
SilverStripe has a mature multi-user approach to drafting and publication.
Drupal
Drupal has been around for some years, and is a very popular blogging/content management tool. In our opinion, it
is overrated. The plugin architecture is well done, from an end user's perspective, but the source code is poorly
organized, making extension programming unnecessarily inflexible. The administrative interface and cumbersome jargon
associated with it make it less than ideal for everyday users. On the positive side, there is a wide usage base and
numerous extensions and templates are available.
Server Platform
Linux
Linux is the most stable, cost effective operating system available today. It is an ideal platform for hosting
and developing server side applications.
Apache
Apache is the most widely used web server on the internet. It integrates with virtually all of the
open source programming languages.