In der Softwareentwicklung stolpert man schnell über die Begriffe Library und Framework.Beide liefern fertige Bausteine, um schneller ans Ziel zu kommen. Doch obwohl sie sich ähnlich anhören, bzw. im allgemeinen Sprachgebrauch auch oft verwechselt werden, verfolgen sie ganz unterschiedliche Prinzipien. In diesem Artikel schauen wir uns die Unterschiede an – praxisnah und mit Beispielen aus Java sowie HTML, CSS und JavaScript.
Der wichtigste und zentrale Unterschied zwischen einer Libary und einem Framework lässt sich so zusammenfassen:
Library: Du rufst den Code der Library auf.
Framework: Das Framework ruft deinen Code auf.
Ein Framework gibt den Rahmen vor und verlangt, dass du dich daran hältst – Stichwort: Inversion of Control. Bei einer Library bleibst du der Boss und bestimmst, wann und wie du sie nutzt.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger log = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
log.info("Hello from a Java logging library!");
}
}
In diesem Beispiel rufst du die Logging-Methoden auf. Die Library (SLF4J
) tut nur das, was du ihr sagst – du kontrollierst den Ablauf.
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello from a Java framework!";
}
}
Spring Boot ist ein Framework. Es übernimmt die Kontrolle: Es startet einen Server, scannt deine Klassen, registriert deine Endpunkte und ruft deine Methode sayHello()
auf, wenn jemand /hello
aufruft. Du steckst deinen Code in den Rahmen, den Spring vorgibt.
<button id="btn">Klick mich</button>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$('#btn').click(function () {
alert('Hallo von einer JavaScript-Library!');
});
</script>
Du bestimmst, wann du jQuery verwendest und was passieren soll – du rufst jQuery auf.
<div id="app">
<button @click="greet">Klick mich</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@3"></script>
<script>
Vue.createApp({
methods: {
greet() {
alert('Hallo von einem JavaScript-Framework!');
}
}
}).mount('#app');
</script>
Vue.js gibt den Ablauf vor. Dein Code (die Methode greet
) wird vom Framework aufgerufen, wenn ein Button geklickt wird. Du bindest dich an das Lebenszyklusmodell des Frameworks.
Entscheidungskriterium | Libary | Framework |
Kontrolle | Du behälst die Kontrolle | Framework übernimmt die Kontrolle |
Einstieg | Leicht und schnell | Oft steilere Lernkurve |
Flexibilität | Sehr hoch | Eingeschränkt durch Vorgaben |
Struktur | Muss selbst organisiert werden | Bringt eine feste Struktur mit |
Beispiel | SLF4J, jQuery, Lodash | Spring Boot, Angular, Vue.js |
Ob Library oder Framework – beides hat seine Daseinsberechtigung. Libraries eignen sich hervorragend, wenn du gezielt Funktionen benötigst. Frameworks helfen dir, große Anwendungen mit klarer Struktur aufzubauen. In der Praxis ist es oft eine Mischung: Du nutzt ein Framework als Fundament und ergänzt es mit Libraries.
Hast du auch schon Erfahrungen mit verschiedenen Libaries und/oder Frameworks gemacht? Berichte gern in den Kommentaren von deinen Erfahrungen.