BibTeX stammt noch aus der Zeit des US-ASCII-Zeichensatzes. Das bedeutet, es kann eigentlich nur mit 7-Bit-Zeichen umgehen. Das hat beispielsweise Auswirkungen bei der Sortierung der 8-Bit-Zeichen von ISO-Latin-1. Wirklich gut ist es daher nur für Sprachen wie Englisch geeignet, die eben in der Literaturdatenbank mit US-ASCII auskommen. Zwar gibt es für Sonderzeichen eine Sonderbehandlung, diese sieht aber beispielsweise vor, dass ein `ä` als `{\"a}` codiert wird. Die geschweiften Klammen bleiben dann auch in der Ausgabe von BibTeX erhalten, was das Kerning mit Buchstaben davor oder danach verhindert (etwa bei `V{\"a}ter` im Vergleich zu `Väter`). Um dieses Problem zu beseitigen, müsste man die BibTeX-Ausgabe eigentlich nachbearbeiten, um diese Gruppenklammern, die zuviel sind, zu beseitigen. Ich habe das früher mit Hilfe von perl tatsächlich gemacht. Was sich dadurch nicht beheben lässt ist, dass `bibtex` nicht zwischen Groß- und Kleinschreibung unterscheidet. Das widerspricht teilweise den Sortierregeln.
BibTeX8 bietet in dieser Hinsicht bereits eine gewisse Verbesserung: Es kann mit 8-Bit-Codierungen umgehen. Allerdings muss man die korrekte Codierung per Option angeben. Glücklicherweise ist iso-latin-1 normalerweise voreingestellt, so dass früher in der westlichen Welt das Ergebnis häufig in der Voreinstellung bereits richtig war. Da inzwischen UTF8 zunehmend die Eingabemethode der Wahl ist, ist BibTeX8 aber auch keine Lösung für das Codierungsproblem. Mit UTF8 kann dieses Programm nämlich ebenfalls nicht korrekt umgehen. Dies kann wiederum zu Fehlern bei der Sortierung und in Ausnahmen sogar bei der Interpretations der Datenbank führen, da die UTF8-Zeichen, die mit mehr als einem Byte codiert sind, für BibTeX8 in mehrere 8-Bit-Zeichen zerfallen können.
Zwar gibt es auch ein `bibtexu`, das angeblich mit UTF8 umgehen kann. Diese Programm, das aus dem Omega-Umfeld stammt, scheint aber nirgendwo wirklich dokumentiert zu sein. Daher scheidet sein Einsatz praktisch von vornherein aus.
Desweiteren arbeiten `bibtex`, `bibtex8` und `bibtexu` mit Arrays fester Größe für die Erfassung und Sortierung der Einträge und harten Beschränkungen bezüglich der Länge von Zeichenketten, also den Einträgen in den Feldern der Literaturdatenbank und den produzierten Ergebnissen. Bei `bibtex` sind diese Einschränkungen bei literaturlastigen Dokumenten beispielsweise im Bereich der Geisteswissenschaften tatsächlich häufig erreicht. Bei der `historischen Implementierung` *historischen Implementierung* von BibTeX kann das sogar zu Überschreibung anderer Arrays und damit sehr unerwarteten Fehlermeldungen führen. Bei `bibtex8` wurden einige Arrays vergrößert bzw. können durch Optionen vergrößert werden. Auch ist die Absicherung gegen Überschreiben benachbarter Speicherbereiche besser. Dennoch sind die Grenzen weiterhin statisch.
`biber` ist im Gegensatz dazu von Anfang an auf die Verarbeitung von Unicode-Zeichen ausgelegt und hat daher die Zeichencodierungsbeschränkungen von `BibTeX` nicht.
Außerdem ist es ein perl-Skript, das mit perl-Hashes und perl-Arrays arbeitet. Diese sind nicht statisch (dafür aber aus historischer Sicht eher langsam, was heutzutage kaum eine Rolle spielen dürfte).
`biber` ist auch nicht auf die Verarbeitung eines einzigen Datenbankformats beschränkt. Tatsächlich sind bereits unterschiedliche Formate neben dem zwar archaischen aber gut von Menschen lesbaren BibTeX-Formats BibTeX-Format implementiert. Dies bietet die Möglichkeit auf die Literaturdatenbanken einiger anderer Programme direkt zuzugreifen.
`biber` ist dabei auch nicht auf die Verarbeitung lokaler Dateien beschränkt, sondern kann prinzipiell auch auf online-Quellen zugreifen. So kann man auch auf entfernte, zentrale Literaturdatenbanken zurück greifen. Diese Möglichkeit wird allerdings eher selten genutzt.
Außerdem werden `biblatex` und `biber` quasi Hand in Hand entwickelt. Dadurch hat `biber` einige Möglichkeiten erhalten, die speziell für `biblatex` benötigt werden. So werden beispielsweise *Entry Sets* und davon abgeleitete Möglichkeiten wie `\mcite` nur von `biber` unterstützt. Auch das Anhängen eines speziellen Markerzeichens bei der Sortierung für den Fall, dass die Autorenliste automatisch gekürzt wurde, also letztlich die Unterscheidung zwischen einer ungekürzten und einer gekürzten Autorenliste mit denselben Einträgen, ist nur mit `biber` möglich. Dies gilt auch für viele weitere Möglichkeiten, die `biblatex` inzwischen für die Verarbeitung von Strings in den Einträgen bietet. Man findet diese in der `biblatex`-Anleitung leicht über die Randmarkierung `Biber only`. Viele dieser nur mit `biber` möglichen Felder in den Datensätzen bzw. deren Behandlung sind Besonderheiten, die im Einzelfall wichtig sein können.
Von allgemeinerem Interesse dürfte noch sein, dass bei einem unterteilten Literaturverzeichnis bzw. einer Aufteilung in mehrere Verzeichnisse der Aufruf mit `biber` gegenüber BibTeX insofern vereinfacht wird, als hier nur ein Aufruf des Programms `biber` notwendig ist, während bei BibTeX in der Regel für jedes (Teil-)Verzeichnis ein Aufruf erfolgen muss. Dadurch wird letztlich auch der Aufruf aus einem Editor heraus leichter, da viele Editoren den mehrfachen Aufruf von `bibtex` oder `bibtex8` mit unterschiedlichen Parametern gar nicht vorsehen, sondern erst teilweise mühsam entsprechend eingerichtet werden müssten. Wie man Editoren auf die Verwendung von `biber` konfiguriert, erklärt übrigens »[Wie verwende ich biber in meinem Editor?](http://texwelt.de/wissen/fragen/1909)«.