Implementation Language and Backend
One of the important factors to consider while choosing an issue-tracking system is the implementation language. Choice depends on the current IT environment and the available skill-set in the organization. Most of the issue-tracking systems are implemented in either C, C++, C#, ASP, perl, php, RoR or JAVA. Bugzilla, MantisBT and Request Tracker are implemented using perl. While Trac is implemented in Python. JIRA on the other hand is implemented in JAVA. Since JAVA is the most widely used programming language, it makes sense to use a JAVA based issue-tracking system.
Issue-tracking systems require a backend database even though there are some less popular systems like org-mode and ikiwiki which support files. Database based systems are better than file based since the later may not scale well. Common database options are limited to Access, MS SQL Server and/or MySQL. Only a few issue-tracking systems like JIRA are really cross database systems. JIRA can work with MySQL, PostgreSQL, Oracle and SQL Server. While Bugzilla system requires MySQL, Oracle or PostgreSQL.
Read more: IndicThreads