Java ist eine objektorientierte Programmiersprache, die in den 1990er Jahren entwickelt wurde. Um den Entwicklungsvorgang während der Programmerstellung zu optimieren, werden häufig integrierte Entwicklungsumgebungen, wie zum Beispiel die Eclipse IDE eingesetzt.
IBM hat Ende 2001 mit der Entwicklung von Eclipse begonnen. 2004 wurde die Non-Profit Organisation Eclipse Foundation gegründet, die sich um die Entwicklung der Eclipse IDE kümmert.
Die Eclipse IDE ist variabel konzipiert und bietet die Möglichkeit mit Plugins die IDE zu erweitern. Das geht so weit, dass aus der Eclipse IDE und der Eclipse Rich Client Platform ein Mindmapping Programm werden kann. Durch diese Variabilität ist möglich, verschiedene Editoren parallel zu nutzen. So kann für die Programmiersprachen Java, Javascript, HTML, PHP und Python jeweils ein eigener Editor eingesetzt werden. Dazu gibt es die Möglichkeit sich beliebig gestaltete Oberflächen zu konfigurieren, die auch Perspektiven genannt werden.
Ein weiterer Vorteil ist, dass die IDE für viele verschiedene Betriebssysteme angeboten wird.
Fazit:
Die Eclipse IDE ist eine zuverlässige und viel genutzte Entwicklungsumgebung, die häufig für die Entwicklung von Java Programmen genutzt wird. Sie bietet alle Funktionen, die bei der Entwicklung gebraucht werden. Der große Vorteil dieser IDE liegt in der universellen Erweiterbarkeit, die sonst keine andere IDE bietet.
Kodierung ist uraltes Instrument der Natur, dass bei Kommunikation eingesetzt wird. Somit wird Kommunikation mit Kodierung universell eingesetzt, wie zum Beispiel in der Pflanzenwelt mit Auxinen und in der IT sind das Kodierungen wie UTF. Denn Kommunikation funktioniert immer auf der gleichen Basis und braucht Standards.
Basis von Kommunikation
Es gibt einen Sender, der kommunizieren will
Es gibt einen oder mehrere Empfänger
Es gibt Daten, die Sender und Empfänger in einen Kontext setzen und damit werden Informationen übermittelt
Es gibt Regeln zum Austausch, die auch als Protokolle bezeichnet werden
Es gibt einen Zweck, warum der Austausch mittels Kommunikation notwendig ist
In der IT hat sich die Kodierung im Laufe der Zeit weiter entwickelt. So wird heute sehr häufig Unicode eingesetzt, das auch Unicode Transformation Format genannt wird.
Mit Unicode ist es möglich, die gängigen Zeichen aller Schriften zu nutzen. So können damit 232 Zeichen kodiert werden, im Gegensatz zum erweiterten ASCII Code, der 128 Zeichen kodieren kann. UTF ist also ein wichtiges Mittel für den globalen Austausch von Daten und Informationen über alle Völker und Kulturen hinweg.
UTF kodiert ein Zeichen immer mit 32 Bit. Damit es mit einer weiteren, häufig genutzten Kodierung kompatibel ist, sind die ersten 128 Zeichen wie bei ASCII kodiert.
Ein Hemmnis von Unicode ist der hohe Verbrauch von 32 Bit pro Zeichen. So werden gleiche Texte gegenüber ASCII Code um das 4-fache umfangreicher. Um die Datenmenge zu reduzieren gibt es verschiedene Arten der UTF Kodierung.
Kodierung mit UTF-32
Hier jedes Zeichen mit 32 Bit kodiert. Es ist die einfachste und kompatibelste Kodierung mit Unicode. Wird zuerst das höchstwertige Byte übertragen, dann wird diese Kodierung Big Endian (UTF-32BE) genannt. Wenn das niedrigstwertige Byte zuerst übertragen wird, dann wird dies als Little Endian (UTF-32LE) bezeichnet.
Kodierung mit UTF-16
Hier werden zur Kodierung eines Zeichens entweder ein 16 Bit- oder zwei 16 Bit Blocks verwendet. Diese Kodierung wird gerne bei Sprachen mit nicht lateinischen Zeichen eingesetzt. Ähnlich wie bei UTF-32 gibt es hier auch UTF-16BE und UTF-16LE.
Kodierung mit UTF-8
Hier werden die Zeichen mit einer variablen Länge von 1 bis 4 Byte kodiert. Da in vielen Fällen die ersten 128 Zeichen des dazu kompatiblen Standard ASCII Codes (7 Bit) verwendet werden, ist dieser Kodierungstyp der Effizienteste. Das achte Bit wird zum Einleiten der Verlängerung des Zeichens auf bis zu 32 Bit genutzt.
Byte Order Mark oder BOM
Das ist eine Signatur, die zu Beginn der Nutzung übertragen wird. Sie dient der leichteren Identifizierung der Kodierung bei verschiedenen Systemen. Wenn aber vorher schon eindeutig geklärt ist, wie die Daten übermittelt werden, kann die BOM weg gelassen werden. Dies geschieht zum Beispiel bei HTML Seiten durch die Angabe des <meta charset=“utf-8″ />.
Es gibt noch weitere UTF Kodierungen, die aber in der Praxis nur wenig eingesetzt werden.
Es ist meist schwierig eine leistungsfähige Entwicklungsumgebung zu finden. Gerade bei der beliebten Programmiersprache Java gibt es eine größere Auswahl. Daher stelle ich in dieser Serie nach und nach verschiedene IDEs vor.
Heute beginne ich mit IntelliJ IDEA von der Firma JetBrains aus Tschechien. Das Unternehmen wurde im Jahr 2000 gegründet und hat die Zielsetzung, die leistungsstärksten Entwicklertools zu konzipieren. Dabei stehen die Nutzer, die Automatisierung und die Unterstützung von Entwicklungsprozessen im Vordergrund.
Es gibt eine Open Source Variante, die IntelliJ Community Edition.
Wer mehr Funktionalität braucht, kann 30 Tage lang die IntelliJ Ultimate IDE probieren, bevor sie lizensiert werden muss. Dabei zeigt sich JetBrains sehr kulant, denn es gibt für Lernende eine spezielle Unterstützung.
Die JetBrains Entwicklungsumgebung IntelliJ IDEA gibt es für die Betriebssysteme Windows, MacOS und Linux. Zudem gibt es für Windows eine ARM Variante und Apple Silicon wird unterstützt.
IntelliJ IDEA Community Edition
Unterstützung von
Java
Kotlin
Scala
Groovy
Gradle
Maven
Versionsmanagement System werden unterstützt
Git
Subversion
GitHub
Perforce
Mercurial
Es gibt einen Debugger
Teamarbeit wird unterstützt
IntelliJ IDEA Ultimate Edition
zusätzlich zu den oben genannten Funktionen gibt es
Unterstützung von weiteren Frameworks
Jakarta EE
Java EE
Spring
…
Unterstützung für
HTML
CSS
Javascript
Angular
Node.js
React
SQL
Es gibt nicht nur Syntax Highlighting, sondern auch eine umfangreiche Unterstützung durch Code Prediction, also Code Vorschläge im Kontext der Programmierung. Zu den vielen eingebauten Tools werden viele weitere Plugins unterstützt.
Fazit:
Die Entwicklungsumgebungen von JetBrains gehören zu den Besten. Die IDE ist individuell sehr gut anpassbar. Die Unterstützung beim Programmieren ist die beste, die ich kenne. Allerdings gehört dazu eine gewisse Einarbeitungszeit, denn die Funktionsvielfalt und die Möglichkeiten dieser IDE sind überragend. IntelliJ IDEA ist eine empfehlenswerte Entwicklungsumgebung und das nicht nur für Java, sondern auch für die Webentwicklung.
Bei der elektronischen Datenverarbeitung werden sehr häufig Texte verarbeitet. Die einzelnen Zeichen werden dazu kodiert. Bereits die Inkas nutzen vor 4600 Jahren Kodierung für Ihre Dokumente, die Knotenschnüre (Khipu).
Das bekannteste westliche Verfahren ist die 1845 von Baudot erfundene Kodierung für Telegraphie. Daraus wurde die Kodierung bei Fernschreibern entwickelt und daraus leitet sich die Kodierung des Standard ASCII Code ab. Dieser wurde in seiner heutigen Form mit einer 7-Bit Kodierung unter der ISO/IEC Norm 646:1991 standardisiert. Es konnten jetzt 128 Zeichen kodiert werden.
Für die heutige Zeit der Globalisierung in der multipolaren Ordnung ist dies aber nicht ausreichend. Es gibt viele Staaten mit unterschiedlichen Kulturen und Sprachen. So wurde der ASCII Code um ein Bit auf 8 Bit erweitert. Dieser Erweiterte ASCII Code verbesserte die Qualität der Kommunikation. Aber der Betrieb vielsprachiger Webseiten zeigte weitere Hemmnisse auf. Die Einführung von Zeichensatz Tabellen, die auch Codepages genannt werden, sollte die Multilingualität verbessern. Trotz dieser Erweiterung gab es weiterhin keine fehlerfreie Nutzung von Webseiten in Browsern und weiteren Programmen.
Erst die Einführung von Unicode brachte die gewünschte fehlerfreie Verbesserung.
Java Entwickler benutzen ein Java Development Kit oder JDK. Damit das JDK aus jedem Verzeichnis heraus einfach aufgerufen werden kann, muss der Pfad der ausführbaren Dateien in Windows konfiguriert werden.
Wie die Einstellung des Pfades für das Java JDK durchgeführt wird, erklärt das Video.
Beim Qualitätsmanagement ist es wichtig, dass man sich auf die Hauptprobleme konzentriert. Eine gute Unterstützung liefert das Pareto Diagramm, dass das Pareto Prinzip nutzt. Dazu wird die relative Häufigkeit von Problemen in einem Balkendiagramm dargestellt.
Prozess zur Nutzung des Pareto Diagramms
Festlegen, welches Problem analysiert werden soll
Brainstorming anhand von Daten über Probleme oder Ursachen
Sinnvolle Messgrößen ermitteln
Den Untersuchungszeitraum festlegen
Daten für die Untersuchung sammeln oder vorhandene Daten ermitteln
Vergleich der relativen Häufigkeit jeder Problem Kategorie
Kategorien in der horizontalen Achse eintragen
Die kumulierten Prozentwerte der Problemkategorien eintragen
Zum Abschluss die Ergebnisse analysieren und interpretieren
Beispiel einer Auswertung mit dem Pareto Diagramm
Das Ergebnis zeigt, dass mit der Beseitigung der zwei größten Fehler eine Fehlerreduktion von fast 80% erreicht wird. Durch die Beseitigung der Fehler „Kabelbruch“ und „Messfehler“ lässt sich die Qualität in kurzer Zeit wesentlich steigern.
Fazit:
Das Paretoprinzip unterstützt eine schnelle und effektive Steigerung der Qualität eines Produkts oder einer Dienstleistung. Es ist ein nützliches Werkzeug aus der Werkzeugkiste von Six Sigma.
Das UML Klassendiagramm ist bei der Dokumentation von Software ein weit verbreiteter Diagrammtyp. Eine genauere Beschreibung gibt es in dem Artikel Darstellung von Klassen und Objekt Diagrammen mit UML Darstellung von Klassen und Objekt Diagrammen mit UML.
Dieser Artikel ist eine Ergänzung. Denn hier werden die Symbole für die Beziehungen des UML Klassendiagramms gelistet.
[hypeanimations_anim id=“2″]
Beziehungen in der Objektorientierung sind Verbindungen zwischen Objekten einer oder mehrerer Klassen. So gibt es die Assoziation, Aggregation und die Komposition.
Sichtbarkeit bei Klassen (engl. class visibility)
+
–
~
#
public öffentlicher, unbeschränkter Zugriff
private
nur die Klasse selbst kann es sehen
package
innerhalb des Pakets sichtbar
protected
geschützter Zugriff nur von der Klasse, sowie von den Unterklassen
Ein weiterer wichtiger Aspekt ist die Sichtbarkeit, die mit der Datensicherheit einhergeht. Des wird durch die gezeigten Symbole dokumentiert.
Kardinalität (engl. multiplicity)
0
1
0…1
*
1…*
Kein
genau 1
0 bis 1
0 bis viele
1 bis viele
Die Kardinalität bestimmt, zu welchen Objekten ein bestimmtes Objekt in Verbindung steht.
Entwickler brauchen die passenden Werkzeuge, um effizient zu programmieren. Die Open Source Software Geany nennt sich auch Lightweight IDE und ist eine Entwicklungsumgebung, die auf Windows, Linux und MacOS installiert werden kann.
Der Geany Editor IDE unterstützt über 50 Programmiersprachen und ist in 40 verschienen Sprachen nutzbar. Eine Programmiersprache ist zum Beispiel Python, eine der zur Zeit beliebtesten Programmiersprachen. Dabei unterstützt Geany Interpreter und Compiler Sprachen. Auch optisch kann Geany durch auswählbare Themen grafisch verändert werden.
Der Funktionsumfang kann durch wählbare Plugins individuell angepasst werden. So bietet Geany auch Unterstützung für Git, Subversion, einen Datei Manager und den Projekt Organizer.Probieren Sie Geany aus.
Meine Empfehlung lautet: Installieren Sie unter Windows und Linux die zusätzlich erhältlichen Geany Plugins. Diese sind bei MacOS bei der Standard Installation enthalten.
Datenschutz und Datensicherheit spielen immer eine wichtige Rolle und das ist bereits seit mehr als 2500 Jahren bekannt. Denn Meister Sun, auch unter den Namen Sunzi, Sun Tsu oder 孫子 / 孙子bekannt, schrieb in seinen Schriften:
Der General ist ein weiser Verteidiger, wenn sein Gegner nicht weiß, was er angreifen soll.
Die weltweit führenden Schulen des Management unterrichten diese wichtigen Schriften noch Heute. Daraus leiten sich auch die 10 Gebote der Netzsicherheit ab.
10 Gebote der Netzsicherheit
Lege stets Verantwortlichkeiten fest
Finde einvernehmliche Regeln für alle Akteure
Stelle ausreichend Ressourcen bereit
Beziehe die Nutzer stets mit ein
Definiere wichtige Prozesse und kontrolliere die Ausführung
Sichere regelmäßig die Daten
Setze Firewall-, Antiviren und weitere Schutz-Software ein
Nutze Verschlüsselung für wichtige E-Mails und wichtige Internet Verbindungen
Gib nur notwendige Daten preis
Bedenke: Der Mensch hinter dem Computer ist das größte Sicherheitsrisiko
Ignoranz und Unwissenheit erzeugen auch solche Worte:
Das Internet ist für uns alle Neuland
Seien Sie wachsam und sorgen Sie für eine zeitgemäße Entwicklung. Denn Freiheit sollte niemals gegen für vorübergehende Sicherheit aufgegeben werden, wie bereits Benjamin Franklin sprach.
Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, der wird am Ende beide verlieren
UML wird zur Modellierung und zur Darstellung der Struktur von Softwaresystemen eingesetzt. Die Unified Modeling Language nutzt dazu verschiedene Diagrammarten und wird zur
Beschreibung aller Arten von objektorientierter Software und der dazugehörenden Dokumentation eingesetzt;
zeigt die Prozesse, zeitlichen Kommunikationsverläufe, Objekte, Klassen zum Erstellen eines Modells auf;
dient zur Erkennung von Risiken und Fehlern;
sowie der Zuweisung von Verantwortlichkeiten und Ressourcen.
Inzwischen gibt es Software Tools, mit denen nicht nur UML dokumentiert werden kann. Es wird auch der passende Quellcode für verschiedene Programmiersprachen generiert.
Das Klassen Diagramm
Das Klassendiagramm ist ein Bauplan verwandter Objekte mit ähnlichen Eigenschaften und Methoden. Die Kommunikation dieser Objekte erfolgt über Schnittstellen. Dafür sind Schnittstellenmethoden notwendig.
Beispiel eines Klassen Diagramms
Name der Klasse
Attribut oder Eigenschaft der Klasse mit Datentyp
Eine Methode der Klasse
Das Objekt Diagramm
Das Objektdiagramm zeigt eine Instanz der Klasse zu einer bestimmten Zeit. Das heißt, ein aus dem Klassenbauplan erzeugtes Objekt wird zu einem bestimmten Zeitpunkt dargestellt.
Beispiel eines Objekt Diagramms
Klasse : Objekt => beschreibt das Objekt
Zeigt an einem Beispiel den Wert und Datentyp des Attributs
Eine weitere wichtige Rolle spielen die Beziehungen zwischen den Objekten, Klassen, der Sichtbarkeit und der Kardinalität. Diese wird im Artikel UML Klassendiagramm Symbole beschrieben.
Die Entwicklung von Prozessoren und Betriebssystemen ist einer fortlaufenden Änderung unterworfen. Die x86 Prozessoren von Intel stoßen auf immer neue Hemmnisse. Die Technologie bei der Produktion vieler Prozessoren von Intel liegt bei 14 nm. AMD stellt seine Ryzen x86 Prozessoren im 7 nm Prozess her. ARM RISC Prozessoren werden meist mit 5 nm Technologie gefertigt und Apple wird im nächsten Jahr seine M1 Prozessoren von 5 nm auf 4 nm umstellen. Die RISC Prozessoren sind leistungsfähig, effizienter und haben einen geringeren Energieverbrauch als die CISC Prozessoren von Intel.
In diesem Kontext tauchen immer wieder Information auf, dass AMD seine Ryzen Serie mit den x86 Prozessoren um ARM Prozessoren erweitert. Die K12 ARM CPU aus dem Jahr 2014 wurde von AMD weiterentwickelt und nun soll der erste SoC „AMD Ryzen C7“ heißen. Es würde der erste Prozessor der AMD Ryzen Mobile Platform sein.
Der SoC soll zwei der neu spezifizierten Cortex-X1 Kernen mit 3,0 GHz und zwei Cortex A78 mit 2,6 GHz, sowie vier Cortex A55 Kerne mit 2,0 GHz enthalten. Eine Besonderheit soll die von AMD entwickelte GPU darstellen. Sie unterstützt Ray Racing, Sharing, 144 Hz Bildwiederhol Frequenz und HDR10+. Die Geschwindigkeit liegt um ca. 45% höher als bei der von ARM momentan käuflichen GPU Ardeno 650 mit Snapdragon 865. Damit bietet AMD Produzenten von Notebooks und weiteren mobilen Geräten einen leistungsfähigen Einstieg in die neuentwickelte Prozessor Technologie.
Sollte diese Prozessorreihe von den Geräteherstellern angenommen werden, dann wird sich daraus eine Erweiterung des Marktes ergeben. Denn Tests haben ergeben, dass Windows on ARM schneller läuft, als auf x86 Prozessoren.
Wird Intel nachziehen können, wo NVIDIA die Prozessorschmiede ARM gekauft hat?
Fazit:
Diese RISC Prozessoren mit 5 nm Technologie sind für mobile Geräte wie Notebooks, Tablets vorgesehen. Der SoC soll in etwa der gleichen Leistungsklasse wie der Apples M1 Prozessor liegen. Ein Grund mehr für Kunden auf stromsparende, kostengünstigere und leistungsfähigere Geräte umzusteigen.
Entwickler brauchen regelmäßig einen Texteditor mit umfangreichen Funktionen. PSPad ist ein hochwertiger Editor mit umfangreichen Möglichkeiten. So kann der Editor unter anderem:
Quellcode Entwicklung mit Syntax Highlighter für viele Programmiersprachen
Umfangreiche Funktionen für die Textverarbeitung
Integrierter Dateivergleich
Integration von HTML-Tidy
Integrierter Hexadezimal Editor
Besonders interessant die Möglichkeit weitere Funktion über viele zusätzliche Plug-ins einzubinden. Dies ermöglicht eine individuelle Funktionserweiterung des Editors.
Wer den Editor ausprobieren möchte, kann die Installationsdatei des kostenlosen Editors und https://www.pspad.com finden.
Fazit:
PSPad ist ein hochwertiger Text Editor, mit dem verschiedene Programmier- und Datenbearbeitungsaufgaben in Windows gelöst werden können. Der eingebaute Hexadezimal Editor lässt sich für Analysen auf binärer Ebene verwenden. eine klare Empfehlung für PSPad.
Mozilla wird voraussichtlich in der KW 47/2020 für den Browser Firefox ab Version 83 den neuen Javascript Compiler WARP ausliefern. WARP bringt Verbesserungen bei der Ausführung von Javascript mit sich. Bei geringerem Speicherverbrauch werden die Lade- und Antwortzeiten von Javaskripten in den Webseiten beschleunigt.
Die Javascript Funktionen können zwischen dem Javascript Interpreter und dem JIT Compiler wechseln. Ähnlich wie bei Java wird in einem ersten Schritt der Javascript Quellcode in nativen Bytecode umgewandelt. Der Bytecode wird durch den Javascript Interpreter des Browsers ausgeführt.
Fazit:
Eine praktische Verbesserung bei Mozilla Firefox ab Version 83, die die Nutzung von Webseiten erhöht und noch zukünftig weiter optimiert werden wird.
Standardsoftware wird nach unternehmensinternen Qualitätsrichtlinien programmiert und verkauft. Wie ist das aber bei individuell erstellter Software?
Es gibt allgemeine Qualitätsrichtlinien, die aber vor der Auftragserteilung festgelegt sein sollten. Denn es gilt:
„Qualität ist die Erfüllung der Kundenanforderungen.“
8 Kriterien für Qualität bei Software Entwicklung
Es gibt wichtige Eigenschaften, die bei der Softwareentwicklung eine tragende Rolle spielen. Denn schließlich soll die Software während der Nutzungsdauer problemlos und kostengünstig eingesetzt werden können.
Benutzerfreundliche Bedienung
Ein Programm oder eine App sollen einfach zu bedienen sein. der Anwender soll möglichst ohne Hilfe zum Erfolg kommen.
Unempfindlich gegen Fehler
Eingabefehler sollen abgefangen werden, Fehlbedienung nicht möglich sein.
Integrität und Sicherheit
Die Daten und das System sollen gegen unberechtigte Zugriffe und Manipulation geschützt sein.
Korrekte Funktion
Bei der Eingabe, Verarbeitung und Ausgabe dürfen keine Fehler auftreten. Bei gleichen Eingeben muss stets das gleiche Ergebnis erscheinen.
Portable Verwendung
Die Software soll auf anderen Systemen nutzbar sein.
Überprüfbarkeit
Bei der Abnahme der Software soll der Prüfungsaufwand gering sein.
Kompatibel zu anderen Anwendungen
Die Software soll einfach mit weiterer Software verbunden werden können.
Erweiterbare und wiederverwendbare Eigenschaften
Die Software soll leicht mit neuer Funktionalität ausgestattet und vorhandene Funktionen erweitert werden können.
Fazit:
Software Qualität ist wichtig und entscheidet mit, wie die Nutzung im beruflichen Alltag stattfindet. Gerade bei den Projekten Industrie 4.0 und der zunehmenden Digitalisierung in allen beruflichen Bereichen ist fehlerfreie, hochwertige Software eine Basisvoraussetzung.
Algorithmen treffen wir tagtäglich in unserem Leben, denn Sie sind Anleitungen zur zielgerichteten Lösung von Problemen. Erstmals beschrieben hat dies der choresmische Gelehrte Al-Chwarizmi im 9. Jahrhundert. Er lebte in Bagdad, Iran.
Verfeinert wurde der Begriff im 20. Jahrhundert durch den in Großbritannien diffamierten Mathematiker Alan Touring.
Definition eines Algorithmus
Das Verfahren muss zum richtigen Ergebnis führen
Der Verfahren muss mit einem endlichen Text die Anforderungen ganz erfüllen
Das Verfahren besteht aus Arbeitsschritten, die zielgerichtet zur Lösung führen
Jeder einzelne Schritt muss ein eindeutiges Ergebnis besitzen
Gleiche Eingabewerte müssen immer zum gleichen Ergebnis führen
Das Verfahren muss auf alle zulässigen Daten fehlerfrei anwendbar, also Allgemeingültig sein
Hochwertige Programme erfüllen diese Anforderungen. Denn die Definition von Qualität lautet:
Qualität ist die Erfüllung der Kundenanforderungen
Computermonitore aus der Frühzeit der EDV waren monochrom. Es gab grün- und bernstein-farbene anzeigende Geräte. Als Mitte der 80er Jahre die Farbmonitore auf den Markt kamen, hat die Bildbearbeitung mit dem Computer begonnen. 1985 wurde mit Deluxe Paint eine leistungsfähige Bildbearbeitung mit dem Commodore Amiga präsentiert. Photoshop kam 1990 auf den Markt.
Die Monitore veränderten sich zu Flachbildschirmen und die Anforderungen an die Bildqualität dieser Geräte stiegen in den folgenden Jahrzehnten. Druckereien waren auf Farbtreue während des ganzen Produktionsprozesses angewiesen. Schließlich sollte eine fotografierte, rote Tomate in der gedruckten Zeitschrift ebenso aussehen wie das Original. So war die Standardisierung des Farbraumes notwendig. Dazu wurden verschiedene Farbmodelle entwickelt, von denen ich zwei Modelle vorstelle.
Betrachten wir zuerst die Grundlagen der Farbmischung. Um eine große Menge an unterschiedlichen Farben darzustellen, werden aus drei Grundfarben viele unterschiedliche Farben gemischt. Auf dieser Basis gibt es eine additive Farbmischung und eine subtraktive Farbmischung. Der darstellbare Bereich von Farben wird Gamut genannt.
Additive Farbmischung
Diese Farbmischung basiert auf selbstleuchtenden Farben. Von Schwarz (Keinerlei Farbe) wird durch die drei grundlegenden Farben Rot, Grün und Blau (RGB).
Ein Abbild vieler Farben ist so möglich. Nach diesem Prinzip arbeiten die Computer Monitore.
Subtraktive Farbmischung
Bei der subtraktiven Farbmischung werden die Farben durch eine Lichtquelle beleuchtet. Das reflektierte Licht fällt in unsere Augen und wir können die Farben sehen. Wenn das weiße Licht auf die Farben fällt, dann werden Lichtanteile verschluckt. Durch die reflektierten Lichtanteile sehen wir die Farbe. Die drei Grundfarben der subtraktiven Farbmischung sind Cyan, Magenta und Gelb.
Nach diesem Prinzip arbeiten Drucker und Farben, die wir im täglichen Leben benutzen. Allerdings wird bei Farbdrucken im Regelfall kein perfektes Schwarz erreicht. Daher gibt es Fotodrucker die noch weitere Farben wie Schwarz, Grau oder ein helles Gelb verwenden.
Das RGB Farbmodell
Das RGB Farbmodell basiert auf additiver Farbmischung. Es wird daher bei Farbdisplays, Fernsehern, Beamern und ähnlichen Geräten genutzt. Aus den 3 Grundfarben Rot, Grün und Blau werden die dargestellten Farben gemischt. Die Werte der einzelnen Farben können zwischen 0 und 100% liegen. Im Internet werden Farbtiefen von 24 Bit (= 8 Bit Rot, 8 Bit Grün und 8 Bit Blau) genutzt. Dadurch ergibt sich ein Wertebereich von 256 Stufen bei jeder Grundfarbe und eine Farbanzahl von 16.777.216 Farben. Sehr gute Monitore können eine Farbtiefe von 10 Bit pro Grundfarbe abbilden. Also insgesamt 30 Bit Farbtiefe und damit 230 oder mehr als 10 Milliarden Farben. Viele Grafikkarten können bis 232 Bit Farben darstellen. Dazu die RGB Farbraum Darstellung von Torre Anders. Der RGB Farbraum liegt innerhalb des schwarzen Dreiecks.
Das CMYK Farbmodell
Auf subtraktiver Farbmischung basiert das CMYK Farbmodell. Es basiert auf den Grundfarben Cyan, Magnet, Gelb und einem Schwarz-Anteil, der auch „Key“ genannt wird. Da es bei der Umsetzung dieses Farbmodells keine passend tiefes Schwarz gibt, wird Schwarz als 4. Faktor hinzugefügt. Dieses Farbmodell wird seit 1843 im Druckbereich beim 4-Farben Druck eingesetzt. Geräte dafür sind der Tintenstrahl Drucker, Farblaser Drucker, 4-Farben Druckmaschinen für Bücher, Zeitschriften und weitere Druckerzeugnisse.