authentrics
Tools
Home | Team | Projects | About | Contact

Web Application Frameworks

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 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.
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 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.
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

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 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.
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 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.
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 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 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 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 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 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 is the most stable, cost effective operating system available today. It is an ideal platform for hosting and developing server side applications.
Apache is the most widely used web server on the internet. It integrates with virtually all of the open source programming languages.